我有一个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文件并替换它。但是经过大量Google搜索后,我找不到Adobe-Identity-UCS cmap文件。
有帮助吗?谢谢。
编辑:
答案 0 :(得分:3)
您显示的 ToUnicode CMap对应于PDF规范ISO 32000中的示例 ToUnicode CMap(任一部分),只是没有任何 bfrange 或 bfchar 部分。
因此,您实际上拥有的是一个模板,可以在其中放置任意映射。
因此,关于您的问题:
有什么办法可以解决?
是,不是。
是的,您可以通过添加具有正确映射的相应 bfrange 或 bfchar 部分来解决此问题。
但是...要做的是,您需要知道手头的字体分别将哪些代码映射到哪些Unicode字符串,名称 Adobe-Identity-UCS 本身通常并不意味着映射。也是如此:
否,并非没有其他信息。
@Tilman在对您引用的one of his answers问题的评论中,他展示了如何使用从不同来源收集的实际映射信息来添加丢失的 ToUnicode 映射。