Mengonversi HTML ke PDF di Java

Aspose.PDF for Java dapat mengonversi file HTML lokal, konten MHTML yang diarsipkan, dan halaman web langsung menjadi dokumen PDF. Anda dapat mengendalikan alur konversi dengan HtmlLoadOptions dan MhtLoadOptions untuk memengaruhi skala tata letak, penanganan media CSS, prioritas aturan halaman, penyematan font, resolusi sumber daya, dan perilaku rendering satu halaman.

Mengonversi HTML ke PDF

Gunakan contoh ini ketika file HTML lokal harus dikonversi langsung menjadi dokumen PDF.

  1. Buat sebuah instans HtmlLoadOptions untuk mengonfigurasi bagaimana sumber HTML diinterpretasikan selama impor.
  2. Atur HtmlPageLayoutOption ke ScaleToPageWidth konten HTML yang terlalu lebar diskalakan ke lebar halaman PDF target alih-alih dipotong.
  3. Buka file HTML sumber dengan melewatkan jalurnya dan opsi pemuatan yang dikonfigurasi ke dalam konstruktor Document.
  4. Simpan yang dihasilkan Document sebagai file PDF pada jalur output target.
public static void convertHtmlToPdf(Path inputFile, Path outputFile) {
    HtmlLoadOptions loadOptions = new HtmlLoadOptions();
    loadOptions.setPageLayoutOption(HtmlPageLayoutOption.ScaleToPageWidth);
    try (Document document = new Document(inputFile.toString(), loadOptions)) {
        document.save(outputFile.toString());
    }
    System.out.println(inputFile + " converted into " + outputFile);
}

Mengonversi HTML ke PDF dengan opsi tipe media

Gunakan contoh ini ketika penanganan tipe media CSS harus dikontrol selama konversi HTML.

  1. Buat sebuah instans HtmlLoadOptions untuk pengaturan konversi.
  2. Atur HtmlMediaType ke Screen ketika HTML harus dirender dengan aturan CSS yang dimaksudkan untuk tampilan di layar alih-alih media cetak.
  3. Buka file HTML dengan opsi pemuatan yang telah dikonfigurasi sehingga gaya yang bergantung pada media query diterapkan selama konversi.
  4. Simpan hasilnya Document sebagai file PDF.
public static void convertHtmlToPdfMediaType(Path inputFile, Path outputFile) {
    HtmlLoadOptions loadOptions = new HtmlLoadOptions();
    loadOptions.setHtmlMediaType(HtmlMediaType.Screen);
    try (Document document = new Document(inputFile.toString(), loadOptions)) {
        document.save(outputFile.toString());
    }
    System.out.println(inputFile + " converted into " + outputFile);
}

Mengonversi HTML ke PDF dengan prioritas aturan halaman CSS

Gunakan contoh ini ketika CSS @page aturan harus memengaruhi tata letak halaman PDF akhir.

  1. Buat sebuah instans HtmlLoadOptions sebelum membuka file HTML.
  2. Konfigurasikan setPriorityCssPageRule(false) ketika pengaturan tata letak lainnya harus memiliki prioritas atas CSS @page deklarasi dalam markup sumber.
  3. Muat konten HTML ke dalam sebuah Document dengan opsi yang dikonfigurasi sehingga tata letak halaman diselesaikan selama impor.
  4. Simpan file PDF yang dihasilkan.
public static void convertHtmlToPdfPriorityCssPageRule(Path inputFile, Path outputFile) {
    HtmlLoadOptions loadOptions = new HtmlLoadOptions();
    loadOptions.setPriorityCssPageRule(false);
    try (Document document = new Document(inputFile.toString(), loadOptions)) {
        document.save(outputFile.toString());
    }
    System.out.println(inputFile + " converted into " + outputFile);
}

Mengonversi HTML ke PDF dengan font yang disematkan

Gunakan contoh ini ketika PDF output harus mempertahankan font HTML dengan menyematkannya.

  1. Buat sebuah instans HtmlLoadOptions untuk konfigurasi impor HTML.
  2. Aktifkan setEmbedFonts(true) Jadi font yang ditentukan selama render HTML disimpan dalam PDF output.
  3. Buka sumber HTML dengan opsi pemuatan ini untuk menjaga tipografi asli tetap tersedia dalam dokumen akhir.
  4. Simpan Document sebagai PDF dengan sumber daya font yang disematkan disertakan.
public static void convertHtmlToPdfEmbedFonts(Path inputFile, Path outputFile) {
    HtmlLoadOptions loadOptions = new HtmlLoadOptions();
    loadOptions.setEmbedFonts(true);
    try (Document document = new Document(inputFile.toString(), loadOptions)) {
        document.save(outputFile.toString());
    }
    System.out.println(inputFile + " converted into " + outputFile);
}

Merender konten HTML pada satu halaman PDF

Gunakan contoh ini ketika konten HTML yang panjang harus tetap berada di satu halaman PDF alih-alih mengalir ke beberapa halaman.

  1. Buat sebuah instans HtmlLoadOptions untuk pengaturan konversi.
  2. Aktifkan setRenderToSinglePage(true) sehingga HTML yang diimpor ditata pada satu halaman PDF alih-alih dibagi menjadi beberapa halaman.
  3. Buka HTML sumber dengan opsi pemuatan yang dikonfigurasi dan biarkan Aspose.PDF membangun tata letak halaman dalam sebuah Document.
  4. Simpan file PDF output.
public static void convertHtmlToPdfRenderContentToSamePage(Path inputFile, Path outputFile) {
    HtmlLoadOptions loadOptions = new HtmlLoadOptions();
    loadOptions.setRenderToSinglePage(true);
    try (Document document = new Document(inputFile.toString(), loadOptions)) {
        document.save(outputFile.toString());
    }
    System.out.println(inputFile + " converted into " + outputFile);
}

Mengonversi HTML yang berisi SVG inline

Gunakan contoh ini ketika sumber HTML menyertakan data SVG inline yang harus dirender dalam PDF.

  1. Buat sebuah instans HtmlLoadOptions dengan direktori induk file HTML sebagai jalur dasar sehingga sumber daya terkait dapat diselesaikan secara konsisten selama konversi.
  2. Buka file HTML yang berisi markup SVG inline dengan melewatkan jalur sumber dan opsi pemuatan ke dalam konstruktor Document.
  3. Biarkan Aspose.PDF merender DOM HTML bersama dengan elemen SVG yang disematkan ke dalam konten halaman PDF.
  4. Simpan dokumen PDF yang dihasilkan.
public static void convertHtmlToPdfWithSvgData(Path inputFile, Path outputFile) {
    HtmlLoadOptions loadOptions = new HtmlLoadOptions(inputFile.getParent().toString());
    try (Document document = new Document(inputFile.toString(), loadOptions)) {
        document.save(outputFile.toString());
    }
    System.out.println(inputFile + " converted into " + outputFile);
}

Mengonversi halaman web ke PDF

Gunakan contoh ini ketika URL web langsung harus dirender dan disimpan sebagai dokumen PDF.

  1. Buat sebuah instans HtmlLoadOptions dengan URL target sehingga sumber daya relatif seperti stylesheet dan gambar dapat diselesaikan terhadap alamat tersebut.
  2. Ubah string URL menjadi a objek URL dan buka aliran masuknya untuk mengambil konten HTML secara langsung.
  3. Buat Document dari aliran respons dan opsi pemuatan yang dikonfigurasi sehingga halaman yang diunduh diproses dengan URL dasar yang benar.
  4. Simpan halaman web yang dirender sebagai file PDF dan tutup sumber daya stream secara otomatis dengan try-with-resources.
public static void convertWebPageToPdf(String urlString, Path outputFile) {
    HtmlLoadOptions loadOptions = new HtmlLoadOptions(urlString);
    try {
        URL url = URI.create(urlString).toURL();

        try (InputStream inputStream = url.openStream()) {
            try (Document document = new Document(inputStream, loadOptions)) {
                document.save(outputFile.toString());
            }
        }
        System.out.println(url + " converted into " + outputFile);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Mengonversi MHTML ke PDF

Gunakan contoh ini ketika file MHTML yang diarsipkan harus dikonversi menjadi dokumen PDF.

  1. Buat sebuah instans MhtLoadOptions untuk memberi tahu Aspose.PDF agar memuat sumber sebagai konten MIME HTML.
  2. Buka .mht atau .mhtml file dengan melewatkan jalurnya dan opsi pemuatan MHTML ke dalam konstruktor Document.
  3. Izinkan Aspose.PDF menguraikan konten HTML yang diarsipkan dan sumber daya tersematnya ke dalam model dokumen PDF.
  4. Simpan file PDF yang dihasilkan.
public static void convertMhtmlToPdf(Path inputFile, Path outputFile) {
    MhtLoadOptions loadOptions = new MhtLoadOptions();
    try (Document document = new Document(inputFile.toString(), loadOptions)) {
        document.save(outputFile.toString());
    }
    System.out.println(inputFile + " converted into " + outputFile);
}