我从旧的iText库切换到iTextPdf库,发现了一个问题。新库将生产者设置为包含非Unicode字符(Windows TM符号和版权符号)的值。问题是阅读此文本的验证程序会阻塞这些字符。
我是否可以通过iText解决此问题(无需支付许可费)?我很乐意用iText获得信用。我只是希望这些学分是Unicode清洁。
<</Producer(iText® 5.5.0 ©2000-2013 iText Group NV \(AGPL-version\))/ModDate(D:20150126155550-07'00')/CreationDate(D:20150126155550-07'00')>>
答案 0 :(得分:2)
您正在查看PDF的文档信息词典,更准确地说是 Producer 条目的值。它被指定为:
制作人文字字符串(可选)如果文档已从其他格式转换为PDF,则将其转换为PDF的合格产品的名称。
(表317 - 文档信息词典中的条目)
因此值必须为文本字符串类型。这又被指定为:
文本字符串类型应用于应以 PDFDocEncoding 或UTF-16BE Unicode字符编码方案编码的字符串。 PDFDocEncoding 可以对所有ISO Latin 1字符集进行编码,并在附录D中进行了说明。
(第7.9.2.2节文本字符串类型)
在附录D中,您会发现:
CHAR CODE (OCTAL)
CHAR NAME STD MAC WIN PDF
...
© copyright — 251 251 251
...
® registered — 250 256 256
...
(D.2拉丁字符集和编码)
因此,这些字符在这里完全有效,阻塞这些字符的验证器被破坏。
因此,您最好将此错误报告给相关验证程序的开发人员。