如何在生成PDF期间修复错误:PdfBoxTextRenderer.getWidth(PdfBoxTextRenderer.java:300)

问题描述 投票:0回答:1

我使用openhtmltopdf库将我的html模板转换为PDF:

    try (OutputStream os = new FileOutputStream(filePath);
            PDDocument doc = new PDDocument()) {
        for (String html : htmlPagesWithValues) {
            PdfRendererBuilder builder = new PdfRendererBuilder();
            builder.defaultTextDirection(BaseRendererBuilder.TextDirection.LTR);
            builder.useDefaultPageSize(210, 297, BaseRendererBuilder.PageSizeUnits.MM);
            builder.useProtocolsStreamImplementation(new InternalFSStreamFactory(), "localProtocol");
            builder.withHtmlContent(html, "");
            builder.useSVGDrawer(new BatikSVGDrawer());
            builder.usePDDocument(doc);
            PdfBoxRenderer renderer = builder.buildPdfRenderer();
            renderer.createPDFWithoutClosing();
        }
        doc.save(os);
    } catch (Exception ex) {
        log.debug("Stacktrace: ", ex);
    }

在生成PDF文件期间,我得到以下堆栈跟踪:

java.lang.NullPointerException:null com.openhtmltopdf.pdfboxout.PdfBoxTextRenderer.getWidth(PdfBoxTextRenderer.java:300)at com.openhtmltopdf.layout.Breaker.doBreakText(Breaker.java:147)at com.openhtmltopdf.layout.Breaker。 doBreakText(Breaker.java:115)at com.openhtmltopdf.layout.Breaker.breakText(Breaker.java:109)at com.openhtmltopdf.layout.InlineBoxing.layoutText(InlineBoxing.java:959)

...

java html-to-pdf openhtmltopdf
1个回答
0
投票

我发现了这个问题。我在托管在我们服务器上的PDF文件上使用图像。 Openpdftohtml库试图通过我们的公共URL访问图像,但此URL不可用。添加访问权限后,PDF已成功创建。我也在Github上打开了这个问题:https://github.com/danfickle/openhtmltopdf/issues/267

© www.soinside.com 2019 - 2024. All rights reserved.