0

我正在尝试使用 itext PdfWriter 将一些 html 内容转换为 pdf,如下所示:

Document document = new Document();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
PdfWriter writer = PdfWriter.getInstance(document, outputStream);
document.open();
InputStream stream = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8));
XMLWorkerHelper.getInstance().parseXHtml(writer, document, stream, Charset.forName("UTF-8"));
document.close();

但是生成的 pdf 中缺少 ă ș ț 字符。我试过设置编码或字体,但没有运气。我尝试的是使用字体提供程序并将其设置为 parseXHtml 方法的参数。

我设置了编码,但没有任何改变。

XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider();
fontProvider.setUseUnicode(true);
fontProvider.defaultEncoding = BaseFont.CP1257;

我也尝试设置字体,但它没有应用于 pdf。

XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS);
fontProvider.register(PATH_TO_TTF_FONT_FILE_HOSTED_ON_S3);

然后设置 parseXHtml 的参数。

XMLWorkerHelper.getInstance().parseXHtml(writer, document, stream, Charset.forName("UTF-8"), fontProvider);

有什么方法可以使用 PdfWriter 将所有字符从 html 正确转换为 pdf 吗?

4

0 回答 0