導入として「XSLTを活用する自動組版の流れとして、XSLTがどの部分の役割を果たすか」を紹介しています。元の文書にあるコンテンツから目次を生成したりできます。
このウェビナー内では大きく触れていませんが(PDF自動生成超入門の内容なので)、「生成時まで内容が決定できないこと」をオブジェクトとしてレイアウトできるのがXSL-FOとなります。弊社製品Antenna House XSL Formatterによる拡張要素・プロパティも、この視点で眺めてみるとスタイルシート設計に役立つのではないでしょうか。
ウェビナー概要や書籍紹介ページにある通り、アンテナハウス『Office Open XML Formats入門』の初版は2007年に出版社から刊行されました。
今年は2021年、つまり14年程前の書籍の改訂版ということになります。
内容的な修正は必要とはいえ、以前の版の原稿をベースに新たな版を制作するというとき、XML原稿はほとんど変更が必要ありません。以前の版の構造に不満がある場合はその限りではありませんが。
書籍初版の制作報告にもあったように、XSL 1.1での大きなポイントにbookmarkのとindex関係の語彙が入ったことが挙げられます。『Office Open XML Formats入門』初版では、bookmarkについてはXSL Formatterの拡張仕様、索引についてはbasic-linkとXSLTによる力技による解決が図られていました。
<fo:block-container>
<fo:table table-omit-header-at-break="false" table-omit-footer-at-break="false">
<fo:table-header>
<fo:table-row>
<fo:table-cell>
<fo:block-container
absolute-position="absolute"
top="-2cm" left="-2.6cm"
width="100%" height="6cm"
axf:background-content-height="scale-down-to-fit"
background-image="url(./corner.svg)"
axf:background-size="cover">
</fo:block-container>
</fo:table-cell>
</fo:table-row>
</fo:table-header>
<fo:table-footer >
<fo:table-row>
<fo:table-cell>
<fo:block-container
width="100%" height="10cm">
<fo:block-container
absolute-position="absolute"
top="-4cm" left="3cm"
width="100%" height="10cm"
axf:background-content-height="scale-down-to-fit"
axf:transform="rotate(180)"
background-image="url(./corner.svg)"
axf:background-size="cover">
</fo:block-container>
</fo:block-container>
</fo:table-cell>
</fo:table-row>
</fo:table-footer>
<fo:table-body>
<fo:table-row>
<fo:table-cell>
<fo:block space-before="4cm"
space-before.conditionality="keep" start-indent="2cm" end-indent="2cm">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
...
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</fo:block-container>