繁体   English   中英

PDFBox - 将页面另存为 SVG 格式

[英]PDFBox - Saving a page as SVG format

我正在尝试将给定 PDF 文档的每一页保存为 SVG 文件。 与非常流行的 SVG 到 PDF 相比,有关该主题的信息似乎很少。

有没有一种简单的方法可以使用 PDFBox、Batik 或标准库功能的任何组合来做到这一点?

这是保存 PDF 的所有页面的一些代码,我可能从这里或 从蜡染本身获得它

try (PDDocument pdfboxDocument = PDDocument.load(new File(dir, PDFFILE)))
{
    PDFRenderer r = new PDFRenderer(pdfboxDocument);
    for (int i = 0; i < pdfboxDocument.getNumberOfPages(); ++i)
    {
        String svgNS = "http://www.w3.org/2000/svg";
        DOMImplementation impl = GenericDOMImplementation.getDOMImplementation();
        Document myFactory = impl.createDocument(svgNS, "svg", null);
        SVGGeneratorContext ctx = SVGGeneratorContext.createDefault(myFactory);
        ctx.setEmbeddedFontsOn(true);
        SVGGraphics2D g2d = new SVGGraphics2D(ctx, true);
        r.renderPageToGraphics(i, g2d);
        String filename = "test-" + (i + 1) + ".svg";
        try (Writer out = new OutputStreamWriter(new FileOutputStream(new File(dir, filename)), "UTF-8"))
        {
            g2d.stream(out, true);
        }
    }
}

pom.xml 摘录:

<dependencies>
    <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-svggen</artifactId>
        <version>${batik.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-codec</artifactId>
        <version>${batik.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-dom</artifactId>
        <version>${batik.version}</version>
    </dependency>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox-app</artifactId>
        <version>2.0.22</version>
    </dependency>
    <dependency>
        <groupId>com.github.jai-imageio</groupId>
        <artifactId>jai-imageio-core</artifactId>
        <version>1.4.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.jai-imageio</groupId>
        <artifactId>jai-imageio-jpeg2000</artifactId>
        <version>1.4.0</version>
    </dependency>
</dependencies>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM