Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Lettura pdf tramite pdfbox

    Salve a tutti, sto cercando di leggere un file pdf usando la libreria di pdfbox, ho aggiunto al mio progetto il file jar: pdfbox-1.6.0.jar
    Il codice del mio progetto è il seguente:

    codice:
    public void readerPdf(Book[] b, int selectedRow) {
    		File PDF_Path = new File(b[table.getSelectedRow()].Percorso);
    		PDDocument inputPDF = null;
    		try {
    			inputPDF = PDDocument.load(PDF_Path);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		List<PDPage> allPages = inputPDF.getDocumentCatalog().getAllPages();
    		
    		PDPage testPage = (PDPage)allPages.get(0);
    		JFrame testFrame = new JFrame();
    		testFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		PDFPagePanel pdfPanel;
    		try {
    			pdfPanel = new PDFPagePanel();
    			pdfPanel.setPage(testPage);
    			testFrame.add(pdfPanel);
    			testFrame.setBounds(40, 40, pdfPanel.getWidth(), pdfPanel.getHeight());
    			testFrame.setVisible(true);
    			inputPDF.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		
    	}
    b[table.getSelectedRow()].Percorso = percorso del pdf da aprire
    Non ho errori in compilazione, ma in esecuzione mi da questo tipo di errore:

    "Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.pdfbox.pdfparser.BaseParser.<clinit>(Ba seParser.java:58)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocume nt.java:1068)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocume nt.java:1036)
    at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocume nt.java:1007)
    at BookReader.readerPdf(BookReader.java:102)
    at lettura_Panel$1.mouseClicked(lettura_Panel.java:57 )"


    Aiutooooo

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da marco1462 Visualizza il messaggio
    Salve a tutti, sto cercando di leggere un file pdf usando la libreria di pdfbox, ho aggiunto al mio progetto il file jar: pdfbox-1.6.0.jar

    "Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    Devi anche considerare le questioni sul logging, dal momento che PDFBox richiede la commons-logging.
    Vedi Apache PDFBox | Dependencies
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Eh esatto..non ho capito bene il discorso della commons-loggins, riusciresti a spiegarmela in breve?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da marco1462 Visualizza il messaggio
    Eh esatto..non ho capito bene il discorso della commons-loggins, riusciresti a spiegarmela in breve?
    Devi aggiungere sicuramente anche il jar (è uno solo) della Apache Commons Logging. Questa però non è una libreria di logging in sé ... è solo un "wrapper" leggero verso altre librerie di logging, tra cui Log4j e altre.
    La Commons Logging ha una sua logica per cercare e scegliere la libreria di logging da usare. Se non metti altro in classpath e non configuri quindi nulla, direi che sicuramente trova come minimo la API java.util.logging che è presente di serie nel framework da Java 1.4. E questa se dico (e ricordo) bene, se non è configurata, come default fa nient'altro che scrivere su console.
    Quindi "qualcosa" dovresti vedere sulla console, come minimo.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Devi aggiungere sicuramente anche il jar (è uno solo) della Apache Commons Logging. Questa però non è una libreria di logging in sé ... è solo un "wrapper" leggero verso altre librerie di logging, tra cui Log4j e altre.
    La Commons Logging ha una sua logica per cercare e scegliere la libreria di logging da usare. Se non metti altro in classpath e non configuri quindi nulla, direi che sicuramente trova come minimo la API java.util.logging che è presente di serie nel framework da Java 1.4. E questa se dico (e ricordo) bene, se non è configurata, come default fa nient'altro che scrivere su console.
    Quindi "qualcosa" dovresti vedere sulla console, come minimo.
    Io ho gia aggiungo il file jar del pdfbox, quindi devo aggiungere in modo analogo il file.jar della Log4j?

    scusami ma non sò proprio dove sbattere il naso...

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da marco1462 Visualizza il messaggio
    Io ho gia aggiungo il file jar del pdfbox, quindi devo aggiungere in modo analogo il file.jar della Log4j?
    Quello della Commons Logging, sicuramente. (Download Apache Commons Logging, prendi il pacchetto Binaries, ci trovi il jar dentro).

    Poi se vuoi usare anche Log4j, ok è possibile, ma allora va configurato.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Quello della Commons Logging, sicuramente. (Download Apache Commons Logging, prendi il pacchetto Binaries, ci trovi il jar dentro).
    Ho usato quello della Commons Logging, in esecuzione mi apre un frame ma non visualizzo nulla, mi segnala questi errori:

    "gen 21, 2015 12:37:46 PM org.apache.pdfbox.filter.FlateFilter decode
    GRAVE: Stop reading corrupt stream
    gen 21, 2015 12:37:46 PM org.apache.pdfbox.filter.FlateFilter decode
    GRAVE: Stop reading corrupt stream
    gen 21, 2015 12:37:46 PM org.apache.pdfbox.filter.FlateFilter decode
    GRAVE: Stop reading corrupt stream
    gen 21, 2015 12:37:46 PM org.apache.pdfbox.filter.FlateFilter decode
    GRAVE: Stop reading corrupt stream
    gen 21, 2015 12:37:46 PM org.apache.pdfbox.filter.FlateFilter decode
    GRAVE: Stop reading corrupt stream
    gen 21, 2015 12:37:46 PM org.apache.pdfbox.filter.FlateFilter decode
    GRAVE: Stop reading corrupt stream
    gen 21, 2015 12:37:46 PM org.apache.pdfbox.filter.FlateFilter decode
    GRAVE: Stop reading corrupt stream
    gen 21, 2015 12:37:46 PM org.apache.pdfbox.filter.FlateFilter decode
    GRAVE: Stop reading corrupt stream
    gen 21, 2015 12:37:46 PM org.apache.pdfbox.filter.FlateFilter decode
    GRAVE: Stop reading corrupt stream"
    Ultima modifica di marco1462; 21-01-2015 a 13:38

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da marco1462 Visualizza il messaggio
    "gen 21, 2015 12:37:46 PM org.apache.pdfbox.filter.FlateFilter decode
    GRAVE: Stop reading corrupt stream
    Che PDF hai fatto caricare? Nel senso: l'hai generato tu con es. PDFCreator? O è un libro/manuale reperito in rete? O è stato fatto con un altro tool?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Che PDF hai fatto caricare? Nel senso: l'hai generato tu con es. PDFCreator? O è un libro/manuale reperito in rete? O è stato fatto con un altro tool?
    Libro reperito in rete

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da marco1462 Visualizza il messaggio
    Libro reperito in rete
    Scarica pdfbox-app-x.y.z.jar dal sito di PDFBox, poi prova a lanciare il tool PDFDebugger (vedi comando su https://pdfbox.apache.org/1.8/comman...ml#pdfDebugger).
    Questo è un piccolo tool grafico di PDFBox fatto in Swing che mostra la struttura interna di un PDF. In generale ti potrebbe essere anche utile per comprendere meglio la struttura dei PDF.
    Se neanche con quello funziona, è proprio il PDF che non va. O è "corrotto" oppure contiene formati/dati che PDFBox non è in grado di gestire (PDF è una roba talmente complessa che non mi stupirei più di tanto .....)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.