Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Artikel ini menjelaskan cara mengonversi HTML ke PDF menggunakan C#. Ini mencakup topik berikut.
Potongan kode berikut juga bekerja dengan pustaka Aspose.PDF.Drawing.
Format: HTML
Format: MHTML
Format: WebPage
Aspose.PDF for .NET adalah API manipulasi PDF yang memungkinkan Anda mengonversi dokumen HTML yang ada ke PDF secara mulus. Proses mengonversi HTML ke PDF dapat disesuaikan dengan fleksibel.
Contoh kode C# berikut menunjukkan cara mengonversi dokumen HTML ke PDF.
Langkah: Mengonversi HTML ke PDF di C#
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document using HtmlLoadOptions
var options = new Aspose.Pdf.HtmlLoadOptions();
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test.html", options))
{
// Save PDF document
document.Save(dataDir + "ConvertHTMLtoPDF_out.pdf");
}
}
Cobalah untuk mengonversi HTML ke PDF secara online
Aspose mempersembahkan aplikasi gratis online “HTML ke PDF”, di mana Anda dapat mencoba menyelidiki fungsionalitas dan kualitasnya.
Mesin Konversi HTML memiliki beberapa opsi yang memungkinkan kita mengontrol proses konversi.
Kueri media adalah teknik populer untuk menyampaikan lembar gaya yang disesuaikan ke perangkat yang berbeda. Kita dapat mengatur jenis perangkat menggunakan properti HtmlMediaType
.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedMediaType()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document using HtmlLoadOptions with Print media type
var options = new HtmlLoadOptions
{
// Set Print or Screen mode
HtmlMediaType = Aspose.Pdf.HtmlMediaType.Print
};
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test.html", options))
{
// Save PDF document
document.Save(dataDir + "ConvertHTMLtoPDFAdvancedMediaType_out.pdf");
}
}
Halaman HTML sering menggunakan font (misalnya, font dari folder lokal, Google Fonts, dll). Kita juga dapat mengontrol penyematan font dalam dokumen menggunakan properti IsEmbedFonts
.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedEmbedFonts()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document using HtmlLoadOptions with the font embedding option set
var options = new Aspose.Pdf.HtmlLoadOptions
{
// Disable font embedding
IsEmbedFonts = false
};
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test_fonts.html", options))
{
// Save PDF document
document.Save(dataDir + "ConvertHTMLtoPDFAdvanced_EmbedFonts_out.pdf");
}
}
Mesin Konversi menyediakan mekanisme yang memungkinkan Anda mengontrol pemuatan sumber daya tertentu yang terkait dengan dokumen HTML. Kelas HtmlLoadOptions
memiliki properti CustomLoaderOfExternalResources
di mana kita dapat mendefinisikan perilaku pemuat sumber daya. Misalkan kita perlu mengganti semua gambar PNG dengan gambar tunggal test.jpg
dan mengganti URL eksternal menjadi internal untuk sumber daya lainnya. Untuk melakukan ini, kita dapat mendefinisikan pemuat kustom SamePictureLoader
dan mengarahkan CustomLoaderOfExternalResources
ke nama ini.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvanced_DummyImage()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Load the HTML file into a document with a custom resource loader for external images
var options = new Aspose.Pdf.HtmlLoadOptions
{
CustomLoaderOfExternalResources = SamePictureLoader
};
// Open HTML document
using (var document = new Aspose.Pdf.Document(dataDir + "test.html", options))
{
// Save PDF document
document.Save(dataDir + "html_test.pdf");
}
}
private static Aspose.Pdf.LoadOptions.ResourceLoadingResult SamePictureLoader(string resourceURI)
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
Aspose.Pdf.LoadOptions.ResourceLoadingResult result;
if (resourceURI.EndsWith(".png"))
{
byte[] resultBytes = File.ReadAllBytes(dataDir + "test.jpg");
result = new Aspose.Pdf.LoadOptions.ResourceLoadingResult(resultBytes)
{
// Set MIME Type
MIMETypeIfKnown = "image/jpeg"
};
}
else
{
result = new Aspose.Pdf.LoadOptions.ResourceLoadingResult(GetContentFromUrl(resourceURI));
}
return result;
}
private static byte[] GetContentFromUrl(string url)
{
var httpClient = new System.Net.Http.HttpClient();
return httpClient.GetByteArrayAsync(url).GetAwaiter().GetResult();
}
Mengonversi halaman web sedikit berbeda dari mengonversi dokumen HTML lokal. Untuk mengonversi konten halaman Web ke format PDF, kita dapat terlebih dahulu mengambil konten halaman HTML menggunakan instance HttpClient, membuat objek Stream, meneruskan konten ke objek Document, dan merender keluaran dalam format PDF.
Saat mengonversi halaman web yang dihosting di server web ke PDF:
Langkah: Mengonversi WebPage ke PDF di C#
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvanced_WebPage()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
const string url = "https://en.wikipedia.org/wiki/Aspose_API";
// Set page size A3 and Landscape orientation;
var options = new Aspose.Pdf.HtmlLoadOptions(url)
{
PageInfo =
{
Width = 842,
Height = 1191,
IsLandscape = true
}
};
// Load the web page content as a stream and create a PDF document
using (var document = new Aspose.Pdf.Document(GetContentFromUrlAsStream(url), options))
{
// Save PDF document
document.Save(dataDir + "html_test.pdf");
}
}
private static Stream GetContentFromUrlAsStream(string url, System.Net.ICredentials credentials = null)
{
using (var handler = new System.Net.Http.HttpClientHandler { Credentials = credentials })
using (var httpClient = new System.Net.Http.HttpClient(handler))
{
return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
}
}
Terkadang kita perlu melakukan konversi file HTML yang memerlukan otentikasi dan hak akses, sehingga hanya pengguna yang sah yang dapat mengambil konten halaman. Ini juga mencakup skenario di mana beberapa sumber daya/data yang dirujuk di dalam HTML diambil dari server eksternal yang memerlukan otentikasi dan untuk memenuhi kebutuhan ini, properti ExternalResourcesCredentials
ditambahkan ke kelas HtmlLoadOptions
. Potongan kode berikut menunjukkan langkah-langkah untuk meneruskan kredensial untuk meminta HTML & sumber daya terkait saat mengonversi file HTML ke PDF.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedAuthorized()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
const string url = "http://httpbin.org/basic-auth/user1/password1";
var credentials = new System.Net.NetworkCredential("user1", "password1");
var options = new Aspose.Pdf.HtmlLoadOptions(url)
{
ExternalResourcesCredentials = credentials
};
using (var document = new Aspose.Pdf.Document(GetContentFromUrlAsStream(url, credentials), options))
{
// Save PDF document
document.Save(dataDir + "HtmlTest_out.pdf");
}
}
private static Stream GetContentFromUrlAsStream(string url, System.Net.ICredentials credentials = null)
{
using (var handler = new System.Net.Http.HttpClientHandler { Credentials = credentials })
using (var httpClient = new System.Net.Http.HttpClient(handler))
{
return httpClient.GetStreamAsync(url).GetAwaiter().GetResult();
}
}
Aspose.PDF for .NET memberikan kemampuan untuk merender semua konten dalam satu halaman saat mengonversi file HTML ke format PDF. Misalnya, jika Anda memiliki beberapa konten HTML yang ukuran keluarnya 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 flag IsRenderToSinglePage. Potongan kode di bawah ini menunjukkan cara menggunakan fungsionalitas ini.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFAdvancedSinglePageRendering()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Initialize HtmlLoadOptions
var options = new Aspose.Pdf.HtmlLoadOptions
{
// Set Render to single page property
IsRenderToSinglePage = true
};
// Open PDF document
using (var document = new Aspose.Pdf.Document(dataDir + "HTMLToPDF.html", options))
{
// Save PDF document
document.Save(dataDir + "RenderContentToSamePage_out.pdf");
}
}
Aspose.PDF for .NET memberikan kemampuan untuk mengonversi halaman HTML menjadi dokumen PDF. Karena HTML memungkinkan penambahan elemen grafik SVG sebagai tag di halaman, Aspose.PDF juga mendukung konversi data semacam itu ke dalam file PDF yang dihasilkan. Potongan kode berikut menunjukkan cara mengonversi file HTML dengan tag grafik SVG menjadi Dokumen PDF Berlabel.
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertHTMLtoPDFWithSVG()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Initialize HtmlLoadOptions
var options = new Aspose.Pdf.HtmlLoadOptions(Path.GetDirectoryName(dataDir + "HTMLSVG.html"));
// Initialize Document object
using (var document = new Aspose.Pdf.Document(dataDir + "HTMLSVG.html", options))
{
// Save PDF document
document.Save(dataDir + "RenderHTMLwithSVGData_out.pdf");
}
}
Cobalah untuk mengonversi MHTML ke PDF secara online
Aspose.PDF for .NET mempersembahkan aplikasi gratis online “MHTML ke PDF”, di mana Anda dapat mencoba menyelidiki fungsionalitas dan kualitasnya.
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 menjadi satu file. Konten file MHTML dikodekan seolah-olah itu adalah pesan email HTML, menggunakan tipe MIME multipart/related. Aspose.PDF for .NET dapat mengonversi file HTML ke format PDF dan dengan rilis Aspose.PDF for .NET 9.0.0, kami telah memperkenalkan fitur baru yang memungkinkan Anda mengonversi file MHTML ke format PDF. Potongan kode berikut menunjukkan cara mengonversi file MHTML ke format PDF dengan C#:
Langkah: Mengonversi MHTML ke PDF di C#
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void ConvertMHTtoPDF()
{
// The path to the documents directory
var dataDir = RunExamples.GetDataDir_AsposePdf();
// Initialize MhtLoadOptions with page setup
var options = new Aspose.Pdf.MhtLoadOptions()
{
PageInfo = { Width = 842, Height = 1191, IsLandscape = true }
};
// Initialize Document object using the MHT file and options
using (var document = new Aspose.Pdf.Document(dataDir + "fileformatinfo.mht", options))
{
// Save PDF document
document.Save(dataDir + "MhtmlTest_out.pdf");
}
}
Artikel ini juga mencakup topik-topik ini. Kode sama seperti di atas.
Format: HTML
Format: MHTML
Format: WebPage
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.