Пустое преобразование пробелов в 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 недели позже крайнего срока, потому что все эти проблемы были обнаружены на полпути, что потребовало полного переписывания. Просто один на один.

Другие вопросы по тегам