как извлечь форматированное текстовое содержимое из PDF

Как я могу извлечь текстовое содержимое (не изображения) из PDF-файла, сохраняя при этом (примерно) стиль и макет, как Google Docs?


person hoju    schedule 04.02.2010    source источник


Ответы (6)


Чтобы извлечь текст из PDF и получить его позицию, вы можете использовать PDFMiner. PDFMiner также может экспортировать PDF прямо в HTML, сохраняя текст в нужном месте.

Я не знаю вашего варианта использования, но есть много проблем, с которыми вы можете столкнуться при этом, потому что PDF действительно ориентирован на представление, а не на контент, поток текста не является непрерывным. Итак, если вы хотите, чтобы текст редактировался, это будет непростой задачей.

person Etienne    schedule 04.02.2010
comment
Этот пакет доступен в Ubuntu под именем python-pdfminer и командой pdf2txt. - person naught101; 05.01.2015

Пробовали ли вы pyPDF или ReportLab библиотеки PDF? Я лично не использовал их, но вы можете попробовать их. здесь тоже полезно

person ghostdog74    schedule 04.02.2010

В Xpdf есть утилита PDFtoText, которая отлично справляется со своей задачей. http://foolabs.com/xpdf/download.html

person chrisfs    schedule 05.07.2011

Если вы хотите сделать это так же, как Google:

Google преобразует PDF в изображение, а затем накладывает на изображение, где раньше был текст, выделяемые области JavaScript (что похоже на магию вуду). Области кажутся текстовыми, когда вы прокручиваете их курсором, но это не так. Это может не помочь вам узнать, но так они это делают. Если вы хотите перепроектировать его, вы можете начать с https://www.mercurial-scm.org/ На домашней странице они делают то же самое с помощью JavaScript, чтобы текст можно было выделить и скопировать. Вы можете извлечь текст из PDF-файла и найти его местоположение на странице с одной из упомянутых библиотек в других ответах. Затем вы можете наложить извлеченное изображение файла с тем же стилем областей JavaScript.

person orokusaki    schedule 04.02.2010
comment
ах, вы правы - они используют изображения, а это не то, что мне нужно, потому что мне нужно манипулировать текстом - person hoju; 04.02.2010

Если вы не хотите делать это с помощью Python, Ghostscript может сделать это за вас. Проверьте pdf2ascii (скрипт, который поставляется с GS), чтобы получить простой текст. Стили более сложны, поскольку их можно указать несколькими способами.

person Justin R.    schedule 04.02.2010

Acrobat Professional может сделать эту работу. В меню «Файл» выберите экспорт. Затем выберите Текст.

person Shawn    schedule 24.10.2012