2014-12-02 82 views
1

当我转换,打印或简单的复制粘贴pdf文档在希伯来文我得到损坏的数字。例如在输出中,我得到了4994-4999而不是1992-1999。甚至LibreOffice也会在这个问题上打开文档。PDF希伯来语转换问题

更多实例(原 - >输出):

2008-2010 -> 9334-93.3‬ 
2011-2012 -> 4344-4344 
321390445 -> 044093223 

我尝试这样的方法:

  1. 复制 - 粘贴
  2. 使用的LibreOffice和Google云端硬盘到另一个文档
  3. 打印文档使用命令行转换器如pdf2txt,pdftotext,qpdf,pdftoht转换文档
  4. 毫升
+2

很可能PDF不包含字形所代表的字符,甚至是错误的信息。如果你分享一个示例文件,我们可以检查。 – mkl 2014-12-02 15:13:45

+0

有错误的文档示例:https://dl.dropboxusercontent.com/u/25681990/1992.pdf – shevayura 2014-12-03 09:07:09

回答

0

的示例文档显示这样的:

enter image description here

但是从使用Adobe Acrobat导致复制&膏:

4144144714614 6991-6991

的逆转字符的顺序乍一看可能已经占到文本已在内容流中设置为希伯来语的语言:

/P <</MCID 0/Lang (he-IL)>> BDC 

但可能不适合多个字形错误地提取出来,例如原因两年的数字19921996都被提取为“6991”。

这样做的真正的罪魁祸首是在这里使用的ToUnicode表的字体:

2 beginbfchar 
<0003> <0020> 
<0010> <002D> 
endbfchar 
1 beginbfrange 
<0014> <001A> [<0036> <0031> <0034> <0034> <0037> <0031> <0034>] 
endbfrange 
1 beginbfchar 
<001C> <0039> 
endbfchar 

此表由文本提取到了Unicode代码点的标志符号标识符相关联。该bfchar和bfrange节在这里暗示的映射:

0003 -> 0020 " " 
0010 -> 002D "-" 
0014 -> 0036 "6" 
0015 -> 0031 "1" 
0016 -> 0034 "4" 
0017 -> 0034 "4" 
0018 -> 0037 "7" 
0019 -> 0031 "1" 
001A -> 0034 "4" 
001C -> 0039 "9" 

显然,三个不同的字形映射到数字“4”和两个不同的数字“1”。

在文本绘制操作与字形ID的渲染字形相比,虽然

[<0014001C001C0019>] TJ 
[<0010>] TJ 
[<0014001C001C0015>] TJ 
[<0003>] TJ 
[<00170019001A00170019001A001700180019001A>11<001400150016>] TJ 

表应当有这样映射:

0003 -> " " 
0010 -> "-" 
0014 -> "1" 
0015 -> "2" 
0016 -> "3" 
0017 -> "4" 
0018 -> "5" 
0019 -> "6" 
001A -> "7" 
001C -> "9" 

对我来说这看起来像工具建立了ToUnicode表不知道如何在PDF中绘制字形或如何排列明文数字。

最右边的年份1996的第一个字符串<0014001C001C0019>中的字形从左到右排列。如果假定字符顺序或明文中的字符顺序是从右到左,则会得出0014将映射为“6”且0019为“1”的错误结论。对于上面引用的文本绘制操作中的所有字符串和尚未关联的所有字形标识的所有字符串,总结错误地是这样,将会得到如PDF中的ToUnicode表所示的错误映射。

因此,PDF本质上是躺在哪个字形表示哪个数字。为了解决这个问题,生产者程序(或生成ToUnicode地图的工具)必须修复。

+0

它的ms字生成这样的文档。 – shevayura 2014-12-03 13:02:03

+0

有没有办法在软件解析器中将这些数字转换为正常? – shevayura 2014-12-03 13:06:33

+0

*它的ms字* - 所以这是一个MS Word的错误。 *有没有办法在软件解析器中将这些数字转换为正常* - 如上所述,** ToUnicode **映射本质上是垃圾,至少是数字。如果检查MS Word生成的PDF文档,可能会发现一条规则如何修复地图。不过,这本身就是一个项目。 – mkl 2014-12-03 16:54:54