| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > парсинг pdf |
| Автор: gray_k 2.12.2004, 15:36 |
| Можно как-либо парсить pdf-файл средствами явы? Мне надо программно осуществлять поиск в pdf-файле. |
| Автор: Domestic Cat 2.12.2004, 16:18 |
| http://www.pdfbox.org/ |
| Автор: gray_k 2.12.2004, 17:11 |
| Спасибо, похоже прикольная библиотека. |
| Автор: sergejzr 4.12.2004, 04:08 |
| А возможно ли использовать этот либ в качестве класса. То есть "читать" pdf сразу в string. Без шагов через файлы. Сейчас несколько часов разбирался. Пришлось заинстолить несколько package'ей. Прога то скомпилилась, только при открытии pdf'а у неё исключение Какая то лажа с кодингом.... Вроде не оффоп Буду рад любой помощи |
| Автор: Domestic Cat 4.12.2004, 04:14 |
| Щас стяну посмотрю. Может прицепишь свой код чтоб проще было? |
| Автор: sergejzr 4.12.2004, 04:32 |
| Там ещё надо ant, lucen, log4j без них не пашет Файл с main: OCGui.OCApp.java Я взял их класс ExtractText и сделал свой InternalExtractText (Он в прицепе src.org.pdfbox) А их main переделал на функцию createPDF. вызывается она в ESReader: строка 45. Нужно создать папку (у меня D:\storage) в которой будут pdf'ы лежать. Он оттуда считывает. http://www.iwi-iuk.org:8081/pr/OClustering.zip Добавлено @ 04:37 Только много времени не трать на это. В конце концов если что придётся через файлы и екстернал конверторы гонять... |
| Автор: sergejzr 4.12.2004, 04:59 |
| Ну впринципе можно ещё со stderr забирать. Или на крайняк файл в памяти Сам по себе либ прекрасно работает Всё Спасибо |
| Автор: Domestic Cat 4.12.2004, 05:11 | ||
| пропустил про ант/lucene/и пр А какой иксепшн и на какой строке? (я не запускал, смотрю пока Добавлено @ 05:21
Извиняюсь В общем, если с консоли как в ридми написано, працюе, то и у тебя должно (на первый взгляд) работать при условии что getLocation не возвращает чегонибудь нехорошего, типа пути к файлу но без имени файла. Жду иксепшн |
| Автор: sergejzr 4.12.2004, 12:28 |
| С ексепшенами разобрался Просто хотелось бы метод, забирающий стринг из pdf. А если я беру их main, делаю нормальный класс,то он говорит мне теперь, "cannot resolve decrypt(), load()". Я така понимаю, там видимость protected. Может всё таки можно как нибудь "по нормальному" Вот проект - заготовка он попонятней будет http://www.iwi-iuk.org:8081/pr/mypdfbox.zip |
| Автор: Domestic Cat 4.12.2004, 16:06 | ||
Не понимаю |
| Автор: sergejzr 4.12.2004, 16:16 |
| Он просто не все PDF'ы читает к сожалению. Ну с этим ничего не поделаешь... Они обещали в документации дальше развиваться У меня осталась лишь проблема с генерацией "файла посредника" Попытки написать самому безуспешны. Мне недоступна видимость всех нужных классов. Работать нормально получилось только непосредственно с ExtractText.main(). Да ладно, фиг с ним накорвертирую заранее техтовых файлов, и буду их программно читать В любом случае спасибо |
| Автор: Domestic Cat 4.12.2004, 16:36 | ||||||
Можно достаточно просто переделать этот самый ExstractText так что он будет давать Стринг, в котором сразу можно искать че-нибудь. После того как документ был
нужно будет добавить
ну и работу со стримами поубирать |
| Автор: sergejzr 4.12.2004, 16:53 |
| Я так и пробовал... В том то и дело, что новый ExstractText должен лежать в том же месте, что и старый. А этого я в jar'e сделать не могу Иначе видимости не хватает PDocument.load() он не видит, поэтому pdf даже не заряжается.... |
| Автор: Domestic Cat 4.12.2004, 16:57 | ||||
Не может быть, т .к. прототип метода такой:
- паблик, и видеть твой класс его должен |
| Автор: sergejzr 4.12.2004, 17:20 |
| Сейчас пробую ещё раз Он упрямо говорит, чтот таких методов нет http://www.iwi-iuk.org:8081/pr/cluster.zip |
| Автор: Domestic Cat 4.12.2004, 20:15 |
| Запости лучше сам иксепшн, без него не понятно |
| Автор: sergejzr 4.12.2004, 20:21 |
| Нету эксепшена больше Просто не компилирует, когда пытаюсь вызвать метод PDDocument.load(); |
| Автор: Domestic Cat 4.12.2004, 20:32 |
| аа, ну тогда че он говорит ина какую строку? |
| Автор: sergejzr 4.12.2004, 20:40 |
| Да я уже всё черз файлы стал делать У меня задача вообще в кластеринге этих документов, так что я не могу на месте долго стоять А говорил он "InternalExtractText.java cannot resolve PDocument.decrypt()" И с load() то же самое. Я понимаю, что это невозможно, так как функция обьявлена паблик Возможно в jar'e она по другому обьявлена. я не знаю.... |
| Автор: Domestic Cat 4.12.2004, 20:59 |
| просто load не знает что делать со String, ему нужен File |
| Автор: sergejzr 4.12.2004, 22:06 | ||
Нет, не хочет не File, не String. Боралнд даже в подсказке не имеет метода load
|
| Автор: Domestic Cat 4.12.2004, 22:19 |
| Странно, в сорце метод load(String) есть, и паблик он |
| Автор: sergejzr 9.12.2004, 02:49 |
| Видит, как ни странно... http://www.iwi-iuk.org:8081/pr/cluster.zip Вот мой проект. Файл с main: OCGui.OCApp.java Посмотри сам, елси хочешь |
| Автор: Domestic Cat 9.12.2004, 07:12 |
| Ну у меня все скомпилилось, правда на депрекейшн поругалось (Java 1.5). Запустил я твой мейн, нефига не понял чего там делать, потому просто дописал мейн в InternalTextExtractor или как его там, и перевел пдф-ку в текст (лог4j там страшно ругается, его вообще убрать надо). Так что все работает. Скорее всего у тебя на CLASSPATH не положены все нужные jar'ы. Попробуй их всех (из PDFBox/lib , PDFBox/external) положить в твояЯва/jre/lib/ext/ и скомпилить ПС Как тебе такой текст для тега вывода с консоли? |
| Автор: sergejzr 11.12.2004, 03:44 | ||
Как немного разгребу с делами, попробую добавить |
| Автор: polosatij 12.12.2004, 19:13 | ||
млин.. не могу скачать библиотеку может кто здесь её положит? Добавлено @ 19:14 постоянная ошибка.. нет файла на сервере.. уже столько файлов перекликал.. Добавлено @ 19:15 что значит: The BSD License ? можно её использовать в комерческих целях бесплатно? |
| Автор: sergejzr 12.12.2004, 19:27 |
| Качайте кому надо до вечера http://www.iwi-iuk.org:8081/pr/PDFBox-0.6.6.zip |
| Автор: polosatij 12.12.2004, 19:49 | ||
паси |
| Автор: Zandr 24.12.2004, 09:23 |
| Нада создать PDF с табличками, нумерацией страничек, хедерами, футерами и главное - формирование активного оглавления. Потянет? Есть смысл разбираться? |
| Автор: Domestic Cat 24.12.2004, 10:00 |
| Не юзал, не знаю. Вроде как http://www.dynamicpdf.com/Java_Dynamic_PDF_Components_Libraries.csp?LF=GOOtxtGJV и http://www.lowagie.com/iText/ такое могут делать. Первый платный, второй - опен сорс. |
| Автор: Zandr 27.12.2004, 12:13 |
| На платный денег нет |
| Автор: Domestic Cat 27.12.2004, 17:19 |
| Они по моему там триал период дают на Dynamic PDF. |
| Автор: Hidrag 10.9.2007, 15:36 |
| а с помощью PDFBox можно разорвать пдфник на два куска и сохранить как два пдф файла? |
| Автор: Maksym 10.9.2007, 16:13 |
| Hidrag С помощью http://www.lowagie.com/iText/ точно можно. |
| Автор: sergejzr 10.9.2007, 16:16 |
| Форматирование при этом пропадёт? |
| Автор: Maksym 10.9.2007, 16:30 |
| sergejzr iText представляет pdf-ник в виде объектной модели. Под разрезать я имел в виду: прочитать pdf, затем создать два новых pdf, скопировать в них нужные страницы и записать их. В ходе такого преобразования файл pdf -> iText objects -> файлы pdf что-то может и попортиться. Но, вообще, библиотека достаточно качественная и у меня проблем не было, все поддерживалось. |
| Автор: Bozo 10.9.2007, 21:47 |
| IDRsolutions has released http://www.jpedal.org/, a pure Java library for extracting content from PDF files and rasterizing them. |