提问者:小点点

SVG到多页PDF


我正在尝试将SVG转换为多页PDF文档。我使用Apache Batik进行转换,但其中没有提供多页pdf。经过一些研究,我了解了docbook,它工作得很好。它使用ANT脚本进行转换。

我想知道docbook是如何处理多页PDF的,因为docbook使用Apache FOP,它使用Apache Batik for SVG来PDF转换。

它是否创建单个PDF文件并最终将它们组合成单个PDF?如果它与上述操作相同,那么我自己将使用Apache Batik创建单个PDF并使用PDFBox组合它们。

谢谢。

解决方案使用带有SVG的XSL-FO作为外部图形或嵌入式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个答案

匿名用户

不,不是。FOP使用的是XSL FO标准。您可以定义页面几何形状、将内容保持在一起的规则以及将内容块流入其中。它不是将每个页面创建为PDF并连接它们。它只使用蜡染将SVG转换为PDF对象以包含在PDF输出中。所以Batik只是创建一个“块”区域…就像图像一样,尽管是矢量格式…它只是用于流入页面几何的块之一。