0

我正在尝试提取pdf中第 5 页的文本。
pdf 的字体 YLJAAA+CMSY10 没有映射 (CMap) 甚至没有编码(默认编码或 /Differences)。
提取文本时,字符串 "tetex package" CGPDFScanner 返回多次遇到的 "\x15" 字符。
当遇到这个字符时,当前字体是上面提到的字体,它没有任何东西可以从 pdf 字符串中提取文本。这个 \x15 字符是什么?

谢谢。

4

1 回答 1

2

我发现了 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(十进制)被命名为“大于或等于”并且看起来也是如此。

于 2015-07-07T11:41:50.900 回答