4

Вот ссылки на некоторые журнальные статьи:

Все они кодируют круглые скобки (и другие символы, такие как скобки) неправильно. Однако это проявляется только при попытке преобразовать их в текст или скопировать и вставить. Например, первая строка тела первой статьи должна гласить:

Proton exchange membrane fuel cells (PEMFCs) have received

Вместо этого при копировании и вставке из Acrobat Reader он дает

Proton exchange membrane fuel cells PEMFCs have received

И при использовании "Сохранить как текст" это дает

Proton exchange membrane fuel cells ^CPEMFCs�
have received 

Если открывающая скобка - ^C , управляющая последовательность ASCII 03, а закрывающая скобка - Unicode 65533, символ замены, за которым следует символ новой строки. Аналогично, pdf2txt кодирует его как

Proton exchange membrane fuel cells 共PEMFCs兲 have received

(Unicode 20849 и 20850) и pdftotext кодирует его как

Proton exchange membrane fuel cells ͑PEMFCs͒ have received

(Юникод 849 и 850).

Есть также Unicode 851 (͓), 852 (͔), 1003 (ϫ), 1011 (ϳ), 1015 (Ϸ), 8217 ('), 8211 (-), 8722 (-), 64257 (), 64258 ( fl) и управляющий символ Ctrl-L (ASCII 12) в выводе pdftotext . Некоторые из них можно довольно легко нормализовать для ASCII, но некоторые из них потребуют ручного отображения, я думаю.

Мои вопросы:

  1. Какой лучший способ это исправить? Я видел несколько похожих вопросов, в том числе с использованием сценария для замены неправильно обработанных символов, но настройка отображений нетривиальна и не исправляет PDF.

  2. Почему разные программы чтения PDF и утилиты PDF to text дают такие разные результаты?

Вот результаты pdfinfo и pdffonts:

Title:          
Subject:        
Keywords:       
Author:         
Creator:        XPP
Producer:       Acrobat Distiller 6.0.1 (Windows)
CreationDate:   Thu Mar 23 12:07:23 2006
ModDate:        Sun Nov  4 12:48:02 2012
Tagged:         no
Pages:          6
Encrypted:      no
Page size:      657 x 855 pts
File size:      266467 bytes
Optimized:      no
PDF version:    1.4

name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
Helvetica                            Type 1            no  no  no      89  0
Helvetica-Oblique                    Type 1            no  no  no     109  0
Helvetica-Bold                       Type 1            no  no  no      88  0
LFNLKJ+Times-Bold                    Type 1C           yes yes no      63  0
LFNLLK+Times-Italic                  Type 1C           yes yes no      64  0
LFNLMK+Times-Roman                   Type 1C           yes yes no      65  0
LFNLML+MathematicalPi-Three          Type 1C           yes yes no      66  0
LFNLMM+MathematicalPi-One            Type 1C           yes yes no      67  0
LFNLMN+Universal-GreekwithMathPi     Type 1C           yes yes no      72  0

1 ответ1

2

Ответ находится в столбце "uni": те шрифты, в частности тот, который использовался для скобок, не имеют явного сопоставления с Unicode. Трудно определить наиболее правильный код для некоторого произвольного символа.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .