我有一个pdf文件,无法通过pdfbox或itext7提取文本。该字体由Identity-H和Adobe-Identity-UCS编码。 ToUnicode的详细信息如下。
/CIDInit /ProcSet findresource begin 12 dict begin begincmap /CIDSystemInfo > def /CMapName /Adobe-Identity-UCS def /CMapType 2 def 1 begincodespacerange <0000><FFFF> endcodespacerange endcmap CMapName currentdict /CMap defineresource pop end end
ToUnicode无效。有什么方法可以解决它吗?
我尝试下载完整的Adobe-Identity-UCS cmap文件并替换它。但经过大量的谷歌搜索,我找不到Adobe-Identity-UCS cmap文件。
有帮助吗?谢谢。
编辑:
您显示的ToUnicode CMap对应于PDF规范ISO 32000(任一部分)中的示例ToUnicode CMap,仅没有任何bfrange或bfchar部分。
因此,你所拥有的是一个可以放置任意映射的模板。
关于你的问题,因此:
有什么方法可以解决它吗?
是的,不是。
是的,您可以通过使用正确的映射添加适当的bfrange或bfchar部分来修复它。
但是......为此,你需要知道哪些代码分别映射到手头字体的哪些Unicode字符串,名称Adobe-Identity-UCS本身通常并不意味着映射。所以:
不,不是没有其他信息。
@Tilman在对你的问题的评论中引用了one of his answers,其中他展示了如何使用从不同来源收集的实际映射的信息添加缺少的ToUnicode映射。