web-dev-qa-db-fra.com

Comment créer un fichier PDF à partir de HTML en utilisant PDFBox?

J'essaie de créer un PDF à partir du contenu HTML.

public byte[] generatePdf(final XhtmlPDFGenerationRequest request) {

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    PDDocument document = new PDDocument();
    InputStream stream = new ByteArrayInputStream(request.getContent()
            .getBytes());

    PDStream pdstream = new PDStream(document, stream);
    document.save(baos);
    document.close();
    return this.toByteArray(baos);

}

Quand je prends cette byte[] et enregistrer dans un fichier, le fichier est vide. J'utilise PDStream pour incorporer le flux d'entrée dans le document

Depuis http://pdfbox.Apache.org/apidocs/

public PDStream(PDDocument doc,
                InputStream str)
         throws IOException

Lit toutes les données du flux d'entrée et les incorpore dans le document, cela fermera le InputStream.

13
vsingh

Je cherchais un HTML pour PDF renderer. Nous utilisions iText. Je cherchais à faire de même avec Apache PDFBox. Mais, il semble que cela ne puisse pas être fait.

Je peux utiliser Apache FOP ou continuer à utiliser iText.

Voici la solution iText si quelqu'un est intéressé: Java Render XML Document as PDF

Si vous cherchez une solution pour la fusion en utilisant PDF, la voici Fusionner des fichiers pdf en utilisant la boîte pdf Apache

14
vsingh