pdf2HtmlEX — текст в html отличается от исходного pdf

Я использую pdf2htmlEX для преобразования файлов PDF в HTML. Я также извлекаю текст из файла впоследствии.

Проблема:

Я столкнулся с файлом, в котором текст в преобразованном html не читается: https://dspace.mit.edu/openaccess-disseminate/1721.1/101159

Команда, которую я использую:

pdf2htmlEX --tounicode 1 ./file.pdf

В тексте html много пробелов и много кавычек - введите здесь описание изображения

[2]M.Hahn,O.Barbieri,F.P.Campana,R.Kötz,R.Gallay,Appl.Phys.A:M a te r.S ci.P ro се сс.8 2 (2 00 6 )

Установка других значений для аргумента --tounicode делает текст бессмысленным.

Существует онлайн-инструмент, который использует эту библиотеку, и созданный там html просто прекрасен, что делает его не ошибкой pdf2htmlEX, а проблемой конфигурации или версий. Может быть что-то связанное с poppler или fontforge.

Версии:

pdf2htmlEX version 0.14.6
Copyright 2012-2015 Lu Wang <[email protected]> and other contributors
Libraries: 
  poppler 0.54.0
  libfontforge 20180906
  cairo 1.14.6
Default data-dir: /usr/local/share/pdf2htmlEX
Supported image format: png jpg svg

Попытался также использовать новый репозиторий, поддерживающий этот проект, и получил те же результаты, см. проблему: https://github.com/pdf2htmlEX/pdf2htmlEX/issues/92

К вашему сведению, pdf2htmlEX использует широкий диапазон символов в качестве пробелов, таких как ' ( ) +. Так что менять их все не вариант.

Есть ли способ заставить pdf2htmlEX не использовать эти символы?


person Montoya    schedule 06.09.2018    source источник
comment
страница сама по себе в порядке при просмотре в браузере. Потому что css изменяет расстояние между буквами. вы ищете необработанный html с правильным предложением вместо обработанной версии?   -  person karthick    schedule 15.09.2018
comment
Да. Вывод выглядит хорошо в браузере, для меня проблематичным является необработанный html.   -  person Montoya    schedule 16.09.2018


Ответы (1)


Я думаю, что следующие два шага будут работать:

  1. Удалите ненужные пробелы и кавычки с помощью регулярного выражения.
  2. Поместите/добавьте тег абзаца для каждой ссылки, как показано ниже:
<div>
::before
<p>[2] something </p>
::after
</div>
person Yasin    schedule 16.09.2018
comment
Это не сработает по двум основным причинам: 1. Эти символы используются во встроенном шрифте, и их изменение приведет к неизвестному поведению. 2. Удаление всех кавычек из документа удалит и настоящие, хотя кавычки — не единственный тип символов, которые он может вставлять в необработанный html. - person Montoya; 17.09.2018