原始代码:(\ 037)Tj
CID 31应该根据编码差异which is right
映射到“✓”BaseEncoding:WinAnsiEncoding
差异:[31,uni2713]
CID 31根据ToUnicode CMap映射为“ 3”,这是错误的
CMap:
/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
<< /Registry (Adobe)
/Ordering (UCS) /Supplement 0 >> def
/CMapName /Adobe-Identity-UCS def
/CMapType 2 def
1 begincodespacerange
<0000> <FFFF>
endcodespacerange
2 beginbfchar
<1F> <0033>
<0020> <0020>
endbfchar
endcmap CMapName currentdict /CMap defineresource pop end end
答案 0 :(得分:0)
在PDF格式中,渲染和文本提取是两个单独的路径。与HTML不同,在PDF中,这是两个单独的操作。
根据您提供的内容,页面内容流具有字符代码\ 037(八进制)。为了进行渲染,使用了编码,而差分是其中的一部分,因此使用字体编码uni2713的字形索引。
但是,对于文本提取,使用ToUnicode CMap。您可以通过在各种PDF阅读器中打开PDF并将其复制并粘贴到文本编辑器中来进行验证。
这样做的原因是,虽然字符代码只能映射到特定字体中的一个字形,但相同的字符代码却可以映射到多个unicode值。说出U + FB01(连字)。
发现没有足够好的程序可以从pdf中提取文本和表格。
您可能没有看到我所工作的公司开发的文本和表格提取工具。 https://www.pdftron.com/document-understanding