Як читати PDF-файл на Java

Жінка працює в офісі

Авторство зображення: 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» та виберіть вкладку «Бібліотеки». Натисніть «Додати банки» і перейдіть до каталогу 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...», щоб система створила a «основний» метод.

Крок 3

Відредагуйте метод "main" у класі "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])

ЙДИ

або вибрано з інтерфейсу GUI.

Він створює екземпляр класу PDFTextParser, а потім викликає його метод «getParsedText».

Крок 4

Вставте наступний код трохи нижче верхнього рядка класу "public class PDFTextParser", який був створений для вас.

приватний парсер PDFParser = null GO

// Витяг тексту з PDF-документа. публічний PDFTextParser (String fileName) { File file = new File (fileName)

GO if (!file.isFile()) { System.err.println("File " + fileName + " не існує.") GO } //Налаштуйте екземпляр аналізатора PDF, спробуйте { parser = new PDFParser (новий FileInputStream (файл)) GO } catch (IOException e) { System.err.println("Не вдається відкрити PDF Парсер. " + e.getMessage()) GO } } // public String getParsedText() { PDDocument pdDoc = null GO COSDocument cosDoc = null;
Рядок parsedText = null; ЙДИ

спробуйте { PDFTextStripper pdfStripper = new PDFTextStripper()

GO parser.parse() GO cosDoc = parser.getDocument() GO pdDoc = новий PDDocument (cosDoc) GO

//отримати список усіх сторінок List< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

ЙДИ

//зауважте, що ви можете роздрукувати будь-які сторінки, //вибравши різні значення початкової та кінцевої сторінки pdfStripper.setStartPage (1); // довжина int на основі 1 = list.size(); //загальна кількість сторінок pdfStripper.setEndPage (довжина); // остання сторінка //отримати текст для вибраних сторінок 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 } }
повернути 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-файлів, але вони недешеві.