pdf - 当我使用 itext 调用 BaseFont.createFont() 时,如何知道正确的编码?

标签 pdf fonts itext

我有一些自定义的中文字体文件:

aaa.ttf
bbb.ttf
ccc.ttf

我想用它们通过 iText 创建我的 pdf 文件。

这是我用来创建BaseFont的代码:

String encoding = ???
BaseFont messageBaseFont = BaseFont.createFont("fonts/aaa.ttf", 
                               encoding, 
                               BaseFont.EMBEDDED);

但我不知道如何找到编码。以aaa.ttf为例:

enter image description here

我可以从信息中找到编码吗?我尝试了一些编码,例如 BaseFont.CP1252BaseFont.WINANSI,但它们不起作用,输出是空白页或很多 ??? ?? 字符(如果是汉字)。

最佳答案

这个问题有不同的答案。要获得完整的概述,您可以阅读我的书“iText in Action”的第 11 章,但如果您只是想安全,请对水平文本使用 Identity-H(以及 Identity-V)。这并不是真正的编码,但它将在 PDF 中创建使用 Unicode 的复合字体:http://api.itextpdf.com/itext/com/itextpdf/text/pdf/BaseFont.html#IDENTITY_H

关于pdf - 当我使用 itext 调用 BaseFont.createFont() 时,如何知道正确的编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12930035/

相关文章:

c# - 这个字节数组是受密码保护的 PDF 文档吗?

ios - 如何在设备ipad/iphone中查看下载的文件

python - 使用 pyPdf 在 Python 中裁剪页面

python - 使用 Python 将 Pandas DataFrame 导出为 PDF 文件

html - 如何在 <select> 标签中呈现自定义字体?

r - 如何在 R 中获取瑞典语字符

c# - 如何在 C# 中使用 itextsharp 创建带有泰米尔字体的 PDF 文件?

fonts - 如何使用组合框项目 tcl tk

java - iText 中的 setRowspan 不起作用

java - 使用 iText 库根据给定格式创建 PDF