XSLFO Formatting Object fo xxx XSL element 18
XSL-FO 개요 (계속) Formatting Object <fo: xxx> -스타일 적용 대상인 개체, 즉 XSL 요소(element) · 쪽모양 관련 요소(18) -page-master, page-layout, page-sequence, region, content, flow, title, color · 문단 및 글줄 관련 요소(12) -block, inline, instream, character, graphic, leader, page-number · 표, 목록, 링크 관련 요소(13) -table, list, link · 기타 요소(11) : -multi format, float, footnote, wrapper, marker 5
XSL-FO 개요 (계속) 스타일 속성 <fo: xxx 속성=값 … > -XSL element에 적용되는 속성(attributes) · 공통으로 적용 -position, font, border, padding, background · 문단 또는 글줄 영역에 적용 -margin, alignment, dimension · 글자에 적용 -word-spacing, letter-spacing, word-space 개별 요소 page, layout, leader, table, list 등에 적용 · 기타 : · -break, writing-mode, 숫자변환 등 6
XSL-FO 적용 예제 시작 XML 문서 선언, name-space 및 root 개체 정의 · XSLT 사용할 경우 template match · 시작 <? xml version="1. 0" encoding="utf-16" ? > <xsl: stylesheet xmlns: xsl="http: //www. w 3. org/1999/XSL/Transform" xmlns: fo="http: //www. w 3. org/1999/XSL/Format" version="1. 0"> name-space <xsl: template match="ebook"> <fo: root xmlns: fo="http: //www. w 3. org/1999/XSL/Format"> <fo: layout-master-set> … fo: 개체 </fo: root > root 개체 </xsl: template> <xsl: template match="ebook/books/book/front/intro/title"> <fo: block font-size="11 pt" … > … <xsl: apply-templates /> </fo: block> … fo: 개체 </xsl: template> 7 …
layout master 표지 master <fo: layout-master-set> <fo: simple-page-master-name="표지" page-height="240 mm" page-width="160 mm" margin-top="20 mm" margin-right="20 mm" margin-bottom="20 mm" margin-left="20 mm” 속성 border="thin solid silver" background-color = "FFFFFF" > </fo: simple-page-master> 머리말 master <fo: simple-page-master-name="머리말" page-height="24 cm" page-width="16 cm" background-color=white> <fo: region-body margin-top="30 mm" margin-right="30 mm" margin-bottom="30 mm" margin-left="30 mm" 본문 영역 border="thin solid silver" padding="6 pt" /> <fo: region-before extent="25 mm" border-after-style="solid" border-after-width="thin” … display-align="after" /> 속성 <fo: region-after extent="25 mm" border-before-style="solid" border-before-width="thin" display-align="before" /> <fo: region-start extent="25 mm" border-end-style="solid" border-end-width="thin" display-align="after" /> <fo: region-end extent="25 mm" border-start-style="solid" … " display-align="before" writing-mode="tb-rl" /> </fo: simple-page-master> … 9
<fo: layout-master-set> <fo: simple-page-master-name="표지" … > … <fo: simple-page-master-name="머리말”… > … 2단본문 master … 계속 … <fo: simple-page-master-name= "2단본문" page-height="12 cm" page-width="8 cm" background-color=white> <fo: region-body margin-top="30 mm" margin-right="30 mm" margin-bottom="30 mm" margin-left="30 mm” padding="6 pt" border="thin solid silver" column-count="2" /> 다단편집 속성 <fo: region-before extent="30 mm" … column-count="1" /> <fo: region-after extent="25 mm" border-before-style="solid" … /> <fo: region-start extent="25 mm" border-end-style="solid" … /> <fo: region-end extent="25 mm" border-start-style="solid" … display-align="before" writing-mode="tb-rl" /> </fo: simple-page-master> </fo: layout-master-set> 10
XSL-FO 적용 예제 (계속) 쪽 순서 및 흐름 설정 · fo: page-sequence, fo: static-content, fo: flow 개별 스타일 속성 설정 · 문단(fo: block) 및 글줄(fo: inline)의 개별 속성 -font, background, border, padding, margin, alignment, indentation 등 표, 목록 등 정의 fo: list-block, fo: list-item-label, fo: list-item-body · fo: table, fo: table-column, fo: table-header, fo: table-body, fo: table-row, fo: table-cell, … · 11
쪽순서 설정 <fo: page-sequence master-name="머리말" format="1"> <fo: static-content flow-name="xsl-region-after"> <fo: block text-align="center" font-size="small"> 쪽고정 <fo: page-number /> </fo: block> </fo: static-content> <fo: flow-name="xsl-region-body" line-height="1. 7"> <xsl: apply-templates select="books/book/front/intro/p[1]" /> 쪽흐름 <xsl: apply-templates select="books/book/front/intro/title" /> </fo: flow> </fo: page-sequence> 문단 속성 대응되는 문단 설정 <xsl: template match="ebook/books/book/front/intro/title"> <fo: block font-size="25 pt" color="#11178 D" font-family= "신명조" space-before="4 em” keep-with-next="always" text-align="left"> <xsl: apply-templates /> </fo: block> </xsl: template> <xsl: template match="books/book/body/part[1]/chapter[2]/section[4]/p[1]"> <fo: block font-size="11 pt" space-after="5 pt" font-weight="bold"> <xsl: apply-templates /> </fo: block> </xsl: template> 12
<xsl: template match="books/book/body/part[1]/chapter[2]/authgrp/author/p"> <fo: table border="0 pt solid black" text-align="center" border-spacing="3 pt"> <fo: table-column-width="1. 8 in" /> 표 <fo: table-column-width="1 in" number-columns-repeated="1" /> 열 <fo: table-body> <fo: table-row> 행 <fo: table-cell padding="6 pt" border="0 pt solid blue" background-color="#F 5 FFF 5" number-rows-spanned="1"> <fo: block text-align="justify" padding-before="0" font-size="8 pt"> cell의 내용 <xsl: apply-templates /> </fo: block> </fo: table-cell> <fo: table-cell padding="6 pt" border="0 pt solid black"> <fo: block> <fo: external-graphic src="author 2. jpg" content-height="60%" cell의 내용 content-width="60%" /> </fo: block> </fo: table-cell> </fo: table-row> </fo: table-body> </fo: table> </xsl: template> 13
14
- Slides: 14