나는 다음과 같은 간단한 XML 구조의 XSL-FO 3.0 변환을 기반으로 PDF를 생산하는 대규모 말뭉치를 다음 (윗 첨자와 이탤릭체에 대한 마이너스 일부 인라인 마크 업) : 일반적으로 다음과 같이 같은XSL-FO의 페이지 나누기, 과부와 고아
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xd="http://www.pnp-software.com/XSLTdoc"
version="3.0">
<xsl:template match="/">
<fo:root>
<fo:layout-master-set>
<fo:simple-page-master
master-name="page-recto"
page-height="29.7cm" page-width="21cm"
margin-top="2cm" margin-bottom="2cm"
margin-left="3cm" margin-right="1.5cm">
<fo:region-body
region-name="xsl-region-body"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="page-recto">
<fo:flow flow-name="xsl-region-body"
font-family="Times" font-weight="normal"
font-size="8pt" space-before="8pt" space-after="8pt"
text-align="justify" end-indent="120pt">
<xsl:apply-templates/>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
<xsl:template match="text">
<fo:block widows="10" orphans="10"
font-size="9pt" font-weight="bold"
padding-bottom="1cm" end-indent="120pt">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="seg">
<fo:block
font-family="Times" font-weight="normal" line-height="12pt" line-stacking-strategy="font-height"
font-size="10pt" space-before="10pt" space-after="10pt" text-align="justify" end-indent="120pt">
<xsl:apply-templates/>
</fo:block>
</xsl:template>
<xsl:template match="appnotes">
<xsl:choose>
<xsl:when test="./appitem">
<fo:leader leader-pattern="rule" leader-length="2cm" rule-style="solid" rule-thickness=".2pt"/>
<fo:block font-size="8pt" font-weight="normal" end-indent="120pt">
<xsl:for-each select="./appitem">
<fo:inline keep-together="always"><xsl:apply-templates/>   </fo:inline>
</xsl:for-each>
</fo:block></xsl:when>
<xsl:otherwise></xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="footnotes">
<xsl:choose>
<xsl:when test="./footitem">
<fo:leader leader-pattern="rule" leader-length="2cm" rule-style="solid" rule-thickness=".2pt"/>
<xsl:for-each select="./footitem">
<fo:block font-size="8pt" font-weight="normal" end-indent="120pt">
<xsl:apply-templates/>
</fo:block>
</xsl:for-each>
<fo:leader leader-pattern="rule" leader-length="2cm" rule-style="solid" rule-thickness=".2pt"/>
</xsl:when>
<xsl:otherwise>
<fo:leader leader-pattern="rule" leader-length="2cm" rule-style="solid" rule-thickness=".2pt"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
이 반복 섹션을 생성 :
그러나 XSL-FO는 <seg>
<deposition-title>
휴식을 생산
<seg>
<appnotes>
에서 휴식과 <footnotes>
목표 : 최종 <seg>
<seg>
<appnotes>
및 <footnotes>
지팡이
<deposition-title>
스틱 : 어떤<text>
을 깨는 페이지에 대해 다음과 같은 두 가지 규칙을 적용 할
사전 통찰력에 감사드립니다.
놀랍도록 간단합니다. 매우 감사합니다! – idjet
결과를 자세히 살펴보면이 솔루션이 첫 번째 세그먼트로 제목을 유지하는 데 효과적 이었음을 알 수 있습니다.그러나 appnotes와 각주에 대해서는 그렇게하지 않습니다 : 나는 기존 템플릿 내 모든 것을 가져 와서''로 감 쌉니다. 예를 들어 첫 번째 ''은 나머지 앱 노트와 분리됩니다. 감사. –
idjet
앱 노트와 각주에 대한 하나의'fo : block' 래퍼가 있습니까? 또한 질문에 정보를 추가하고 어떤 FO 프로세서를 사용하는지에 대한 태그를 추가하는 데 도움이 될 수 있습니다. 이러한 구현에서 실제로 이러한 XSL-FO 속성이 얼마나 잘 작동하는지에 대한 지식을 인정해야합니다. 여기에 FO 프로세서에 대해 언급 할 때보다 구체적인 제안을 줄 수있는 다양한 제품의 숙련 된 사용자가 있음을 알 수 있습니다. –