Pdfbox

di il
2 risposte

Pdfbox

Buonasera,
premetto che non sono un esperto di java, nel programma che sto' scrivendo, ho necessita' di esportare i dati in formato pdf.
Vorrei utilizzare PdfBox, ho scaricato le librerie ed inserite nel 'buil path', sono:
fontbox, pdfbox, preflight, xmpbox della versione 3.0.0.
la compilazione avviene regolarmente, ma quando premo il pulsante che attiva la seguente azione

private class genPdf implements ActionListener
{ public void actionPerformed (ActionEvent e)
{ try
{ PDDocument document = new PDDocument(); //riga 2064
PDPage page = new PDPage();
document.addPage( page );

ricevo il seguente errore:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/pdfbox/pdmodel/PDDocument at nwDona$genPdf.actionPerformed(Avisjava.java:2064)
relativo alla riga 2064.
Se in eclipse, dopo la riga 2064 scrivo document. mi compare l'elenco delle procedure, ne deduco che la libreria e' visibile.
Non riesco ad uscirne fuori, vi ringrazio per i vostri suggerimenti.

2 Risposte

  • Re: Pdfbox

    elseif ha scritto:


    Vorrei utilizzare PdfBox, ho scaricato le librerie ed inserite nel 'buil path', sono:
    fontbox, pdfbox, preflight, xmpbox della versione 3.0.0.
    La versione 3.0.0 al momento attuale è solo una "alpha" non è ancora una release ufficiale. Quindi forse sarebbe meglio usare la 2.x.

    elseif ha scritto:


    Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/pdfbox/pdmodel/PDDocument at nwDona$genPdf.actionPerformed(Avisjava.java:2064)
    relativo alla riga 2064.
    La PDFBox, per ragioni "storiche", ha la dipendenza verso la Apache Commons Logging 1.2 (è molto vecchia e un po' obsoleta). Se non metti questa, la classe PDDocument (come altre della PDFBox) comunque NON può essere inizializzata correttamente.

    La Commons Logging è solo una libreria di facade ("facciata") per il logging. Servirebbe quindi avere anche una libreria di logging come la log4j. Se non metti un backend di logging, per default logga a livello super-basilare sullo standard-error (che potrebbe essere anche accettabile).

    Nota: La PDFBox 3.0.0 ha anche la dipendenza verso un altro suo modulo che non hai citato, il org.apache.pdfbox:io (la 2.x no, non ha questo io)

    Insomma, per progetti come questi, con queste librerie, sarebbe preferibile usare Maven oppure Gradle ... invece di mettere "a mano" i jar.
  • Re: Pdfbox

    Si, avevo gia' provato ad installare pdfbox nella versione 2.0.26 e Commons Logging ma andava sempre in errore. Ho trovato in internet il modo per convertire il progetto in un progetto maven, e adesso funziona, la procedura ha creato il file pdf come richiesto. Andbin, non posso far altro che dirti grazie per il suggerimento, da solo non credo ci sarei mai arrivato.
Devi accedere o registrarti per scrivere nel forum
2 risposte