Кредит изображения: Pixland / Pixland / Getty Images
Читать PDF-файлы на Java с помощью доступных библиотек несложно. Чтение файлов PDF позволяет вам писать программы на Java, которые могут обрабатывать текст в этих файлах. Одним из вариантов чтения файлов PDF является бесплатная библиотека PDFBox с открытым исходным кодом, доступная от Apache. Платформа разработки Eclipse Java упрощает эту работу и управляет библиотеками, которые вы будете загружать. Вы должны быть знакомы с программированием на Java, чтобы использовать эти библиотеки Java.
Соберите необходимые библиотеки
Шаг 1
Загрузите Java JDK с веб-сайта Sun. Это исполняемый файл, который вы можете установить в своей системе, запустив его. Доступны версии для Windows, Mac и Linux. Нажмите красную кнопку «Загрузить». При появлении запроса сохраните файл с именем «jdk-6uxx-windows-xxx.exe». Сохраните этот файл, а затем дважды щелкните его, чтобы запустить установщик Java.
Видео дня
Шаг 2
Загрузите систему разработки Eclipse и распакуйте ее в каталог верхнего уровня. Выберите «Eclipse IDE для разработчиков Java». Это запустит загрузку «eclipse-java-galileo-SR2-win32.zip». Дважды щелкните файл, чтобы разархивировать его после завершения загрузки. Выберите расположение корневого каталога «C:», чтобы распаковать Eclipse.
Шаг 3
Запустите Eclipse, дважды щелкнув «eclipse.exe» в каталоге, который вы только что создали, распаковав zip-файл eclipse. В системе Eclipse создайте проект с именем «PrintPdf». Выберите «Файл», затем «Создать», затем «Проект Java». Введите название проекта «PrintPdf» в появившемся диалоговом окне. Убедитесь, что установлен переключатель с надписью «Создавать отдельные папки для исходных файлов и файлов классов». Щелкните "Готово".
Шаг 4
Создайте папку «lib» в своем проекте «PrintPdf». Щелкните правой кнопкой мыши проект «PrintPdf» и выберите «Создать», а затем «Папка». Введите имя «lib» и нажмите «Готово».
Шаг 5
Загрузите Apache «PDFBox.jar» с сайта Apache и скопируйте его в только что созданный каталог lib. На той же веб-странице загрузите файлы «fontbox-nn.jar» и «jempbox-nn.jar». В каждом случае, когда вы нажимаете на этот файл jar, он переводит вас на страницу, где вы можете выбрать один из нескольких серверов, которые могут предоставить этот файл. Выберите каждый из них, и каждый файл jar будет загружен. Скопируйте каждый файл jar в только что созданный каталог lib.
ШАГ 6
Загрузите пакет Apache log4j.jar таким же образом и скопируйте файл log4j.jar в каталог. Библиотека Apache PDFBox использует эту библиотеку ведения журнала Apache, поэтому этот файл должен присутствовать.
Шаг 7
Загрузите пакет Apache Commons Discovery в виде zip-файла. Дважды щелкните zip-файл, выберите «commons-discovery-nn.jar» и извлеките его в каталог lib.
Шаг 8
В Eclipse щелкните каталог «lib» и нажмите «F5». Убедитесь, что отображаются все добавленные вами jar-файлы.
Шаг 9
Щелкните правой кнопкой мыши проект PrintPDF и выберите «Свойства». Выберите «Путь сборки Java» и выберите вкладку «Библиотеки». Нажмите «Добавить jar», перейдите в только что созданный каталог lib и добавьте «commons-logging-nn.jar», «fontbox-nn.jar», «jempbox-nn.jar», «log4j-nn.jar»., "и" pdfbox-nn.jar. " Щелкните "ОК".
Напишите код для чтения PDF-файлов
Шаг 1
Щелкните правой кнопкой мыши папку «src» вашего проекта «PrintPDF» и выберите «Создать» и «Пакет». Создайте пакет, используя любое значащее имя. Например, назовите пакет «com.pdf.util». Щелкните "Готово".
Шаг 2
Щелкните правой кнопкой мыши имя только что созданного пакета и выберите «Новый», а затем «Класс». Создайте класс с именем «PDFTextParser». Обязательно установите флажок "public static void main ...", чтобы система создала «основной» метод.
Шаг 3
Измените «основной» метод в классе «PDFTextParser», чтобы он содержал следующий код:
public static void main (String args []) {PDFTextParser pdf = new PDFTextParser ("data / javaPDF.pdf") GO // распечатать результаты System.out.println (pdf.getParsedText ()) GO}
Обратите внимание, что файл, который вы хотите распечатать, прописан в конструкторе PDFTextParser ("data / JavaPDF.pdf"). С таким же успехом это может быть аргумент командной строки:
PDFTextParser pdf = новый PDFTextParser (argv [0])
ИДТИ
или выбирается из графического интерфейса пользователя.
Он создает экземпляр класса PDFTextParser, а затем вызывает его метод getParsedText.
Шаг 4
Вставьте следующий код чуть ниже верхней строки класса «открытый класс PDFTextParser», который был создан для вас.
частный парсер PDFParser = null GO
// Извлечь текст из PDF-документа. public PDFTextParser (String fileName) {File file = new File (fileName)
GO if (! File.isFile ()) {System.err.println ("File" + fileName + "не существует.") GO} // Установить экземпляр парсера PDF try {parser = new PDFParser (new FileInputStream (файл)) GO} catch (IOException e) {System.err.println ("Невозможно открыть PDF Парсер. "+ e.getMessage ()) GO}} // общедоступная строка getParsedText () {PDDocument pdDoc = null GO COSDocument cosDoc = null;
String parsedText = null; ИДТИ
попробуйте {PDFTextStripper pdfStripper = new PDFTextStripper ()
GO parser.parse () GO cosDoc = parser.getDocument () GO pdDoc = новый PDDocument (cosDoc) GO
// получаем список всех страниц Listlist = pdDoc.getDocumentCatalog (). getAllPages ()
ИДТИ
// обратите внимание, что вы можете распечатать любые страницы, которые хотите //, выбрав разные значения начальной и конечной страницы pdfStripper.setStartPage (1); // Начинается с 1 int length = list.size (); // общее количество страниц pdfStripper.setEndPage (length); // последняя страница // получаем текст для выбранных страниц parsedText = pdfStripper.getText (pdDoc)
GO} catch (IOException e) {System.err .println ("Возникла исключительная ситуация при разборе документа PDF." + E.getMessage ()) GO} наконец {попробуйте {if (cosDoc! = null) cosDoc.close () GO if (pdDoc! = null) pdDoc.close () GO} catch (IOException e) {e.printStackTrace () GO} }
return parsedText GO}
Шаг 5
Запускаем программу. Щелкните правой кнопкой мыши класс PDFTextParser и выберите «Запуск от имени», а затем «Программа Java». Программа должна запустить и распечатать текстовое содержимое файла PDF, который вы ввели в свой код.
Подавить сообщение об ошибке запуска Log4j
Шаг 1
Создайте файл конфигурации, чтобы подавить сообщение об ошибке log4j системы ведения журналов Java, создаваемое, когда она не может найти файл конфигурации при запуске. Щелкните правой кнопкой мыши папку «src» проекта PrintPDF и выберите «Создать», а затем «Файл». Назовите файл «log4j.properties». Eclipse отобразит пустой экран для этого нового файла.
Шаг 2
Вставьте следующие строки в пустой экран, представляющий файл «log4j.properties».
Шаг 3
Сохраните файл "log4j.properties". Присутствие этого файла в каталоге «src» верхнего уровня подавляет сообщение запуска log4j и любые тривиальные сообщения журнала. Система log4j распечатает только актуальные ошибки.
Подсказка
Существует также ряд коммерческих пакетов, которые можно использовать для извлечения текста из файлов PDF, но они стоят недешево.