Pangkalan Pengetahuan

Jana PDF dari HTML menggunakan Java [Langkah demi Langkah]

Artikel ini akan menunjukkan cara menjana PDF daripada HTML menggunakan Java. Anda boleh dengan mudah memanipulasi dan memaparkan dokumen HTML termasuk gaya CSS.

Aspose.HTML untuk Java membolehkan aplikasi anda melaksanakan pelbagai tugas manipulasi HTML serta menyokong ciri‑ciri HTML5, CSS3, SVG, dan HTML Canvas. Dengan API kami anda boleh memuat halaman web, menganalisis, menyunting kandungan, serta menyimpan dan menukar halaman.
Format popular yang boleh anda manipulasi: XHTML, MHTML, SVG, MD, PDF, XPS, EPUB, PNG, TIFF, JPEG, BMP, dan lain‑lain.

PDF dari HTML dalam Java

Set ciri yang kaya

Aspose.HTML untuk Java menawarkan banyak ciri dalam pelbagai bidang:

• Model objek dokumen – membolehkan anda menyunting, mencipta dan membuang nod, serta dibina mengikut dokumentasi rasmi HTML.
• Penukar berprestasi tinggi. Untuk maklumat lanjut mengenai format fail yang disokong, lawati Senarai Ciri atau artikel Penukaran .
• Pemprosesan CSS, JavaScript, dan format terbina dalam lain.

Jana PDF dari HTML dengan satu baris kod Java

Anda boleh dengan mudah menjana PDF daripada HTML dalam aplikasi Java anda dengan hanya satu baris kod menggunakan kaedah statik kelas Penukar .

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

Jana PDF dari HTML baris demi baris menggunakan Java

Berikut ialah langkah‑langkah untuk menjana PDF daripada HTML baris demi baris:

  1. Menggunakan kelas HtmlDocument terlebih dahulu muatkan fail HTML.
  2. Selepas itu cipta contoh PdfSaveOptions .
  3. Dengan kaedah ConvertHTML() kelas Penukar simpan HTML sebagai fail PDF. Anda perlu menghantar HTMLDocument , PdfSaveOptions , dan laluan fail output kepada kaedah ConvertHTML() untuk menjana PDF daripada 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();
    }
}

Sesuaikan proses rendering dengan pilihan Save

Anda boleh menyesuaikan proses rendering dengan PdfSaveOptions , serta menentukan saiz halaman , kebenaran fail , margins , jenis media CSS , dan banyak lagi. Dalam contoh di bawah anda dapat melihat cara menggunakan PdfSaveOptions untuk mencipta fail PDF dengan saiz halaman tersuai 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"
);

Dalam artikel Penalaan Halus Penukar , anda boleh menemui maklumat lanjut mengenai PdfSaveOptions .

Penyedia aliran output

Anda boleh melaksanakan antara muka MemoryStreamProvider jika ingin menyimpan fail dalam storan jauh, seperti awan atau pangkalan data.
Antara muka MemoryStreamProvider direka sebagai objek panggilan balik untuk mencipta aliran dan melepaskan aliran yang dicipta lebih awal selepas rendering halaman atau dokumen.

Kami akan menunjukkan contoh penggunaan MemoryStreamProvider di bawah:

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 sokongan teknikal untuk semua produknya, termasuk artikel pangkalan pengetahuan , dokumentasi , blog , sampel kod , dan demo , serta Sokongan Percuma dan Sokongan Berbayar .
Jika anda memerlukan pakar yang akan bekerjasama dengan anda serta membantu melaksanakan Aspose.HTML untuk Java mengikut keperluan anda, penyelesaian terbaik ialah Perundingan Berbayar .