Kunskapsbas

Generera PDF från HTML med Java [Steg-för-steg]

Denna artikel visar hur du genererar PDF-filer från HTML med Java. Du kan enkelt manipulera och rendera HTML-dokument inklusive CSS-stilar.

Aspose.HTML för Java möjliggör för dina applikationer att utföra ett brett spektrum av HTML-manipuleringsuppgifter och stödjer HTML5, CSS3, SVG och HTML Canvas-funktioner. Med vårt API kan du ladda webbsidor, analysera, redigera innehållet samt spara och konvertera sidor.
Populära format som du kan manipulera: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP och andra.

PDF från HTML i Java

Rik uppsättning funktioner

Aspose.HTML för Java erbjuder dig många funktioner inom flera olika områden:

• Dokumentobjektmodell – gör det möjligt att redigera, skapa och ta bort noder och är byggd enligt den officiella HTML-dokumentationen.
• Högpresterande konverterare. För mer information om stödda filformat, besök artiklarna Funktionslista eller Konvertering .
• Bearbetning av CSS, JavaScript och andra inbyggda format.

Generera PDF från HTML med en enda rad Java-kod

Du kan enkelt generera PDF från HTML i din Java-applikation med bokstavligen en enda kodrad genom att använda de statiska metoderna i klassen 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"
);

Generera PDF från HTML rad för rad med Java

Nedan följer stegen för att generera PDF från HTML rad för rad:

  1. Använd klassen HtmlDocument för att först ladda HTML-filen.
  2. Skapa därefter en instans av PdfSaveOptions .
  3. Med metoden ConvertHTML() i klassen Converter sparar du HTML som en PDF-fil. Du måste skicka HTMLDocument , PdfSaveOptions och sökvägen för utdatafilen till ConvertHTML()-metoden för att generera PDF från 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();
    }
}

Anpassa renderingsprocessen med sparalternativet

Du kan anpassa renderingsprocessen med PdfSaveOptions , och ange sidstorlek , filbehörigheter , marginaler , CSS-medietyp och mycket mer. I exemplet nedan kan du se hur du använder PdfSaveOptions för att skapa en PDF-fil med anpassad sidstorlek och bakgrundsfärg:

// 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"
);

I artikeln Finjustering av konverterare kan du hitta mer information om PdfSaveOptions .

Utdata‑strömleverantör

Du kan implementera gränssnittet MemoryStreamProvider om du vill spara filer i fjärrlagring, såsom molnet eller en databas.
MemoryStreamProvider‑gränssnittet är utformat som ett återuppringningsobjekt för att skapa en ström och frigöra den tidigt skapade strömmen efter att sidan eller dokumentet har renderats.

Vi visar dig ett exempel på hur du använder MemoryStreamProvider nedan:

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 erbjuder teknisk support för alla sina produkter, från kunskapsbasartiklar , dokumentation , blogg , kodexempel , och demoar , till gratis support samt mycket tillgänglig betald support .
Om du behöver experter som samarbetar med dig och hjälper dig att implementera Aspose.HTML för Java enligt dina behov, är den bästa lösningen vår betalda konsultation .