Non è difficile leggere i file PDF in Java utilizzando le librerie che sono prontamente disponibili . La lettura dei file PDF consente di scrivere programmi Java in grado di elaborare il testo di tali file . Una delle possibilità per la lettura di file PDF è il libero, biblioteca PDFBox open-source disponibile da Apache . La piattaforma di sviluppo Eclipse Java rende questo lavoro più facile e gestisce le librerie verrà scaricando. È necessario avere familiarità con la programmazione Java di fare uso di queste librerie Java .
Istruzioni Raccogliere librerie necessarie
1
scaricare Java JDK dal sito web del sole. Questo è un file eseguibile che può essere installato sul vostro sistema eseguendolo . Sono disponibili versioni per Windows , Mac e Linux . Clicca su " Download \\ " pulsante rosso \\ . Salvare un file chiamato \\ " jdk - 6uxx - windows- xxx.exe \\ " quando richiesto . Salvare il file e quindi fare doppio clic su di esso per avviare il programma di installazione di Java .
2
Scarica il sistema di sviluppo Eclipse e decomprimerlo in una directory di livello superiore . Selezionare \\ "Eclipse IDE per gli sviluppatori Java . \\ " Questo avvierà il download di \\ " eclipse- java - galileo - SR2 - win32.zip . \\ " Fare doppio clic sul file per decomprimerlo dopo il download completare . Selezionare la \\ "C : \\ " . Radice directory per decomprimere Eclipse
3
Inizio Eclipse facendo doppio clic su \\ " eclipse.exe \\ " nella directory di appena creato da decomprimere il file zip eclissi . Nel sistema Eclipse , creare un progetto denominato \\ " PrintPDF . \\ " Seleziona \\ " File \\ " e poi \\ " Nuovo \\ " poi \\ " \\ progetto Java . " Digitare il nome del progetto \\ " , PrintPDF \\ " nella finestra di dialogo che appare. Assicurarsi che il pulsante di opzione è selezionato che dice \\ " creare cartelle separate per i file di origine e di classe . \\ " Click \\ "Fine \\".
4
Creare un \\ " lib \\ " cartella del \\ " progetto PrintPDF \\ " . Fai clic destro sul \\ " PrintPDF \\ " del progetto e selezionare \\ "Nuovo \\ " e poi \\ "Cartella . \\ " Inserire il nome \\ " lib \\ " e clicca su \\ "Fine . \\ "
5
Scarica Apache \\ " PDFBox.jar \\ " dal sito di Apache e copiarlo nella directory lib appena creata . Nella stessa pagina web , scaricare il " \\ fontbox - nn.jar " file \\ e il file \\ " jempbox - nn.jar \\ " . In ogni caso , quando si fa clic su quel file jar , che vi porterà ad una pagina dove è possibile selezionare uno dei diversi server che possono fornire questo file. Scegliere ognuno di loro e ogni file jar scaricherà . Copiare tutti i file jar nella directory lib appena creata .
6
Scarica il pacchetto Apache log4j.jar nello stesso modo e copiare il file log4j.jar nella directory . La libreria di Apache PDFBox utilizza questa libreria logging di Apache , quindi questo file deve essere presente .
7
Scarica il pacchetto Discovery Apache Commons come file zip . Fare doppio clic sul file zip , selezionare la \\ " commons- scoperta - nn.jar \\ " ed estrarlo nella directory lib .
8
In Eclipse , fare clic sul \\ " lib \\ "directory e premere \\ " F5 . \\ " assicurarsi che tutti i file jar aggiunti vengono visualizzati .
9
pulsante destro del mouse sul progetto PrintPDF e selezionare \\ " Proprietà . \\ "Seleziona \\ " Build Path Java \\ "e selezionare la \\ " Libraries \\ " tab . Clicca su \\ " Aggiungi vasetti \\ " e passare alla directory lib appena creata , e aggiungere \\ " commons-logging - nn.jar \\ " \\ " fontbox - nn.jar , \\ " \\ " , . jempbox - nn.jar , \\ "\\" log4j - nn.jar , \\ "e \\" PDFBox - nn.jar \\ " Clicca su \\ " OK \\ "
< br . >
Scrivi il codice per leggere i PDF
10
pulsante destro del mouse sulla cartella \\ "src \\ " del \\ " PrintPDF \\ " del progetto e selezionare \\ "Nuovo \\ "e il \\ " pacchetto \\ ". Creare un pacchetto utilizzando qualsiasi nome significativo . Ad esempio , il nome del pacchetto \\ " com.pdf.util . \\ " Click \\ "Fine \\".
11
pulsante destro del mouse sul nome del pacchetto che avete appena creato e selezionare \\ "Nuovo \\ " e \\ " Class . \\ " Crea una classe denominata \\ " PDFTextParser . \\ " Assicuratevi di fare clic sulla casella di controllo contrassegnata \\ " public static void main ... \\ " in modo che il sistema creerà un \\ " \\ principale " metodo .
12
Modificare il " \\ principale " metodo \\ nella " PDFTextParser \\ " \\ classe per contenere il seguente codice :
public static void main ( args String [ ] ) {
PDFTextParser pdf = new PDFTextParser ( \\ " dati /javaPDF.pdf \\ " ) < risultati br /> GO
//stampa
System.out.println ( pdf.getParsedText ( ) )
GO
}
,
si noti che il file che si desidera stampare è scritto nel costruttore di PDFTextParser ( \\ " dati /JavaPDF.pdf \\ " ) . Si potrebbe facilmente essere un argomento della riga di comando :
PDFTextParser pdf = new PDFTextParser ( argv [ 0 ] )
GO
< br /> o selezionato da una interfaccia GUI .
Si crea un'istanza della classe PDFTextParser , e quindi chiama il suo \\ " getParsedText \\ " metodo .
13
inserire il seguente codice appena sotto la linea di classe superiore \\ " PDFTextParser public class \\ " che è stato creato per voi .
privato PDFParser parser = null
GO
testo //estratto dal Documento PDF
PDFTextParser pubblico ( String fileName ) {
File file = new File ( nomeFile )
; ( ! file.isFile ( ) ) GO
se { System.out.println ( \\ " File \\ " + fileName + \\ . " non esiste \\ " )
GO
}
//Imposta istanza PDF parser
try {
parser = new PDFParser (new FileInputStream (file ) )
GO
} catch ( IOException e) {
System.out.println ( \\ "Impossibile aprire parser PDF . \\ " + e.getMessage ( ) )
GO
} }
//--------------------- ----------
public String getParsedText ( ) {
PDDocument PDDoc = null
GO
COSDocument cosDoc = null; < br /> String parsedText = null;
GO
try {
PDFTextStripper pdfStripper = new PDFTextStripper ( )
GO < br /> Parser.parse ( )
GO cosDoc = parser.getDocument ( )
GO PDDoc = new PDDocument ( cosDoc ) < br /> GO
//ottenere l'elenco di tutte le pagine
lista list = pdDoc.getDocumentCatalog ( ) . getAllPages ( )
GO < br />
//notare che è possibile stampare le pagine che si desidera
//scegliendo diversi valori di inizio e fine pagina
pdfStripper.setStartPage ( 1 ) ,
int lunghezza = list.size ( ) ; //Numero totale di pagine
pdfStripper.setEndPage ( lunghezza ) ; //ultima pagina
< br /> //ottiene il testo per le pagine selezionate
parsedText = pdfStripper.getText ( PDDoc )
GO
} catch ( IOException e) {
System.err
. println ( \\ "un'eccezione verificato nel parsing del documento PDF . \\ "
+ e.getMessage ( ) )
GO
; } finally { try {
if ( ! cosDoc = null)
cosDoc.close ( )
se GO ( PDDoc ! = null)
pdDoc.close ( )
GO
} catch ( IOException e) {
e.printStackTrace ( ) < br /> GO
} }
ritorno parsedText
GO
}
14 eseguire il programma. Fai clic destro sulla classe PDFTextParser e cliccare su \\ " Esegui come \\ " e poi su \\ " programma Java . \\ " Il programma dovrebbe funzionare e stampare il contenuto di testo del file PDF che hai inserito nel codice.
reprimere log4j Startup error Message
15
Creare un file di configurazione per sopprimere la registrazione dei messaggi di errore di sistema Java log4j creato quando non è possibile trovare un file di configurazione all'avvio . Fai clic destro sulla cartella \\ "src \\ " del progetto PrintPDF e selezionare \\ "Nuovo \\ " e poi \\ "File \\". Nome del file \\ " log4j.properties \\ " Eclipse visualizzerà una schermata vuota per questo nuovo file .
16
incollare le seguenti righe nella schermata vuota che rappresenta il " log4j.properties \\ " \\ file .
; # Imposta livello logger principale per eseguire il debug e il suo unico appender ad A1
log4j.rootLogger = WARN , A1
# A1 è impostato per essere un ConsoleAppender < . . br /> log4j.appender.A1 = org.apache.log4j.ConsoleAppender
# A1 utilizza PatternLayout .
log4j.appender.A1.layout = org.apache . log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern = % - 4r [ % t ] % - 5p % c % x - % % m n
17
Save the \\ " log4j.properties \\ " file . La presenza di questo file nel livello superiore \\ "src \\ " directory sopprimere il messaggio di avvio log4j e gli eventuali messaggi di registrazione banali . Il sistema di log4j stamperà solo gli errori attuali.