
PDF (Portable Document Format) adalah salah satu format dokumen yang banyak digunakan untuk berbagi data dan informasi lintas platform. Salah satu kemampuan uniknya termasuk kesetiaan dokumen tetap utuh saat dilihat di platform apa pun menggunakan aplikasi sesuai spesifikasi Adobe. Selain itu, HTML (HyperText Markup Language) juga merupakan format file terdepan untuk pengembangan halaman web dan sebagian besar browser web mendukung format ini. Namun, PDF diterima secara luas karena dapat dengan mudah dilihat di perangkat apa pun tanpa kehilangan pemformatan dokumen. Oleh karena itu, pada artikel kali ini kita akan membahas langkah-langkah bagaimana mengkonversi file HTML ke format PDF menggunakan .NET API.
- C# API untuk Mengonversi HTML ke PDF
- Konversikan HTML ke PDF dalam C#
- Sematkan font selama konversi
- Konversi halaman Web ke PDF
- Render HTML lengkap dalam satu halaman
C# API untuk Mengonversi HTML ke PDF
Untuk melakukan operasi konversi, pertama-tama kita perlu menginstal Aspose.PDF for .NET pada sistem. API tersedia di perpustakaan NuGet. Silakan jalankan perintah berikut di Package Manager Console untuk menginstalnya:
Install-Package Aspose.Pdf
Setelah penginstalan selesai, Aspose.PDF untuk .NET akan muncul di bawah folder Paket di penjelajah solusi.
Konversikan HTML ke PDF dalam C#
Diberikan di bawah ini adalah langkah-langkah tentang bagaimana Anda dapat Mengonversi HTML ke PDF menggunakan C#
- Buat instance kelas License untuk menghilangkan batasan apa pun selama proses pembuatan file PDF.
- Buat objek kelas HtmlLoadOptions sambil meneruskan masukan url basis HTML sebagai argumen ke [HtmlLoadOptions(…)](https ://apireference.aspose.com/pdf/net/aspose.pdf/htmlloadoptions) konstruktor.
- Inisialisasi objek kelas Document dan teruskan [HtmlLoadOptions](https://apireference.aspose.com/pdf/net/ aspose.pdf/htmlloadoptions) sebagai argumen untuk konstruktornya.
- Panggil metode Save(…) dari objek Dokumen dan render hasilnya dalam format PDF.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
// create an object to initiate the license Aspose.Pdf.License license = new Aspose.Pdf.License(); // provide path of license file license.SetLicense("/Downloads/Conholdate.Total.NET.lic"); // create an instance of HtmlLoadOptions class Aspose.Pdf.HtmlLoadOptions htmlLoadOptions = new Aspose.Pdf.HtmlLoadOptions("User/Documents/"); // create Document object and provide input HTML file path Aspose.Pdf.Document document = new Aspose.Pdf.Document("/Documents/input.html", htmlLoadOptions); // save the resultant HTML to PDF format document.Save("/Documents/Converted.pdf");
Sematkan font selama konversi
Sebagian besar halaman HTML sering menggunakan font (font ig dari folder lokal, Google Font, dll), dan untuk mempertahankan tata letak halaman, font yang sama harus disematkan selama proses rendering. Jadi untuk mengontrol penyematan font dalam dokumen yang dihasilkan, kita perlu menggunakan properti IsEmbedFonts.
// Embed fonts during conversion | |
HtmlLoadOptions options = new HtmlLoadOptions {IsEmbedFonts = true}; |
// Set Page size as A3 and page orientation as Landscape | |
HtmlLoadOptions options = new HtmlLoadOptions(url) | |
{ | |
PageInfo = {Width = 842, Height = 1191, IsLandscape = true} | |
}; |
Ubah halaman Web menjadi PDF
Selain konversi file HTML, kami mungkin juga memiliki persyaratan untuk langsung mengonversi halaman web ke format PDF. Jadi untuk memenuhi persyaratan ini, pertama-tama kita akan mengambil konten halaman Web jarak jauh menggunakan instance HttpClient, membuat objek Stream, lalu meneruskan instance Stream ke objek Document. Alasan kami membutuhkan konten dalam Stream adalah karena instance Dokumen hanya menerima file atau objek uap. Bagian berikut menjelaskan langkah-langkah tentang cara mengonversi halaman Web ke PDF menggunakan C#
- Baca isi halaman menggunakan objek HttpClient.
- Instansiasi objek HtmlLoadOptions dan atur URL dasar.
- Inisialisasi objek Document dan teruskan objek stream dan instance HtmlLoadOptions sebagai argumen.
- Panggil metode Simpan(String) dari kelas Dokumen untuk menghasilkan output.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
public static void ConvertHTMLtoPDFAdvanced_WebPage() { const string url = "https://en.wikipedia.org/wiki/Aspose_API"; // Set page size A3 and Landscape orientation; HtmlLoadOptions options = new HtmlLoadOptions(url) { // Set the page dimensions PageInfo = {Width = 842, Height = 1191, IsLandscape = true} }; // Create an instance of Document object Document pdfDocument= new Document(GetContentFromUrlAsStream(url), options); // Save the resultant pdfDocument.Save(_dataDir + "html_test.PDF"); } private static Stream GetContentFromUrlAsStream(string url, ICredentials credentials = null) { using (var handler = new HttpClientHandler { Credentials = credentials }) using (var httpClient = new HttpClient(handler)) { // fetch and return results in stream instance return httpClient.GetStreamAsync(url).GetAwaiter().GetResult(); } }
Render HTML lengkap pada satu halaman
Selama konversi HTML ke PDF, panjang file yang dihasilkan sesuai dengan panjang konten dokumen HTML masukan. Oleh karena itu, jika input HTML terdiri dari beberapa halaman, maka file yang dihasilkan juga akan menjangkau beberapa halaman. Namun, kami dapat membatasi keluaran ke satu halaman PDF. Untuk memenuhi persyaratan ini, properti IsRenderToSinglePage dari kelas HtmlLoadOptions dapat digunakan. Diberikan di bawah ini adalah cuplikan kode untuk merender konten HTML lengkap pada satu halaman PDF menggunakan C#.
// For complete examples and data files, please go to https://github.com/aspose-pdf/Aspose.PDF-for-.NET | |
// Initialize the HtmlLoadOptions object | |
HtmlLoadOptions options = new HtmlLoadOptions(); | |
// Set render to single page property | |
options.IsRenderToSinglePage = true; | |
// Load document source HTML content | |
Document pdfDocument= new Document("/Documents/HTMLToPDF.html", options); | |
// Save the resultant PDF file | |
pdfDocument.Save("/Documents/MyRenderContentToSamePage.pdf"); |
Dapatkan Lisensi Gratis
Anda dapat meminta lisensi sementara gratis untuk mencoba API tanpa batasan evaluasi apa pun.
Kesimpulan
Pada artikel ini, kita telah mempelajari tentang pendekatan konversi file HTML ke format PDF menggunakan .NET API. Jika Anda tertarik untuk mempelajari lebih lanjut tentang fitur menarik lainnya yang ditawarkan oleh Aspose.PDF untuk .NET, silakan kunjungi halaman Fitur utama. Serangkaian contoh lengkap dapat ditemukan di repositori GitHub.
Tip Cepat
Kami juga telah mengembangkan aplikasi online gratis untuk memeriksa dengan cepat fitur yang ditawarkan oleh API kami. Jadi, Anda dapat memeriksa Aplikasi Konversi Aspose.PDF untuk mengubah file HTML ke format PDF. Selain itu, Anda juga dapat menggunakan berbagai format file lain dan memenuhi persyaratan konversi Anda.