Как сохранить текстовый файл в формате UTF-8 с помощью pdftotext

Я использую инструмент с открытым исходным кодом pdftotext для преобразования PDF в текстовые файлы. Как сохранить текстовые файлы в формате UTF-8, чтобы сохранить все символы акцента в текстовых файлах. Я использую приведенную ниже команду для преобразования, которая извлекает содержимое в текстовый файл, но не может видеть символы с акцентом.

pdftotext -enc UTF-8 book1.pdf book1.txt

Пожалуйста, помогите мне решить эту проблему.

Заранее спасибо,


person Amar    schedule 28.10.2010    source источник


Ответы (2)


Вы можете получить список доступных кодировок с помощью команды:

pdftotext -listenc

и выберите правильный, используя аргумент -enc. Мой здесь, похоже, по умолчанию использует UTF-8. т.е. ваша "UTF-8" лишняя

pdftotext -enc UTF-8 your.pdf

Вы можете проверить свою локаль (LC_ALL, LANG, ...).

EDIT: я скачал следующий PDF-файл: http://www.i18nguy.com/unicode/unicodeexample.pdf

и преобразовал его на ПК с Windows 7 (немецкий) и XPDF 3.02PL5 с помощью команды:

pdftotext.exe -enc UTF-8 unicodeexample.pdf

Текстовый файл определенно имеет кодировку UTF-8, так как все символы отображаются правильно. Для чего вы используете текстовый файл? Если вы показываете его через веб-приложение, ваша кодировка контента может быть просто неправильной, в то время как текстовый файл был преобразован так, как вы этого хотели.

Перепроверьте с помощью браузера (принудительно установите кодировку в Firefox на ISO-8859-1 и UTF-8) или с помощью шестнадцатеричного редактора.

person icanhasserver    schedule 28.10.2010
comment
Спасибо за ответ. Я не могу получить список кодировок, используя pdftotext -listenc. Я также использую ту же команду, которую вы указали, но все равно бесполезно для меня. не могли бы вы прислать мне свой адрес электронной почты, чтобы я мог отправить вам PDF для тестирования? Еще раз спасибо. - person Amar; 28.10.2010
comment
Я использую pdftotext версии 3.02. - person Amar; 28.10.2010
comment
На какой платформе вы это запускаете? Какой-то Unix/Linux или Windows? Судя по номеру версии, вы используете несколько устаревшую (оригинальную) версию XPDF. Тем временем большинство дистрибутивов Linux перешли на Poppler. У меня написано: pdftotext версии 0.14.4 и исходит от Poppler (версия выпущена в 2010 году). - person icanhasserver; 28.10.2010
comment
Я использую Windows 7 и скачал последнюю версию Xpdf 3.02pl5, выпущенную 21 октября 2010 г. для Windows. - person Amar; 28.10.2010
comment
См. мое редактирование выше. У меня нет проблем с преобразованием в UTF-8 с использованием упомянутой вами версии. - person icanhasserver; 28.10.2010
comment
Я использую ту же команду, которую вы дали здесь, и просто сохраняю ее в текстовый файл. Он не отображается в веб-браузере. Не могли бы вы прислать мне свой адрес электронной почты, чтобы я мог отправить образец PDF-файла? - person Amar; 28.10.2010
comment
Отправьте его по следующему адресу: temp12474 AT icanhasserver DOT com , но ваша проблема связана не с самим файлом PDF. Тот, который я предложил выше, намного лучше подходит для диагностики, так как содержит большое количество различных кодовых точек. - person icanhasserver; 28.10.2010
comment
Я попробовал приведенный выше файл PDF, и он отлично работает для меня. Но венгерский PDF, который я пытаюсь преобразовать, не работает. Я отправил вам образец PDF. Пожалуйста, попробуйте и дайте мне знать, спасибо. - person Amar; 28.10.2010

Все становится немного запутанным, поэтому я добавляю еще один ответ.

Я разобрал PDF-файл и, по моему мнению, это «проблема» с используемым шрифтом:

  • откройте файл PDF в Acrobar Reader
  • выделить весь текст на странице
  • скопируйте его и вставьте в текстовый редактор с поддержкой Unicode (нет «скрытого» OCR, поэтому вы копируете фактические данные)

Вы увидите, что кодовые точки, которые вы получите, не те, которые вы видите в программе чтения PDF. Каким бы ни был шрифт, его отображение может отличаться от того, которое определено в стандарте Unicode. Таким образом, ваш контент является «неправильным», и вы мало что можете с этим поделать.

person icanhasserver    schedule 28.10.2010