Mengonversi HTML ke PDF di .NET
Overview
Artikel ini menjelaskan cara mengonversi HTML ke PDF menggunakan C#. Ini mencakup topik-topik berikut.
Potongan kode berikut juga bekerja dengan pustaka Aspose.PDF.Drawing.
Format: HTML
Format: MHTML
Format: WebPage
Konversi HTML ke PDF dengan C#
Konversi HTML ke PDF dengan C#
Aspose.PDF untuk .NET adalah API manipulasi PDF yang memungkinkan Anda mengonversi dokumen HTML yang ada menjadi PDF secara mulus. Proses konversi HTML ke PDF dapat disesuaikan dengan fleksibel.
Mengonversi HTML ke PDF
Contoh kode C# berikut menunjukkan cara mengonversi dokumen HTML menjadi PDF.
Langkah-langkah: Mengonversi HTML ke PDF dalam C#
- Buat instance dari kelas HtmlLoadOptions.
- Inisialisasi objek Document.
- Simpan dokumen PDF keluaran dengan memanggil metode Document.Save().
public static void ConvertHTMLtoPDF()
{
HtmlLoadOptions options= new HtmlLoadOptions();
Document pdfDocument= new Document(_dataDir + "test.html", options);
pdfDocument.Save(_dataDir + "html_test.PDF");
}
Coba konversi HTML ke PDF secara online
Aspose mempersembahkan aplikasi gratis online “HTML to PDF” di mana Anda dapat mencoba untuk menyelidiki fungsionalitas dan kualitas kerjanya. Aspose mempersembahkan aplikasi gratis online “HTML to PDF”, di mana Anda dapat mencoba untuk mengeksplorasi fungsionalitas dan kualitas kerjanya.
Konversi lanjutan dari HTML ke PDF
Mesin Konversi HTML memiliki beberapa opsi yang memungkinkan kita mengontrol proses konversi.
Dukungan Media Queries
Media queries adalah teknik populer untuk menyampaikan style sheet yang disesuaikan ke berbagai perangkat. Kita dapat mengatur tipe perangkat menggunakan properti HtmlMediaType
.
public static void ConvertHTMLtoPDFAdvanced_MediaType()
{
HtmlLoadOptions options = new HtmlLoadOptions
{
// setel mode Print atau Screen
HtmlMediaType = HtmlMediaType.Print
};
Document pdfDocument = new Document(_dataDir + "test.html", options);
pdfDocument.Save(_dataDir + "html_test.PDF");
}
Mengaktifkan (menonaktifkan) penyertaan font
Halaman HTML sering menggunakan font (misalnya font dari folder lokal, Google Fonts, dll). Kita juga dapat mengontrol penyertaan font dalam dokumen menggunakan properti IsEmbedFonts
.
public static void ConvertHTMLtoPDFAdvanced_EmbedFonts()
{
// Menonaktifkan penyertaan font
HtmlLoadOptions options = new HtmlLoadOptions {IsEmbedFonts = false};
Document pdfDocument= new Document(_dataDir + "test_fonts.html", options);
pdfDocument.Save(_dataDir + "html_test.PDF");
}
Mengelola pemuatan sumber daya eksternal
Mesin Konversi menyediakan mekanisme yang memungkinkan Anda untuk mengontrol pemuatan sumber daya tertentu yang terkait dengan dokumen HTML.
Kelas HtmlLoadOptions
memiliki properti CustomLoaderOfExternalResources
yang memungkinkan kita mendefinisikan perilaku pemuat sumber daya.
Kelas HtmlLoadOptions
memiliki properti CustomLoaderOfExternalResources
yang memungkinkan kita menentukan perilaku loader sumber daya.
Misalkan kita perlu mengganti semua gambar PNG dengan satu gambar test.jpg
dan mengganti URL eksternal dengan internal untuk sumber daya lainnya.
Untuk melakukan ini, kita dapat mendefinisikan loader khusus SamePictureLoader
dan menunjuk CustomLoaderOfExternalResources
ke nama ini.
public static void ConvertHTMLtoPDFAdvanced_DummyImage()
{
HtmlLoadOptions options = new HtmlLoadOptions
{
CustomLoaderOfExternalResources = SamePictureLoader
};
Document pdfDocument= new Document(_dataDir + "test.html", options);
pdfDocument.Save(_dataDir + "html_test.PDF");
}
private static LoadOptions.ResourceLoadingResult SamePictureLoader(string resourceURI)
{
LoadOptions.ResourceLoadingResult result;
if (resourceURI.EndsWith(".png"))
{
byte[] resultBytes = File.ReadAllBytes(_dataDir + "test.jpg");
result = new LoadOptions.ResourceLoadingResult(resultBytes)
{
//Setel Tipe MIME
MIMETypeIfKnown = "image/jpeg"
};
}
else
{
result = new LoadOptions.ResourceLoadingResult(GetContentFromUrl(resourceURI));
}
return result;
}
private static byte[] GetContentFromUrl(string url)
{
var httpClient = new HttpClient();
return httpClient.GetByteArrayAsync(url).GetAwaiter().GetResult();
}
Mengonversi Halaman Web ke PDF
Mengonversi halaman web sedikit berbeda dari mengonversi dokumen HTML lokal. Untuk mengonversi isi halaman web ke format PDF, kita dapat terlebih dahulu mengambil isi halaman HTML menggunakan instance HttpClient, membuat objek Stream, mengoper isinya ke objek Dokumen dan merender hasilnya dalam format PDF.
Ketika mengonversi halaman web yang dihosting di webserver ke PDF:
Langkah-langkah: Mengonversi Halaman Web ke PDF dalam C#
- Baca isi halaman menggunakan objek HttpClient.
- Instansiasi objek HtmlLoadOptions dan atur URL dasar.
- Inisialisasi objek Dokumen sambil mengoper objek stream.
- Opsional, atur ukuran halaman dan/atau orientasi.
public static void ConvertHTMLtoPDFAdvanced_WebPage()
{
const string url = "https://en.wikipedia.org/wiki/Aspose_API";
// Atur ukuran halaman A3 dan orientasi Landscape;
HtmlLoadOptions options = new HtmlLoadOptions(url)
{
PageInfo = {Width = 842, Height = 1191, IsLandscape = true}
};
Document pdfDocument= new Document(GetContentFromUrlAsStream(url), options);
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))
{
return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
}
}
Menyediakan halaman web kredensial untuk konversi PDF
Terkadang kita perlu melakukan konversi file HTML yang memerlukan otentikasi dan hak akses, sehingga hanya pengguna autentik yang dapat mengambil konten halaman. Ini juga termasuk skenario di mana beberapa sumber/data yang dirujuk di dalam HTML diambil dari server eksternal yang memerlukan otentikasi dan untuk memenuhi kebutuhan ini, properti ExternalResourcesCredentials
ditambahkan ke kelas HtmlLoadOptions
. Cuplikan kode berikut menunjukkan langkah-langkah untuk mengirimkan kredensial untuk meminta HTML & sumber daya terkaitnya saat mengonversi file HTML ke konversi PDF.
public static void ConvertHTMLtoPDFAdvanced_Authorized()
{
const string url = "http://httpbin.org/basic-auth/user1/password1";
var credentials = new NetworkCredential("user1", "password1");
HtmlLoadOptions options = new HtmlLoadOptions(url)
{
ExternalResourcesCredentials = credentials
};
Document pdfDocument= new Document(GetContentFromUrlAsStream(url, credentials), options);
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))
{
return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
}
}
Render semua konten HTML dalam satu Halaman
Aspose.PDF untuk .NET menyediakan kemampuan untuk merender semua konten dalam satu halaman saat mengonversi file HTML ke format PDF. Misalnya, jika Anda memiliki beberapa konten HTML yang ukuran keluarannya lebih besar dari satu halaman, Anda dapat menggunakan opsi untuk merender data keluaran ke dalam satu halaman PDF. Untuk menggunakan opsi ini, kelas HtmlLoadOptions diperluas dengan bendera IsRenderToSinglePage. Potongan kode di bawah ini menunjukkan cara menggunakan fungsionalitas ini.
// Untuk contoh lengkap dan file data, silakan kunjungi https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// Inisialisasi HTMLLoadSave Options
HtmlLoadOptions options = new HtmlLoadOptions();
// Atur Render ke properti halaman tunggal
options.IsRenderToSinglePage = true;
// Muat dokumen
Document pdfDocument= new Document(dataDir + "HTMLToPDF.html", options);
// Simpan
pdfDocument.Save(dataDir + "RenderContentToSamePage.pdf");
Render HTML dengan Data SVG
Render HTML dengan Data SVG
Aspose.PDF untuk .NET menyediakan kemampuan untuk mengonversi halaman HTML menjadi dokumen PDF. Karena HTML memungkinkan penambahan elemen grafis SVG sebagai tag di halaman, Aspose.PDF juga mendukung konversi data tersebut ke dalam file PDF hasilnya. Cuplikan kode berikut menunjukkan cara mengonversi file HTML dengan tag grafis SVG ke Dokumen PDF Bertag.
// Untuk contoh lengkap dan file data, silakan kunjungi https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Jalur ke direktori dokumen.
string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion();
// Tetapkan jalur file masukan
string inFile = dataDir + "HTMLSVG.html";
// Tetapkan jalur file keluaran
string outFile = dataDir + "RenderHTMLwithSVGData.pdf";
// Inisialisasi HtmlLoadOptions
HtmlLoadOptions options = new HtmlLoadOptions(Path.GetDirectoryName(inFile));
// Inisialisasi objek Dokumen
Document pdfDocument = new Document(inFile, options);
// simpan
pdfDocument.Save(outFile);
Konversi MHTML ke PDF
Coba konversi MHTML ke PDF secara online Coba Konversi MHTML ke PDF Secara Online
Aspose.PDF untuk .NET mempersembahkan aplikasi gratis online “MHTML ke PDF”, di mana Anda dapat mencoba untuk meneliti fungsionalitas dan kualitas kerjanya.
MHTML, singkatan dari MIME HTML, adalah format arsip halaman web yang digunakan untuk menggabungkan sumber daya yang biasanya diwakili oleh tautan eksternal (seperti gambar, animasi Flash, applet Java, dan file audio) dengan kode HTML ke dalam satu file. MHTML, singkatan dari MIME HTML, adalah format arsip halaman web yang digunakan untuk menggabungkan sumber daya yang biasanya diwakili oleh tautan eksternal (seperti gambar, animasi Flash, applet Java, dan file audio) dengan kode HTML ke dalam satu file.
Langkah: Mengonversi MHTML ke PDF dalam C#
- Buat sebuah instansi dari kelas MhtLoadOptions.
- Inisialisasi objek Document.
- Simpan dokumen PDF keluaran dengan memanggil metode Document.Save().
public static void ConvertMHTtoPDF()
{
MhtLoadOptions options = new MhtLoadOptions()
{
PageInfo = { Width = 842, Height = 1191, IsLandscape = true}
};
Document pdfDocument= new Document(_dataDir + "fileformatinfo.mht", options);
pdfDocument.Save(_dataDir + "mhtml_test.PDF");
}
Lihat Juga
Artikel ini juga mencakup topik-topik ini. Artikel ini juga membahas topik-topik ini.
Format: HTML
- Kode C# HTML ke PDF
- API C# HTML ke PDF
- C# HTML ke PDF Secara Pemrograman
- Perpustakaan C# HTML ke PDF
- C# Simpan HTML sebagai PDF
- C# Hasilkan PDF dari HTML
- C# Buat PDF dari HTML
- Konverter C# HTML ke PDF
Format: MHTML
- Kode C# MHTML ke PDF
- API C# MHTML ke PDF
- C# MHTML ke PDF Secara Pemrograman
- Perpustakaan C# MHTML ke PDF
- C# Simpan MHTML sebagai PDF
- C# Hasilkan PDF dari MHTML
- C# Buat PDF dari MHTML
- Konverter C# MHTML ke PDF
Format: WebPage