Knowledgebase

Membuat PDF dari HTML menggunakan Java [Langkah demi Langkah]

Artikel ini akan menunjukkan cara menghasilkan PDF dari HTML menggunakan Java. Anda dapat dengan mudah memanipulasi dan merender dokumen HTML termasuk gaya CSS.

Aspose.HTML for Java memungkinkan aplikasi Anda melakukan berbagai tugas manipulasi HTML dan mendukung HTML5, CSS3, SVG, serta fitur HTML Canvas. Dengan API kami Anda dapat memuat halaman web, menganalisis, mengedit konten, serta menyimpan dan mengonversi halaman.
Format populer yang dapat Anda manipulasi: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP, dan lainnya.

PDF dari HTML di Java

Serangkaian fitur lengkap

Aspose.HTML for Java menawarkan banyak fitur di berbagai bidang:

• Model objek dokumen – memungkinkan Anda mengedit, membuat, dan menghapus node, serta dibangun sesuai dokumentasi resmi HTML.
• Konverter berperforma tinggi. Untuk informasi lebih lanjut tentang format file yang didukung, kunjungi Daftar Fitur atau artikel Mengonversi .
• Pemrosesan CSS, JavaScript, dan format bawaan lainnya.

Menghasilkan PDF dari HTML dengan satu baris kode Java

Anda dapat dengan mudah menghasilkan PDF dari HTML dalam aplikasi Java Anda hanya dengan satu baris kode menggunakan metode statis kelas 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"
);

Menghasilkan PDF dari HTML baris demi baris menggunakan Java

Berikut langkah‑langkah untuk menghasilkan PDF dari HTML baris demi baris:

  1. Menggunakan kelas HtmlDocument terlebih dahulu muat file HTML.
  2. Selanjutnya buat instance dari PdfSaveOptions .
  3. Dengan metode ConvertHTML() milik kelas Converter , simpan HTML sebagai file PDF. Anda harus memberikan HTMLDocument , PdfSaveOptions , dan jalur file output ke metode ConvertHTML() untuk menghasilkan PDF dari 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();
    }
}

Menyesuaikan proses rendering dengan opsi Save

Anda dapat menyesuaikan proses rendering dengan PdfSaveOptions , serta menentukan ukuran halaman , izin file , margin , tipe media CSS , dan banyak lagi. Pada contoh di bawah ini Anda dapat melihat cara menggunakan PdfSaveOptions untuk membuat file PDF dengan ukuran halaman khusus dan warna latar belakang:

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

Di artikel Fine-Tuning Converters , Anda dapat menemukan informasi lebih lanjut tentang PdfSaveOptions .

Penyedia aliran output

Anda dapat mengimplementasikan antarmuka MemoryStreamProvider jika ingin menyimpan file di penyimpanan remote, seperti cloud atau basis data.
Antarmuka MemoryStreamProvider dirancang sebagai objek callback untuk membuat aliran dan melepaskan aliran yang dibuat lebih awal setelah proses rendering halaman atau dokumen selesai.

Berikut contoh penggunaan MemoryStreamProvider:

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 menyediakan dukungan teknis untuk semua produknya, mulai dari artikel basis pengetahuan , dokumentasi , blog , contoh kode , dan demo , hingga Dukungan Gratis serta Dukungan Berbayar yang sangat responsif.
Jika Anda memerlukan pakar yang dapat bekerja sama dengan Anda dan membantu mengimplementasikan Aspose.HTML for Java sesuai kebutuhan, solusi terbaik adalah Konsultasi Berbayar .