2010-03-27 3 views
2

Есть ли бесплатная библиотека Java для извлечения текста из PDF, совместимого с Google Application Engine?Извлечь текст из PDF (движок Google)

Я читал о PDFJet, но он не может читать PDF, не так ли?

Может ли быть другой способ, как извлечь текст из PDF? Я пробовал http://www.pdfdownload.org/, к сожалению, они не обрабатывают неанглийские символы правильно.

ответ

3

iText теперь имеет текстовый модуль синтаксического анализа (я один из авторов парсера). См. Класс com.itextpdf.text.pdf.parser.PdfContentReaderTool для примера того, как его использовать.

+0

iText использует определенные классы (например, java.awt.AffineTransform), которые недоступны в GAE. См. Эту страницу для получения дополнительной информации: http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine –

+0

hmmm. Библиотека парсера, конечно же, не использует AffineTransform (я фактически реализовал собственные преобразования матрицы для синтаксического анализатора).Я знаю, что iText * поддерживает * аффинные преобразования при создании файлов PDF, но я сомневаюсь, что это необходимо для синтаксического анализа. Отправьте класс и метод, который дает вам проблемы с использованием этого с движком приложения, и я посмотрю. –

+0

Я только что использовал iText в среде GAE =) – rsalmeidafl

1

Я знаю, что есть http://pdfbox.apache.org/index.html

Apache PDFBox является открытым исходным кодом Java PDF библиотека для работы с PDF документов. Этот проект позволяет создавать новые PDF-документы, манипулировать существующими документами и возможность извлекать контент из документов.

, но я никогда не тестировал его.

2

PdfBox не работает на GAE. Он использует недопустимые классы java.
(GAE разрешает только эти http://code.google.com/appengine/docs/java/jrewhitelist.html)

Я частично изменил очень старую версию PdfBox (0.7.3), чтобы быть GAE complaiant. Теперь я могу извлечь текст из PDF (целая страница или прямоугольная область). Я только изменил минимальную часть извлечения текста pdf, а не весь PdfBox. :)
Идея заключалась в том, чтобы удалить привязки к java.awt.retangle & C. используя мой собственный класс «прямоугольник».

Подробнее: http://fhtino.blogspot.com/2010/04/pdfbox-text-extration-gae.html

-1

В прошлом месяце, я только что закончил извлечения текста из PDF-файла в моем проекте. Я использовал XPDF-инструмент для получения текста и текстовых координат, но я использовал его в Xcode (Objective-C). Этот инструмент был открытым исходным кодом, написанный C++ и способный кодироваться на многих языках. Однако я не знал, будет ли XPdf работать на вашем java, или нет. В любом случае, вы можете попробовать этот инструмент.

2

Я изменил последнюю версию (1.8.0-Снимок) для запуска в Google AppEngine. Если бы отключить один Unit-Test, но он отлично работает для простого извлечения текста.

Следуя простому подходу при попытке исправить ошибку, мне пришлось всего 5 файлов. Довольно выполнимо.

Вам также необходимо явно использовать RandomAccessBuffer, как объяснил Фабрицио.

Для дополнительной лени, heres скомпилированный jar, зависимости для извлечения текста и патча. Обратите внимание, что это может не сработать для каждого usecase (т. Е. Извлечения на основе прямоугольника). Используется для извлечения текста всей страницы. https://docs.google.com/folder/d/0B53n_gP2oU6iVjhOOVBNZHk0a0E/edit

+0

Я использую [this] (http://stackoverflow.com/ вопросы/4955635/how-to-add-local-jar-files-in-maven-project/36602256 # 36602256) (Anthony O. answer) вопрос о добавлении файлов jar в мой проект. следует добавить все файлы jar (включая зависимости) в тот же каталог? – dina

+1

Да. Или еще лучше ... запустите ведение журналов и шрифтов в «последних» версиях через регулярный maven-pom в качестве зависимости и попробуйте, если он будет работать. – icyerasor

+0

спасибо !! был очень полезен! наконец, я могу разобрать pdf на GAE :) – dina

Смежные вопросы