Как я могу извлечь текстовое содержимое (не изображения) из PDF-файла, сохраняя при этом (примерно) стиль и макет, как Google Docs?
как извлечь форматированное текстовое содержимое из PDF
Ответы (6)
Чтобы извлечь текст из PDF и получить его позицию, вы можете использовать PDFMiner. PDFMiner также может экспортировать PDF прямо в HTML, сохраняя текст в нужном месте.
Я не знаю вашего варианта использования, но есть много проблем, с которыми вы можете столкнуться при этом, потому что PDF действительно ориентирован на представление, а не на контент, поток текста не является непрерывным. Итак, если вы хотите, чтобы текст редактировался, это будет непростой задачей.
python-pdfminer
и командой pdf2txt
.
- person naught101; 05.01.2015
В Xpdf есть утилита PDFtoText, которая отлично справляется со своей задачей. http://foolabs.com/xpdf/download.html
Если вы хотите сделать это так же, как Google:
Google преобразует PDF в изображение, а затем накладывает на изображение, где раньше был текст, выделяемые области JavaScript (что похоже на магию вуду). Области кажутся текстовыми, когда вы прокручиваете их курсором, но это не так. Это может не помочь вам узнать, но так они это делают. Если вы хотите перепроектировать его, вы можете начать с https://www.mercurial-scm.org/ На домашней странице они делают то же самое с помощью JavaScript, чтобы текст можно было выделить и скопировать. Вы можете извлечь текст из PDF-файла и найти его местоположение на странице с одной из упомянутых библиотек в других ответах. Затем вы можете наложить извлеченное изображение файла с тем же стилем областей JavaScript.
Если вы не хотите делать это с помощью Python, Ghostscript может сделать это за вас. Проверьте pdf2ascii (скрипт, который поставляется с GS), чтобы получить простой текст. Стили более сложны, поскольку их можно указать несколькими способами.
Acrobat Professional может сделать эту работу. В меню «Файл» выберите экспорт. Затем выберите Текст.