Пустое преобразование пробелов в PDFClown
У меня возникла проблема при использовании TextExtractor
класс в PDFClown, с появлением пустого пробела, также известного как "произвольный перевод строки". Эти символы вставляются случайным образом, но игнорируются в Acrobat Reader. Таким образом, строки, в которых существуют эти символы, будут отображаться в Acrobat как одна строка, но разбиваются на много строк при извлечении текста, если я укажу '\n'
как символ новой строки в TextExtractor.ToString(...)
,
Похоже, что PDF клоун просто берет любой символ пробела и преобразует его в один пробел, или ' '
, Есть ли способ обойти это преобразование, чтобы вместо него был извлечен исходный символ?
1 ответ
После дополнительных исследований выясняется, что библиотека PDFClown очень глючная. Есть несколько вопросов:
- Преобразует большинство символов пробела в один обычный символ пробела.
- Вставляет пробелы вместо новых строк.
- Если вы попытаетесь использовать предоставленные переопределения, чтобы вставить свой собственный символ для пробелов или символов новой строки, внутренние сопоставления символов в извлеченном массиве с полями для каждого отдельного символа будут уничтожены.
- Не удается правильно декодировать все встроенные шрифты.
- Поскольку он не может правильно декодировать встроенные шрифты, он будет молча пропускать символы из извлеченного текста.
- Не может надежно обрабатывать лигатуры или разложение лигатур. Часто молча выпадают из извлеченного текста.
Чтобы перейти непосредственно к проблеме, которую я имел, вы можете обнаружить и удалить эти "ложные" пробельные символы, проверив их ограничивающий прямоугольник, чтобы увидеть, не перекрывают ли они другие непробельные символы, но учитывая все другие проблемы с библиотекой, мой совет использовать используйте вместо этого PDFBox.
Если вы используете.NET и хотите использовать PDFBox, вы можете использовать Tika On Dot Net, который представляет собой проект Apache Tika, перенесенный в.NET через IKVM.
Apache Tika - это коллекция других библиотек, включая PDFBox. В настоящее время у Tika On Dot Net есть PDFBox 1.8.10, а также пакет Nuget, который упрощает добавление в ваш проект.
У меня был проект на 1,5 недели позже крайнего срока, потому что все эти проблемы были обнаружены на полпути, что потребовало полного переписывания. Просто один на один.