.XSL-FO 파일이란?
XSL-FO(XSL Formatting Objects)는 XML 문서의 서식을 지정하기 위한 강력한 스타일시트 언어입니다. 종이와 인쇄물의 경계 형태의 의미는 치수가 고정될 때 XSL-FO로 표현됩니다. 가변 차원을 가진 브라우저 창의 무한한 형태의 의미를 나타내는 HTML과 대조적입니다. XSL-FO 형식의 XML 문서는 대부분 PDF 파일을 생성하는 데 사용됩니다. XSL(Extensible Stylesheet Language)은 XML 문서와 이 언어의 XSL-FO 부분을 포맷하고 교환하도록 설계하기 위한 완전한 기능의 W3C 기술 세트입니다. XSLT 및 XPath도 XSL의 다른 부분입니다.
XML 문서를 먼저 XSL-FO로 변환해야 한다고 제안합니다. PDF가 이 기준의 예입니다. PDF에서 결과는 XSLTfirst를 사용하여 렌더링된 다음 XSL-FO 포맷터를 사용하여 렌더링됩니다. 이러한 방식으로 XML 문서는 무작위로 형식화될 수 있습니다. XSL-FO는 CSS(Cascading Style Sheet) 속성을 사용하고 실제 형식에 필요한 곳에서 확장하는 이점을 취하지만 XSL-FO의 용어로 페이지 마스터라는 페이지 템플릿을 제공합니다. XSL-FO는 또한 상당히 정교한 문서에 대한 서식을 제공하고 색인 생성을 지원합니다.
역사 및 기본 개념
2012년 1월 XSL-FO 작업 초안이 마지막으로 업데이트되었으며 2013년 11월 작업 그룹이 폐쇄되었습니다. XSL 스타일시트는 클래스의 인스턴스가 서식 지정 어휘를 사용하는 XML 문서로 변환되는 방법을 설명하여 XML 문서 클래스의 표현을 지정합니다. XSL-FO는 통합 프리젠테이션 언어이며 HTML에서 사용되는 시맨틱 마크업이 없습니다. 또한 이 언어는 외부 HTML 또는 XML 문서의 기본 설정을 변경하는 CSS와 달리 문서의 모든 데이터를 자체적으로 저장합니다.
XSL-FO를 사용하는 일반적인 기준은 사용자가 FO로 작성하지 않고 XML 언어로 문서를 작성한다는 것입니다. 그 후 XSLT 변환이 발생합니다. 이 XSLT 변환은 XML을 XSL-FO로 변환하는 역할을 합니다. XSL-FO 문서가 생성되는 즉시 FO 프로세서라고 하는 응용 프로그램으로 전달됩니다. FO 프로세서는 이 문서를 읽을 수 있을 뿐만 아니라 인쇄 가능한 문서로 변환할 책임이 있습니다. PDF 파일 또는 PS는 XSL-FO의 가장 일반적인 출력의 예입니다. 그러나 FO 프로세서가 이 두 가지 형식의 형식만 출력으로 생성할 수 있다는 의미는 아닙니다. 일부 FO 프로세서는 RTF 파일로 출력하거나 사용자의 GUI에 창이 나타날 수 있습니다. 이 창은 페이지의 순서와 내용을 표시합니다.
XSL-FO 문서는 다른 페이지의 텍스트 레이아웃을 궁극적으로 정의하지 않는다는 점에서 PDF 또는 PS와 다릅니다. 아마도 페이지의 스타일을 지정하고 콘텐츠를 표시할 위치를 결정합니다. 또한 FO 프로세서는 FO 문서에 지정된 경계 내에서 텍스트를 구성합니다. 이 사양은 다른 FO 프로세서가 생성된 페이지에 따라 동작하도록 허용합니다. 이러한 동작의 예로 하이픈 넣기를 들 수 있습니다. 일부 프로세서는 이 옵션을 선택하지 않는 반면 줄 바꿈 시 공간을 절약하기 위해 단어에 하이픈을 넣을 수 있는 FO 프로세서는 거의 없습니다. 요구 사항에 맞는 다양한 하이픈 넣기 알고리즘을 선택하는 것은 프로세서에 따라 다릅니다. 이러한 하이픈 넣기 알고리즘은 매우 간단하거나 더 복잡할 수 있습니다. 어떤 경우에는 XSL-FO 사양이 FO 프로세서를 명시적으로 제재하며, 레이아웃과 관련하여 어느 정도 선택이 가능합니다.
FO 프로세서 간의 이러한 변화는 다양한 결과를 생성하며, 이에 대해 프로세서는 종종 무관심합니다. XSL-FO의 일반적인 초점은 페이지/인쇄된 문서를 생성하는 것이기 때문입니다. XSL-FO 문서 자체는 일반적으로 중개자 역할을 하며, 주요 기능은 PDF 파일 또는 배포할 출력으로 인쇄할 수 있는 문서를 생성하는 것입니다. HTML/CSS 또는 XSL-FO에서 형식화 언어를 입력하는 대신 PDF를 최종 결과로 배포하는 것은 수신자가 형식화 언어의 인터프리터 간의 차이로 인해 생성되는 결과의 다양성에 영향을 받지 않는다는 것을 나타냅니다. 다른 한편으로, 문서가 다양한 페이지 크기나 원하는 글꼴 크기, 페이지 또는 인쇄에 맞게 조정하는 것과 같은 수신자의 다양한 요구를 충족시킬 수 있는 쉬운 방법은 없다는 것이 분명합니다.
XSLFO 파일 형식
SL-FO 문서는 기본적으로 XML 문서이지만 어떤 스키마도 따르지 않습니다. 대신 SL-FO 문서는 해당 언어 사양에 정의된 구문을 따릅니다. 각 XSL-FO 문서에는 두 개의 섹션이 필요합니다.
- 레이블이 지정된 페이지 레이아웃 목록을 지정하는 섹션.
- 다양한 페이지 레이아웃을 통해 다른 페이지의 콘텐츠 표시를 결정하는 마크업이 있는 문서 데이터의 모든 세부 정보가 있는 섹션입니다.
페이지의 속성은 특정 언어에 대한 규칙을 준수하기 위해 텍스트의 구성을 정의할 수 있는 페이지 레이아웃에 언급되어 있습니다. 또한 페이지 크기, 여백 및 페이지 시퀀스(홀수 및 짝수 페이지에 대해 다른 속성을 제재함)도 페이지 레이아웃에 의해 정의됩니다.
문서의 데이터 부분은 일련의 흐름으로 나뉘며 각 흐름은 페이지 레이아웃에 연결됩니다. 흐름은 블록 목록을 포함합니다. 이 블록 목록에는 인라인 마크업 기능이나 텍스트 데이터 목록 또는 둘 다 포함될 수 있습니다. 문서의 여백에 페이지 번호나 장 제목이 표시될 수도 있습니다. 블록 및 인라인 요소의 기능은 CSS에서와 동일하게 유지되지만 일부 패딩 및 여백 규칙은 FO와 CSS 간에 다릅니다.
페이지 방향 방향은 블록과 인라인의 확장에 대해 완전히 지정되어 있으므로 FO 문서가 영어와 다른 언어에서 수행됩니다. FO 사양의 언어는 방향 설명을 위해 왼쪽과 오른쪽이 아닌 시작과 끝이라는 단어를 사용합니다. XSL-FO의 기본 콘텐츠 마크업 및 계단식 규칙은 CSS에서 가져왔습니다. XSL-FO의 언어는 다음 사양에 동의합니다.
여러 열
페이지에는 여러 열과 블록이 있을 수 있으며 기본적으로 한 열에서 다른 열로 확장할 수 있습니다. 여러 페이지의 너비와 열 수는 서로 다를 수 있습니다. 모든 FO 특성은 다중 열 페이지의 한계를 따릅니다.
목록
XSL-FO 목록은 뺨으로 배열된 두 세트의 블록으로 설정됩니다. 개념적으로 목록에서 왼쪽 블록은 숫자, 글머리 기호 또는 텍스트 문자열을 나타내는 반면 오른쪽 블록은 예상대로 작동할 수 있습니다. XSL-FO 목록의 번호 매기기는 일반적으로 XSLT에 의해 수행됩니다.
테이블
FO 테이블은 HTML/CSS 테이블과 유사합니다. 사용자는 각 개별 셀에 대한 데이터 행, 스타일 정보, 배경색을 선택할 수 있습니다. 고유한 스타일 지정 정보를 사용하여 사용자는 첫 번째 행을 테이블 헤더 행으로 선택할 수 있는 권한이 있습니다. FO 프로세서는 각 열의 공간 사양에 대해 명시적으로 알리거나 테이블의 텍스트를 자동으로 맞출 수 있습니다.
인덱싱
XSL-FO 1.1에는 적절하게 표시된 요소를 참조하여 색인을 생성하는 데 도움이 되는 기능이 있습니다.
이익
- 콘텐츠 기반 퍼블리싱에 적합
- 사용의 용이성
- 저렴한 비용