[java] Apache FOP의 페이지 레이아웃 설정

Apache FOP은 XML 및 XSL-FO를 사용하여 PDF, PS, EPS 등의 형식으로 문서를 생성하는 오픈 소스 프로젝트입니다. 페이지 레이아웃은 문서에서 중요한 부분으로, 이를 올바르게 설정하는 것은 극히 중요합니다.

페이지 사이즈 설정

Apache FOP에서 페이지 사이즈는 페이지 마스터에 설정됩니다. XSL-FO 파일에서 fo:simple-page-master 요소를 사용하여 페이지의 폭과 높이를 지정할 수 있습니다.

<fo:simple-page-master master-name="A4">
    <fo:region-body margin="2cm"/>
    <fo:region-before extent="2cm"/>
    <fo:region-after extent="2cm"/>
</fo:simple-page-master>

위의 코드에서 master-name 속성을 사용하여 페이지 마스터의 이름을 지정하고, fo:region-body, fo:region-before, fo:region-after 요소를 사용하여 각 영역의 크기를 정의합니다.

페이지 여백 설정

페이지 여백은 fo:simple-page-master 요소 내의 fo:region-body, fo:region-before, fo:region-after 요소의 marginextent 속성을 조절하여 설정할 수 있습니다.

<fo:simple-page-master master-name="A4">
    <fo:region-body margin="2cm"/>
    <fo:region-before extent="2cm"/>
    <fo:region-after extent="2cm"/>
</fo:simple-page-master>

위의 예제에서는 marginextent 속성을 사용하여 페이지의 여백을 2cm로 설정하였습니다.

페이지 번호 설정

페이지 번호는 fo:page-number 요소를 사용하여 지정할 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다.

<fo:static-content flow-name="xsl-region-after">
    <fo:block text-align="end">
        Page <fo:page-number/> of <fo:page-number-citation-last/>
    </fo:block>
</fo:static-content>

위의 코드에서는 fo:page-number 요소를 사용하여 페이지 번호를 표시하고, fo:page-number-citation-last 요소를 사용하여 마지막 페이지 번호를 얻어와 표시합니다.

결론

Apache FOP에서 페이지 레이아웃을 설정하는 방법을 살펴보았습니다. 페이지 사이즈, 여백, 그리고 페이지 번호를 조절하여 원하는 문서 레이아웃을 구성할 수 있습니다.

이러한 설정을 통해 Apache FOP을 사용하여 다양한 종류의 문서를 생성하는 데 도움이 될 것입니다.

참고 자료