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.
- Buat sebuah instans
HtmlLoadOptionsuntuk mengonfigurasi bagaimana sumber HTML diinterpretasikan selama impor. - Atur
HtmlPageLayoutOptionkeScaleToPageWidthkonten HTML yang terlalu lebar diskalakan ke lebar halaman PDF target alih-alih dipotong. - Buka file HTML sumber dengan melewatkan jalurnya dan opsi pemuatan yang dikonfigurasi ke dalam konstruktor
Document. - Simpan yang dihasilkan
Documentsebagai 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.
- Buat sebuah instans
HtmlLoadOptionsuntuk pengaturan konversi. - Atur
HtmlMediaTypekeScreenketika HTML harus dirender dengan aturan CSS yang dimaksudkan untuk tampilan di layar alih-alih media cetak. - Buka file HTML dengan opsi pemuatan yang telah dikonfigurasi sehingga gaya yang bergantung pada media query diterapkan selama konversi.
- Simpan hasilnya
Documentsebagai 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.
- Buat sebuah instans
HtmlLoadOptionssebelum membuka file HTML. - Konfigurasikan
setPriorityCssPageRule(false)ketika pengaturan tata letak lainnya harus memiliki prioritas atas CSS@pagedeklarasi dalam markup sumber. - Muat konten HTML ke dalam sebuah
Documentdengan opsi yang dikonfigurasi sehingga tata letak halaman diselesaikan selama impor. - 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.
- Buat sebuah instans
HtmlLoadOptionsuntuk konfigurasi impor HTML. - Aktifkan
setEmbedFonts(true)Jadi font yang ditentukan selama render HTML disimpan dalam PDF output. - Buka sumber HTML dengan opsi pemuatan ini untuk menjaga tipografi asli tetap tersedia dalam dokumen akhir.
- Simpan
Documentsebagai 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.
- Buat sebuah instans
HtmlLoadOptionsuntuk pengaturan konversi. - Aktifkan
setRenderToSinglePage(true)sehingga HTML yang diimpor ditata pada satu halaman PDF alih-alih dibagi menjadi beberapa halaman. - Buka HTML sumber dengan opsi pemuatan yang dikonfigurasi dan biarkan Aspose.PDF membangun tata letak halaman dalam sebuah
Document. - 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.
- Buat sebuah instans
HtmlLoadOptionsdengan direktori induk file HTML sebagai jalur dasar sehingga sumber daya terkait dapat diselesaikan secara konsisten selama konversi. - Buka file HTML yang berisi markup SVG inline dengan melewatkan jalur sumber dan opsi pemuatan ke dalam konstruktor
Document. - Biarkan Aspose.PDF merender DOM HTML bersama dengan elemen SVG yang disematkan ke dalam konten halaman PDF.
- 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.
- Buat sebuah instans
HtmlLoadOptionsdengan URL target sehingga sumber daya relatif seperti stylesheet dan gambar dapat diselesaikan terhadap alamat tersebut. - Ubah string URL menjadi a objek
URLdan buka aliran masuknya untuk mengambil konten HTML secara langsung. - Buat
Documentdari aliran respons dan opsi pemuatan yang dikonfigurasi sehingga halaman yang diunduh diproses dengan URL dasar yang benar. - 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.
- Buat sebuah instans
MhtLoadOptionsuntuk memberi tahu Aspose.PDF agar memuat sumber sebagai konten MIME HTML. - Buka
.mhtatau.mhtmlfile dengan melewatkan jalurnya dan opsi pemuatan MHTML ke dalam konstruktorDocument. - Izinkan Aspose.PDF menguraikan konten HTML yang diarsipkan dan sumber daya tersematnya ke dalam model dokumen PDF.
- 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);
}