我正在尝试提取pdf中第 5 页的文本。
pdf 的字体 YLJAAA+CMSY10 没有映射 (CMap) 甚至没有编码(默认编码或 /Differences)。
提取文本时,字符串 "tetex package" CGPDFScanner 返回多次遇到的 "\x15" 字符。
当遇到这个字符时,当前字体是上面提到的字体,它没有任何东西可以从 pdf 字符串中提取文本。这个 \x15 字符是什么?
谢谢。
我正在尝试提取pdf中第 5 页的文本。
pdf 的字体 YLJAAA+CMSY10 没有映射 (CMap) 甚至没有编码(默认编码或 /Differences)。
提取文本时,字符串 "tetex package" CGPDFScanner 返回多次遇到的 "\x15" 字符。
当遇到这个字符时,当前字体是上面提到的字体,它没有任何东西可以从 pdf 字符串中提取文本。这个 \x15 字符是什么?
谢谢。
我发现了 2 次(不是“很多”)这种情况:
[ (\025) ] TJ
这是一个八进制数- 这是\x15
十六进制数。
PDF中“YLJAA+CMSY10”的字体定义没有特殊编码,所以默认编码为“CMSY”(“Computer Modern Symbol”):
114 0 obj
<<
/Type /Font
/Subtype /Type1
/BaseFont 210 0 R % -> "/YLJAAA+CMSY10"
/FirstChar 0
/FontDescriptor 211 0 R
/LastChar 127
/Widths 204 0 R
>>
211 0 obj
<<
/Ascent 750
/CapHeight 683
/CharSet (/bullet/greaterequal/arrowright/arrowdblright/element/negationslash/backslash/radical)
/Descent 0
/Flags 4
/FontBBox [ -29 -960 1116 775 ]
/FontFile 205 0 R
/FontName 210 0 R % -> '/YLJAAA+CMSY10'
/ItalicAngle -14
/StemV 85
/XHeight 430
>>
endobj
就其本身而言,这仍然没有说明什么:PDF 制作者可以随意重新排序字形和编码,只要它对嵌入的字体执行相同的操作)。假设字体集没有重新排序,检查CMxx 编码的随机列表显示字符代码0x1F
很可能大于或等于 (Unicode U+2265)。
Acrobat 同意;检查 PDF 中的字体显示字符代码21
(十进制)被命名为“大于或等于”并且看起来也是如此。