XSL-FO 페이지
XSL-FO는 "Page Masters"라는 페이지 템플릿을 사용하여 페이지 레이아웃을 정의합니다.
XSL-FO 페이지 템플릿
XSL-FO는 "Page Masters"라는 페이지 템플릿을 사용하여 페이지 레이아웃을 정의합니다. 각 템플릿은 독립적인 이름을 가져야 합니다:
<fo:simple-page-master master-name="intro"> <fo:region-body margin="5in" /> </fo:simple-page-master> <fo:simple-page-master master-name="left"> <fo:region-body margin-left="2in" margin-right="3in" /> </fo:simple-page-master> <fo:simple-page-master master-name="right"> <fo:region-body margin-left="3in" margin-right="2in" /> </fo:simple-page-master>
위의 예제에서, 세 개의 <fo:simple-page-master> 요소가 세 가지 다른 템플릿을 정의합니다. 각 템플릿(page-master)은 다른 이름을 가집니다.
첫 번째 템플릿 이름은 "intro"입니다. 이는 페이지 소개에 사용할 수 있는 템플릿입니다.
두 번째와 세 번째 템플릿 이름은 "left"과 "right"입니다. 이들은 짝수와 홀수 페이지 번호의 페이지에 사용될 수 있습니다.
XSL-FO 페이지 크기
XSL-FO는 다음과 같은 속성을 사용하여 페이지 크기를 정의합니다:
- page-width
- 페이지 너비 정의
- page-height
- 페이지 높이 정의
XSL-FO 페이지 여유
XSL-FO는 다음과 같은 속성을 사용하여 페이지 여유를 정의합니다:
- margin-top
- 상단 여유 정의
- margin-bottom
- 하단 여유 정의
- margin-left
- 왼쪽 여유 정의
- margin-right
- 오른쪽 여유 정의
- margin
- 모든 가장자리 여유 정의
XSL-FO 페이지 영역(Page Regions)
XSL-FO는 다음과 같은 요소를 사용하여 페이지 영역을 정의합니다:
- region-body
- 본문 영역 정의
- region-before
- 상단 영역(페이지 헤더) 정의
- region-after
- 하단 영역(페이지 푸터) 정의
- region-start
- 왼쪽 영역(왼쪽 막대) 정의
- region-end
- 오른쪽 영역(오른쪽 막대) 정의
주석:region-before, region-after, region-start 및 region-end는 본문 영역의 일부입니다. 본문 영역의 텍스트가 이러한 영역에 덮혀지지 않도록 하기 위해, 주제 영역의 여유는 다른 영역의 크기와 동일하거나 더 커야 합니다.
그래프:

XSL-FO 예제
이는 특정 XSL-FO 문서에서 추출된 일부입니다:
<fo:simple-page-master master-name="A4"> page-width="297mm" page-height="210mm" margin-top="1cm" margin-bottom="1cm" margin-left="1cm" margin-right="1cm"> <fo:region-body margin="3cm"/> <fo:region-before extent="2cm"/> <fo:region-after extent="2cm"/> <fo:region-start extent="2cm"/> <fo:region-end extent="2cm"/> </fo:simple-page-master>
이 코드는 "A4" 이름의 "Simple Page Master Template"을 정의합니다.
페이지의 너비는 297mm이고, 높이는 210mm입니다.
페이지의 네 측 마argins은 모두 1cm입니다.
주체의 마argins는 3cm입니다 (모든 측이 같습니다).
before, after, start 및 end 지역은 모두 2cm입니다.
위의 예제에서 주체의 너비는 페이지 너비에서 왼쪽 및 오른쪽 마argins 및 region-body의 margins를 뺀 값을 계산할 수 있습니다:
297mm - (2 x 1cm) - (2 x 3cm) = 297mm - 20mm - 60mm = 217mm.
주석:region (region-start 및 region-end)는 계산되지 않았습니다. 이전에 설명한 것처럼, 이러한 区(region)는 주체의 일부입니다.