【发布时间】:2019-05-17 05:24:26
【问题描述】:
我正在尝试使用 html 文件作为 pdf 的模板,但 Flying Saucer 无法识别 HTML5 实体(&trade、  等)。如果我用它们的十六进制值替换它们,那么程序运行良好。
我的代码如下:
public static InputStream create(String content) throws PDFUtilException {
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();) {
ITextRenderer iTextRenderer = new ITextRenderer();
iTextRenderer.getSharedContext()
.setReplacedElementFactory(new MediaReplacedElementFactory(iTextRenderer.getSharedContext()
.getReplacedElementFactory()));
iTextRenderer.setDocumentFromString(closeOutTags(content), null);
iTextRenderer.layout();
iTextRenderer.createPDF(baos);
return new ByteArrayInputStream(baos.toByteArray());
} catch (IOException | DocumentException e) {
throw new PDFUtilException("Unable to create PDF", e);
}
}
谢谢,
奥利弗
【问题讨论】:
标签: java html xml flying-saucer