>> Tecnologia elettronica >  >> Casa intelligente >> Vita smart

Come Leggere File PDF in Java

Non è difficile leggere file PDF in Java usando librerie facilmente disponibili. La lettura di file PDF permette di scrivere programmi Java che possono processare il testo in quei file. Un'opzione per leggere file PDF è la libreria PDFBox gratuita e open-source disponibile da Apache. La piattaforma di sviluppo Java Eclipse rende questo lavoro più facile e gestisce le librerie che scaricherai. Devi avere familiarità con la programmazione Java per utilizzare queste librerie Java.

Raccogliere le Librerie Necessarie

Passaggio 1

Scarica Java JDK dal sito di Sun. Questo è un file eseguibile che puoi installare sul tuo sistema eseguendolo. Versioni sono disponibili per Windows, Mac e Linux. Fai clic sul pulsante rosso "Download". Salva un file chiamato "jdk-6uxx-windows-xxx.exe" quando richiesto. Salva questo file e poi fai doppio clic su di esso per avviare l'installatore Java.

Passaggio 2

Scarica il sistema di sviluppo Eclipse e decomprimilo in una directory di primo livello. Seleziona "Eclipse IDE for Java Developers". Questo avvierà il download di "eclipse-java-galileo-SR2-win32.zip". Fai doppio clic sul file per decomprimerlo dopo il completamento del download. Seleziona la directory radice "C:" per decomprimere Eclipse.

Passaggio 3

Avvia Eclipse facendo doppio clic su "eclipse.exe" nella directory che hai appena creato decomprimendo il file zip di eclipse. Nel sistema Eclipse, crea un progetto chiamato "PrintPdf". Seleziona "File" poi "Nuovo" poi "Progetto Java". Digita il nome del progetto "PrintPdf" nella finestra di dialogo che appare. Assicurati che il pulsante radio sia selezionato che dice "Crea cartelle separate per file sorgente e classi". Fai clic su "Fine".

Passaggio 4

Crea una cartella "lib" nel tuo progetto "PrintPdf". Fai clic destro sul progetto "PrintPdf" e seleziona "Nuovo" e poi "Cartella". Inserisci il nome "lib" e fai clic su "Fine".

Passaggio 5

Scarica "PDFBox.jar" di Apache dal sito Apache e copialo nella directory lib che hai appena creato. Nella stessa pagina web, scarica il file "fontbox-nn.jar" e il file "jempbox-nn.jar". In ogni caso, quando fai clic su quel file jar, ti porterà a una pagina dove puoi selezionare uno dei diversi server che possono fornire questo file. Scegli ciascuno di essi e ogni file jar verrà scaricato. Copia ogni file jar nella directory lib che hai appena creato.

Passaggio 6

Scarica il pacchetto Apache log4j.jar nello stesso modo e copia il file log4j.jar nella directory. La libreria Apache PDFBox usa questa libreria di logging Apache, quindi questo file deve essere presente.

Passaggio 7

Scarica il pacchetto Apache Commons Discovery come file zip. Fai doppio clic sul file zip, seleziona "commons-discovery-nn.jar" ed estrailo nella directory lib.

Passaggio 8

In Eclipse, fai clic sulla directory "lib" e premi "F5". Assicurati che tutti i file jar che hai aggiunto siano visualizzati.

Passaggio 9

Fai clic destro sul progetto PrintPDF e seleziona "Proprietà". Seleziona "Java Build Path" e seleziona la scheda "Librerie". Fai clic su "Aggiungi jar" e vai alla directory lib che hai appena creato, e aggiungi "commons-logging-nn.jar" "fontbox-nn.jar," "jempbox-nn.jar," "log4j-nn.jar," e "pdfbox-nn.jar." Fai clic su "OK".

Scrivere il Codice per Leggere PDF

Passaggio 1

Fai clic destro sulla cartella "src" del tuo progetto "PrintPDF" e seleziona "Nuovo" e "Pacchetto". Crea un pacchetto usando un nome significativo. Ad esempio, nomina il pacchetto "com.pdf.util." Fai clic su "Fine".

Passaggio 2

Fai clic destro sul nome del pacchetto che hai appena creato e seleziona "Nuovo" e poi "Classe". Crea una classe chiamata "PDFTextParser". Assicurati di selezionare la casella "public static void main..." in modo che il sistema crei un metodo "main".

Passaggio 3

Modifica il metodo "main" nella classe "PDFTextParser" per contenere il seguente codice:

public static void main(String args[]){ 
    PDFTextParser pdf = new PDFTextParser("data/javaPDF.pdf"); 
    //print out results 
    System.out.println(pdf.getParsedText()); 
}

Nota che il file che vuoi stampare è specificato nel costruttore di PDFTextParser ("data/JavaPDF.pdf"). Potrebbe anche essere un argomento da riga di comando:

PDFTextParser pdf = new PDFTextParser(argv[0])

o selezionato da un'interfaccia GUI.

Crea un'istanza della classe PDFTextParser, e poi chiama il suo metodo "getParsedText".

Passaggio 4

Inserisci il seguente codice appena sotto la riga superiore della classe "public class PDFTextParser" che è stata creata per te.

private PDFParser parser = null;

// Extract text from PDF Document
public PDFTextParser(String fileName) { 
    File file = new File(fileName);
    if (!file.isFile()) { 
        System.err.println("File " + fileName + " does not exist."); 
    } 
    //Set up instance of PDF parser
    try { 
        parser = new PDFParser(new FileInputStream(file)); 
    } catch (IOException e) { 
        System.err.println("Unable to open PDF Parser. " + e.getMessage()); 
    } 
} 

//-------------------------------
public String getParsedText() { 
    PDDocument pdDoc = null; 
    COSDocument cosDoc = null;
    String parsedText = null;

    try { 
        PDFTextStripper pdfStripper = new PDFTextStripper();
        parser.parse(); 
        cosDoc = parser.getDocument(); 
        pdDoc = new PDDocument(cosDoc); 

        //get list of all pages
        List<PDPage> list = pdDoc.getDocumentCatalog().getAllPages();

        //note that you can print out any pages you want
        //by choosing different values of the start and end page
        pdfStripper.setStartPage(1); //1-based
        int length = list.size(); //total number of pages
        pdfStripper.setEndPage(length); //last page
        //get the text for the pages selected
        parsedText = pdfStripper.getText(pdDoc);
    } catch (IOException e) { 
        System.err.println("An exception occured in parsing the PDF Document." + e.getMessage()); 
    } finally { 
        try { 
            if (cosDoc != null) cosDoc.close(); 
            if (pdDoc != null) pdDoc.close(); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
    return parsedText; 
}

Passaggio 5

Esegui il programma. Fai clic destro sulla classe PDFTextParser e fai clic su "Esegui come" e poi su "Applicazione Java". Il programma dovrebbe eseguire e stampare il contenuto di testo del file PDF che hai inserito nel codice.

Sopprimere Messaggio Errore Avvio Log4j

Passaggio 1

Crea un file di configurazione per sopprimere il messaggio di errore di avvio del sistema di logging Java log4j creato quando non trova un file di configurazione all'avvio. Fai clic destro sulla cartella "src" del progetto PrintPDF e seleziona "Nuovo" e poi "File". Nomina il file "log4j.properties". Eclipse mostrerà uno schermo vuoto per questo nuovo file.

Passaggio 2

Incolla le seguenti righe nello schermo vuoto che rappresenta il file "log4j.properties".

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=WARN, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

Passaggio 3

Salva il file "log4j.properties". La presenza di questo file nella directory "src" di primo livello sopprimerà il messaggio di avvio log4j e qualsiasi messaggio di logging banale. Il sistema log4j stamperà solo errori reali.

Suggerimento

Esistono anche una serie di pacchetti commerciali che puoi usare per estrarre testo da file PDF, ma non sono economici.

  1. Come leggere un file PDF su cellulare
  2. Come leggere/visualizzare file (allegati) AT&T sul cellulare
  3. Come leggere un file PDF su un telefono cellulare
  4. Come leggere file PDF su iPod
  5. Come installare un file JAR
  6. Come leggere file crittografati