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)는 주체의 일부입니다.