SVG到多页PDF

时间:2015-06-25 12:34:24

标签: java svg apache-fop docbook batik

我正在尝试将 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>

1 个答案:

答案 0 :(得分:1)

不,不是。 FOP使用的是XSL FO标准。您可以定义页面几何图形,将内容保持在一起的规则以及将内容块流入其中的规则。它不是将每个页面创建为PDF并加入它们。它仅使用Batik将SVG转换为PDF对象以包含在PDF输出中。所以Batik只是创造一个&#34;块&#34; area ...就像一个图像,虽然是矢量格式......它只是用于流入页面几何体的块之一。