com.itextpdf.pdfua.exceptions.PDFUAConformanceException:未嵌入以下字体:Times-Roman
当我尝试使用 PdfUADocument 类创建文档对象时出现上述异常。如果文档对象是使用 PdfDocument 创建的并且未设置一致性,则不会有问题。 有人可以帮忙吗
使用 itext 8.0.4 版本将 HTML 转换为 PDF 但出现上述错误
问题是,PDFUA 规范要求您嵌入 PDF 正在使用的所有字体。
因此,要在 html2pdf 中实现此功能,您应该将 FontProvider 配置为仅使用作为字体文件提供的字体。
这样的事情应该可以解决问题
ConverterProperties converterProperties = new ConverterProperties();
FontProvider fontProvider = new DefaultFontProvider(false, true, false);
converterProperties.setFontProvider(fontProvider);
HtmlConverter.convertToPdf(new FileInputStream(sourceHtml), pdfDocument, converterProperties);
在
DefaultFontProvider
构造函数中,第一个 false 表示:不注册 StandardPdfFonts,这些字体是每个 pdfProcesser 都应该可用的字体,但它们没有嵌入,因此我们需要将其关闭。第二个参数为 true,因为这将加载嵌入到库本身中的字体。
最后一个错误是禁用加载电脑上可用的字体。
当然,如果您使用自定义字体,您可以使用
fontProvider.addFont()
方法将它们添加到字体提供程序。
如果这不能解决问题,请提供更多详细信息。