更改pdf文本编码

changing pdf text encoding

我有一个 PDF 文档(那是我的教科书),问题是虽然文本打印正常,但它是以一些随机字形的形式复制的。我发现,这是因为文本是在 cp1251 上编码的,但试图被解码为 cp1252(或者反之亦然,但复制的字形属于 1252)。从1252到1251粘贴文本到解码器我可以得到原文(图片相关)

为了解决我的文本搜索和复制问题,我只使用了 OCR,但也许有办法改变它在某些 pdf 中的编码 headers?另外我确实需要为学校研讨会复制一些插图,但 Inkscape 和 AI 仍然在 1252 中输出这些字形。

在Adobe Acrobat DC中打开文字,我看到他在抱怨字体1251次。在 Npp 我找到了这样的

1146 0 obj
<<
/Ascent 756
/CapHeight 750
/Descent -195
/Flags 32
/FontBBox [-91 -224 1237 943]
/FontFamily (1251 Times)
/FontFile2 1147 0 R
/FontName /OGAHOK+1251Times
/FontStretch /Normal
/FontWeight 400
/ItalicAngle 0
/StemV 90
/Type /FontDescriptor
>>
endobj
1145 0 obj
<<
/BaseFont /OGAHOK+1251Times
/Encoding /WinAnsiEncoding
/FirstChar 32
/FontDescriptor 1146 0 R
/LastChar 255
/Subtype /TrueType
/Type /Font
/Widths [351 0 0 0 0 0 828 0 392 392 0 0 326 448 288 455 531 533 532 532 532 532 532 531 531 532 288 0 0 0 0 0 864 724 714 776 0 706 0 0 875 417 0 0 0 0 882 0 661 0 770 599 678 0 0 983 0 0 0 0 0 0 0 0 0 495 539 499 565 489 322 491 583 294 0 532 287 887 590 566 563 0 376 385 332 568 486 729 0 503 476 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 554 554 0 952 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 896 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 699 714 0 747 0 0 597 886 0 812 0 1034 875 0 877 0 776 678 729 0 0 858 0 0 0 0 0 0 759 0 0 495 559 523 434 539 489 757 449 622 622 577 550 715 636 566 622 563 499 468 503 764 500 621 553 880 880 0 760 501 517 820 546]
>>
endobj
1150 0 obj
<<
/Filter /FlateDecode
/Length1 32416
/Length 24094
>>
stream

将所有出现的 1251 替换为 1252,我一无所获。什么是 di 这件事的正确方法?还有这样的正确方法吗?

OGAHOK+1251次(或类似的六个随机字符和一个字体的名称标签)

非常 通常表示来源被识别为 OCR(一个字符相对于另一个)因此 每个字母 或一行字母或一页字母可以有自己的字体,正如您发现的那样,这里 look-likes Times Roman 是 1251 字体。

因此将名称更改为 1252 就像说 Times is Verdana 一样,无法更改原始数据。

我很惊讶,但也为你感到高兴,你可以将一些可读的 1251 转换为 1252,但是在可能损坏的字体指标内进行合理的转换几乎不可能一次将一个符号替换为另一个并保持字符串形状看到变化 /Widths.

但是没有基于经验的基本 PDF 文件而不是您的来源失败。

[更新]

哇!该文件有 600 种字体!有些东西处理得很糟糕

问题似乎是由于使用了 WinAnsiEncoding 而不是某种 UTF-8 或兼容的编码方法。我正在寻找是否有任何修改方法,但不确定它是否可以帮助或使事情变得更糟。在这里,我可以尝试编辑设置,但在 Tracker PDF X-change 的这张截图中,编辑器进行更改没有帮助,除非文本被剪切、转换并粘贴回来。