我正在尝试将 SVG转换为多页PDF文档。我使用 Apache Batik 进行转换,但其中没有提供多页 pdf。在做了一些研究后,我了解了 docbook ,并且它运作得很好。它使用 ANT脚本进行转换。
我想知道 docbook 如何处理多页PDF,因为docbook使用Apache FOP,它使用Apache Batik进行SVG到PDF的转换。
它是否会创建单个PDF文件并最终将它们组合在一起制作单个PDF? 如果它与上面相同,那么我自己将使用Apache Batik创建单个PDF并使用PDFBox组合它们。
感谢。
解决方案使用XSL-FO和SVG作为外部图形或嵌入式SVG
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master page-height="2339px" page-width="1654px" master-name="PageMaster">
<fo:region-body margin="0mm 0mm 0mm 0mm"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="PageMaster">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:external-graphic src="url(new sample.svg)" width="100%" height="100%" content-width="100%" content-height="100%"/>
</fo:block>
</fo:flow>
</fo:page-sequence>
<fo:page-sequence master-reference="PageMaster">
<fo:flow flow-name="xsl-region-body">
<fo:block>
<fo:external-graphic src="url(new sample2.svg)" width="100%" height="100%" content-width="100%" content-height="100%"/>
</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
答案 0 :(得分:1)
不,不是。 FOP使用的是XSL FO标准。您可以定义页面几何图形,将内容保持在一起的规则以及将内容块流入其中的规则。它不是将每个页面创建为PDF并加入它们。它仅使用Batik将SVG转换为PDF对象以包含在PDF输出中。所以Batik只是创造一个&#34;块&#34; area ...就像一个图像,虽然是矢量格式......它只是用于流入页面几何体的块之一。