Knowledgebase

Genera PDF da HTML usando Java [Passo-passo]

Questo articolo ti mostrerà come generare PDF da HTML usando Java. Puoi facilmente manipolare e renderizzare documenti HTML includendo stili CSS.

Aspose.HTML per Java consente alle tue applicazioni di eseguire un’ampia gamma di operazioni di manipolazione HTML e supporta HTML5, CSS3, SVG e le funzionalità di HTML Canvas. Con la nostra API puoi caricare pagine web, analizzarle, modificarne il contenuto e salvarle o convertirle.
Formati popolari che puoi manipolare: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP e altri.

PDF da HTML in Java

Ampia gamma di funzionalità

Aspose.HTML per Java ti offre molte funzionalità in diversi ambiti:

• Document object model – consente di modificare, creare e rimuovere nodi ed è costruito secondo la documentazione ufficiale HTML.
• Convertitori ad alte prestazioni. Per ulteriori informazioni sui formati supportati visita la Elenco delle funzionalità o gli articoli sulla Conversione .
• Elaborazione di CSS, JavaScript e altri formati integrati.

Genera PDF da HTML con una singola riga di codice Java

Puoi generare facilmente PDF da HTML nella tua applicazione Java con letteralmente una sola riga di codice usando i metodi statici della classe Converter .

// Invoke the ConvertHTML method to convert the HTML to PDF.
com.aspose.html.converters.Converter.convertHTML(
        "<span>Hello World!!</span>",
        ".",
        new com.aspose.html.saving.PdfSaveOptions(),
        "output.pdf"
);

Genera PDF da HTML riga per riga usando Java

Di seguito i passaggi per generare PDF da HTML riga per riga:

  1. Utilizza la classe HtmlDocument per caricare prima il file HTML.
  2. Successivamente crea un’istanza di PdfSaveOptions .
  3. Con il metodo ConvertHTML() della classe Converter salva l’HTML come file PDF. Dovrai passare l’HTMLDocument , le PdfSaveOptions e il percorso del file di output al metodo ConvertHTML() per generare il PDF da HTML.
// Prepare an HTML code and save it to the file.
String code = "<span>Hello World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
    fileWriter.write(code);
}

// Initialize an HTML document from the file
com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("document.html");
try {
    // Initialize PdfSaveOptions
    com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();

    // Convert HTML to PDF
    com.aspose.html.converters.Converter.convertHTML(
            document,
            options,
            "output.pdf"
    );
} finally {
    if (document != null) {
        document.dispose();
    }
}

Personalizza il processo di rendering con l’opzione Save

Puoi personalizzare il processo di rendering con le PdfSaveOptions , specificando la dimensione della pagina , i permessi del file , i margini , il tipo di media CSS e molto altro. Nell’esempio mostrato di seguito puoi vedere come usare PdfSaveOptions per creare un file PDF con una dimensione di pagina personalizzata e un colore di sfondo:

// Prepare an HTML code and save it to the file
String code = "<span>Hello</span> <span>World!!</span>";
try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
    fileWriter.write(code);
}

// Set A5 as a page-size and change the background color to green
com.aspose.html.saving.PdfSaveOptions options = new com.aspose.html.saving.PdfSaveOptions();
com.aspose.html.rendering.PageSetup pageSetup = new com.aspose.html.rendering.PageSetup();
com.aspose.html.drawing.Page anyPage = new com.aspose.html.drawing.Page();
anyPage.setSize(
        new com.aspose.html.drawing.Size(
                com.aspose.html.drawing.Length.fromInches(8.3f),
                com.aspose.html.drawing.Length.fromInches(5.8f)
        )
);
pageSetup.setAnyPage(anyPage);
options.setPageSetup(pageSetup);

options.setBackgroundColor(com.aspose.html.drawing.Color.getGreen());

// Convert HTML document to PDF
com.aspose.html.converters.Converter.convertHTML(
        "document.html",
        options,
        "output.pdf"
);

Nell’articolo Ottimizzazione dei Converter puoi trovare ulteriori informazioni sulle PdfSaveOptions .

Provider di stream di output

Puoi implementare l’interfaccia MemoryStreamProvider se desideri salvare i file in un archivio remoto, come il cloud o un database.
L’interfaccia MemoryStreamProvider è progettata come oggetto di callback per creare uno stream e rilasciare lo stream creato in anticipo dopo il rendering della pagina o del documento.

Ti mostreremo un esempio di utilizzo di MemoryStreamProvider di seguito:

package com.aspose.html.examples.java;

// For complete examples and data files, please go to https://github.com/aspose-html/Aspose.HTML-for-Java
public class MemoryStreamProvider implements java.io.Closeable {
    // List of InputStream objects created during the document rendering
    public java.util.List<java.io.InputStream> lStream = new java.util.ArrayList<>();

    @Override
    public void close() throws java.io.IOException {
        for (java.io.InputStream stream : lStream) {
            stream.close();
        }
    }
}
// Create an instance of MemoryStreamProvider
try (MemoryStreamProvider streamProvider = new MemoryStreamProvider()) {
    // Initialize an HTML document
    com.aspose.html.HTMLDocument document = new com.aspose.html.HTMLDocument("<span>Hello World!!</span>", ".");
    try {
        // Convert HTML to PDF by using the MemoryStreamProvider
        com.aspose.html.converters.Converter.convertHTML(
                document,
                new com.aspose.html.saving.PdfSaveOptions(),
                streamProvider.lStream
        );

        // Get access to the memory stream that contains the result data
        java.io.InputStream inputStream = streamProvider.lStream.stream().findFirst().get();

        // Flush the result data to the output file
        try (java.io.FileOutputStream fileOutputStream = new java.io.FileOutputStream("output.pdf")) {
            byte[] buffer = new byte[inputStream.available()];
            inputStream.read(buffer);
            fileOutputStream.write(buffer);
        }
    } finally {
        if (document != null) {
            document.dispose();
        }
    }
}

Aspose fornisce supporto tecnico per tutti i suoi prodotti, da articoli della knowledge base , documentazione , blog , esempi di codice , e demo , a Supporto gratuito così come a un altamente disponibile Supporto a pagamento .
Se hai bisogno di esperti che lavorino insieme a te e ti aiutino a implementare Aspose.HTML per Java secondo le tue esigenze, la soluzione migliore è la nostra Consulenza a pagamento .