Domanda

Sto tentando di aprire un file PDF esistente e quindi aggiungere un'altra pagina al documento PDF all'interno di un'applicazione Android. Nella pagina aggiunta, devo aggiungere un po 'di testo e un'immagine.

Voglio provare PDFBox. Altre soluzioni come ITEXTPDF non sono adatte alla nostra azienda a causa dei termini/prezzo delle licenze.

Ho un progetto di biblioteca con la base di codice principale e anche progetti completi e lite che fanno riferimento al progetto della biblioteca.

Ho scaricato il barattolo da http://pdfbox.apache.org/download.html e lo ha copiato nella cartella LIB dei progetti della libreria e ha aggiunto il file pdfbox-app-1.6.0.jar alle librerie di build java build.

Sono in grado di importare correttamente le biblioteche ad es. import org.apache.pdfbox.pdmodel.PDDocument; e compila tutti i progetti. Tuttavia, quando eseguo l'applicazione si blocca PDDocument document = new PDDocument(); con il seguente errore.

E/AndroidRuntime (24451): java.lang.noclassdeffounderror: org.apache.pdfbox.pdmodel.pddocument

Ho letto da qualche parte che la versione 1.5 di PDFBox in poi non ha funzionato con Android, quindi ho provato a scaricare il file pdfbox-app-1.4.0.0.jar ma ho ottenuto lo stesso problema. Ho anche aggiunto la biblioteca al percorso di build nei miei progetti completi e lite, ma ho ricevuto lo stesso errore o Eclipse continuavo a crash con un errore fuori memoria.

Qualcuno può dirmi cosa sto facendo di sbagliato? Ho scaricato il file sbagliato? L'ho importato correttamente?

Grazie,

È stato utile?

Soluzione

Pdfbox utilizza java awt e swing, anche per attività non interfaccia

Ho appena testato pdfjet http://pdfjet.com/os/edition.html È autorizzato a BSD (più versione commerciale con più funzionalità), con questo codice di esempio (strappato da Esempio_03.java) sono stato in grado di convertire un JPEG in un PDF

    FileOutputStream fos = null;
    try
    {
        fos = new FileOutputStream("/sdcard/sample.pdf");
        PDF pdf = new PDF(fos);
        InputStream f = getApplicationContext().getAssets().open("img0.jpg"); 
        Image image = new Image(pdf, f, ImageType.JPEG);
        Page page = new Page(pdf, A4.PORTRAIT);
        image.setPosition(0, 0);
        image.drawOn(page);
        pdf.flush();
        fos.close();
    } catch (Exception e)
    {
        e.printStackTrace();
    }

Ho trovato il link qui http://java-sorce.net/open-source/pdf-libraries

Altri suggerimenti

Porta Android di PDFBox

C'è una porta Android gratuita di PDFBox disponibile qui:

https://github.com/tomroush/pdfbox-android

Penso che i file della classe della libreria non siano inclusi nel file APK. Le classi di libreria devono essere convertite in file DEX, quindi verrà rilevato. Si prega di fare riferimento http://developer.android.com/guide/developing/building/index.html

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top