Как да четете PDF файл в Java

Жена, работеща в офис

Кредит на изображението: Pixland/Pixland/Getty Images

Не е трудно да четете PDF файлове в Java с помощта на библиотеки, които са лесно достъпни. Четенето на PDF файлове ви позволява да пишете Java програми, които могат да обработват текста в тези файлове. Една от опциите за четене на PDF файлове е безплатната библиотека PDFBox с отворен код, достъпна от Apache. Платформата за разработка на Java Eclipse улеснява тази работа и управлява библиотеките, които ще изтегляте. Трябва да сте запознати с програмирането на 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" и кликнете върху "Finish".

Стъпка 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." Кликнете върху „OK“.

Напишете кода за четене на 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 = нов PDFParser (нов 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

//получаване на списък с всички страници List< PDPage> list = pdDoc.getDocumentCatalog().getAllPages()

ОТИВАМ

//забележете, че можете да разпечатате всякакви страници, които искате //като изберете различни стойности на началната и крайната страница pdfStripper.setStartPage (1); //базирана на 1 int дължина = list.size(); //общ брой страници pdfStripper.setEndPage (дължина); //последна страница //получаване на текста за избраните страници parsedText = pdfStripper.getText (pdDoc)

GO } catch (IOException e) { System.err .println("Възникна изключение при анализирането на PDF документа." + e.getMessage()) GO } накрая { try { 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 файлове, но те не са евтини.