导致“无法读取 GoogleSans-Regular 字体中的 ToUnicode CMap”的原因

问题描述 投票:0回答:1

不确定问题是否出在文件中,可能是 PDFBox 或我正在做的事情。我想这个文件。

我得到:

“无法读取 GoogleSans-Regular 字体中的 ToUnicode CMap”

java.io.IOException:java.lang.IllegalArgumentException:开始值和结束值的长度不得不同。 在org.apache.fontbox.cmap.CMapParser.parseBegincodespacerange(CMapParser.java:289) 在 org.apache.fontbox.cmap.CMapParser.parse(CMapParser.java:147) 在 org.apache.pdfbox.pdmodel.font.CMapManager.parseCMap(CMapManager.java:73) 在 org.apache.pdfbox.pdmodel.font.PDFont.readCMap(PDFont.java:218) 在 org.apache.pdfbox.pdmodel.font.PDFont.loadUnicodeCmap(PDFont.java:147) 在 org.apache.pdfbox.pdmodel.font.PDFont.(PDFont.java:115) 在org.apache.pdfbox.pdmodel.font.PDType0Font。(PDType0Font.java:182) 在org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:97) 在 org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:171) 在 org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:66) 在 org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:966) 在 org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:541) 在

ToUnicode 看起来像这样:

/CIDInit /ProcSet findresource begin
12 dict begin
begincmap
/CIDSystemInfo
<</Registry (Adobe)
/Ordering (Identity)
/Supplement 0
>> def
/CMapName /Adobe-Identity-H def
CMapType 2 def
1 begincodespacerange
<0000> <FFFFF>
endcodespacerange
0 beginbfchar
endbfchar
1 beginbfrange
<0003> <0037> [<0020> <0041> <0042> <0043> <0044> <0045> <0046> <0047> <0048> <0049> <004A> <004B> <004C> <004D> <004E> <004F> <0050> <0051> <0052> <0053> <0054> <0055> <0056> <0057> <0058> <0059> <005A> <0061> <0062> <0063> <0064> <0065> <0066> <0067> <0068> <0069> <006A> <006B> <006C> <006D> <006E> <006F> <0070> <0071> <0072> <0073> <0074> <0075> <0076> <0077> <0078> <0079> <007A>]
endbfrange
endcmap
CMapName currentdict /CMap defineresource pop
end
end

我们处理很多第三方 pdf,所以我的兴趣更多的是处理这个问题的一般方法,而不是修复这个文件的方法。我可以告诉它采用 unicode 吗?

pdf pdfbox apache-tika
1个回答
0
投票

问题出在

<0000> <FFFFF>

应该是

<0000> <FFFF>

您可能无法提取该字体的文本。 PDFBox 尝试了一些后备策略,但并不总是有效。

© www.soinside.com 2019 - 2024. All rights reserved.