TJ操作员的PDF特殊字符,基本14种字体

时间:2014-02-20 10:15:29

标签: pdfbox

有没有办法在base14字体(Helvetica)的TJ运算符中使用'rcaron'(U + 0159,ř)等特殊字符?

像[(\ rcaron)] TJ那样?

它是否以字体显示?

我经历了Helvetica.afm,似乎这个字符出现在字体中。此外,当我在PDF中的交互式文本字段中使用此字符时,它似乎存在。

我尝试使用pdfbox生成示例文件,但它失败了 - 它使用了TJ并且字符不正确。

非常感谢。

1 个答案:

答案 0 :(得分:3)

关于字符集PDF查看器必须支持未嵌入的base14字体,PDF规范ISO 32000-1在第9.6.2.2节中说明:

  

这些字体的字符集和编码列于附件D中。

和附件D.1:

  

D.2,“拉丁字符集和编码”,描述了Adobe标准拉丁文字体的整个字符集。该字符集应由Times,Helvetica和Courier字体系列支持,这些字体系列是标准的14种预定义字体之一;见9.6.2.2,“标准类型1字体(标准14字体)”。

如果你检查D.2中的表格,你会看到没有明确支持rcaron,只有scaron,zcaron和一个赤裸的caron。后者表明你可以构建一个rcaron。不幸的是,该表说明裸体卡车在 WinAnsiEncoding 中不可用,这是PDFBox中假设的标准编码。

因此,要绘制未嵌入的base14 Helvetica rcaron,您基本上必须使用具有非 WinAnsiEncoding 编码的Helvetica字体对象,例如的 MacRomanEncoding

此外,您必须调整添加到内容流中的字符串的编码。如果你是曾经使用PDPageContentStream.drawString(String),你必须改变它,因为该方法使用COSString(String)构造函数,隐含地假设其他编码(“ISO-8859-1”或“UTF-16BE”)不适合手头的任务。