How to Use Web Assets & Optimize PDFs in C# for Performance

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF 具備超過 100 項功能,旨在為 .NET 開發人員簡化 PDF 生成與處理任務。 此函式庫是滿足您所有 PDF 需求的全方位解決方案,無需安裝任何第三方工具或 Adobe Acrobat。

IronPDF 的一大關鍵優勢在於其對網頁資源的廣泛支援。 這些工具讓您能在 PDF 文件中無縫使用 HTML、JavaScript、網頁字型等元素。 藉此,您可以建立真正獨一無二的 PDF 文件。

IronPDF 在生成及處理 PDF 檔案時,亦展現出卓越的效能。 這能確保 PDF 操作流暢且不造成系統負擔,特別是在處理大型批次、大檔案等需要高效能的 PDF 任務時。

快速入門:整合網頁資源並高效優化 PDF 檔案

本快速入門指南將示範如何使用 IronPDF 透過添加圖片和字型等網頁資源來強化您的 PDF 檔案。 只需幾行程式碼,您就能顯著提升 PDF 文件的效能與視覺品質。 無論是嵌入公司標誌還是自訂字型,IronPDF 都能讓流程快速且直觀,確保您的 PDF 檔案既經過最佳化,又具視覺吸引力。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 請複製並執行此程式碼片段。

    var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello Performance</h1>");
    pdf.Flatten();
    pdf.Com/pressAndSaveAs("fast-optimized.pdf", 50);
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronPDF

    arrow pointer

目錄

將網頁資源嵌入您的 PDF 文件中

IronPDF 對網頁資源的強大支援,讓開發人員能夠完全掌控 PDF 文件的外觀。 從全面支援 HTML、CSS 和 JavaScript 以實現 HTML 內容轉為 PDF 時的像素級精準呈現,到能導入自訂字型與圖片以打造文件中視覺上吸引人的元素,IronPDF 對現代網頁標準與資源的支援,讓開發人員能夠輕鬆產出高品質且視覺效果出色的 PDF 文件。

處理動態網頁內容

讓我們先來了解 IronPDF 如何簡化從 HTML 內容(包含 CSS 樣式與 JavaScript 元素)建立 PDF 文件的流程。 這個簡單直觀的流程能讓開發人員倍感安心,因為他們知道自己可以輕鬆地將網頁資源轉換為 PDF 檔案。

使用 Chrome 除錯 HTML

IronPDF 強大的渲染引擎可確保任何 HTML 內容皆能以像素級精準度呈現。 這意味著您從 HTML 內容渲染出的 PDF 檔案,將與 Chrome 瀏覽器中的 HTML 顯示效果完全一致,提供可靠且一致的渲染體驗。

:path=/static-assets/pdf/content-code-examples/how-to/pixel-perfect-html-to-pdf-1.cs
// Pixel Perfect HTML Formatting Settings
IronPdf.ChromePdfRenderer renderer = new IronPdf.ChromePdfRenderer();
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print; // or Screen
' Pixel Perfect HTML Formatting Settings
Dim renderer As New IronPdf.ChromePdfRenderer()
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print ' or Screen
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

CSS(螢幕與PRINT)

CSS 用於控制 HTML 內容的設計與版面配置。 透過對 CSS 樣式的支援,IronPDF 能在維持轉換後 HTML 內容原始版面配置與樣式的同時,產生視覺上吸引人的 PDF 文件。

:path=/static-assets/pdf/content-code-examples/how-to/html-to-pdf-responsive-css-table-header.cs
using IronPdf;
using IronPdf.Rendering;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Change the paper size to small
renderer.RenderingOptions.SetCustomPaperSizeinPixelsOrPoints(600, 400);

// Choose screen or print CSS media
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("tableHeader.html");

pdf.SaveAs("tableHeader.pdf");
Imports IronPdf
Imports IronPdf.Rendering

Private renderer As New ChromePdfRenderer()

' Change the paper size to small
renderer.RenderingOptions.SetCustomPaperSizeinPixelsOrPoints(600, 400)

' Choose screen or print CSS media
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print

' Render HTML to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("tableHeader.html")

pdf.SaveAs("tableHeader.pdf")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

圖片(jpg、png、svg、gif 等)

使用圖片為您的 PDF 文件增添視覺元素。 當您使用 IronPDF 將圖片嵌入 PDF 文件時,這些圖片將無需依賴網際網路或有效連結即可顯示。 這意味著您可以加入視覺上吸引人的圖片來吸引讀者的注意力,或加入與 PDF 主題相關的資訊性圖片等。

:path=/static-assets/pdf/content-code-examples/how-to/add-images-to-pdfs-embed-image.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

string html = @"<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>";

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// Export PDF
pdf.SaveAs("embedImage.pdf");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private html As String = "<img src='https://ironsoftware.com/img/products/ironpdf-logo-text-dotnet.svg'>"

' Render HTML to PDF
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

' Export PDF
pdf.SaveAs("embedImage.pdf")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

JavaScript(自訂渲染延遲)

通常,HTML 內容可能包含互動式與動態元素,這些元素在使用某些 PDF 函式庫進行轉換時可能會遺失。 IronPDF 對 JavaScript 的支援,可確保轉換後的內容能保留原始的互動元素。

:path=/static-assets/pdf/content-code-examples/how-to/javascript-to-pdf-render-javascript.cs
using IronPdf;

string htmlWithJavaScript = @"<h1>This is HTML</h1>
<script>
    document.write('<h1>This is JavaScript</h1>');
    window.ironpdf.notifyRender();
</script>";

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Enable JavaScript
renderer.RenderingOptions.EnableJavaScript = true;
// Set waitFor for JavaScript
renderer.RenderingOptions.WaitFor.JavaScript(500);

// Render HTML contains JavaScript
var pdfJavaScript = renderer.RenderHtmlAsPdf(htmlWithJavaScript);

// Export PDF
pdfJavaScript.SaveAs("javascriptHtml.pdf");
Imports IronPdf

Private htmlWithJavaScript As String = "<h1>This is HTML</h1>
<script>
    document.write('<h1>This is JavaScript</h1>');
    window.ironpdf.notifyRender();
</script>"

' Instantiate Renderer
Private renderer = New ChromePdfRenderer()

' Enable JavaScript
renderer.RenderingOptions.EnableJavaScript = True
' Set waitFor for JavaScript
renderer.RenderingOptions.WaitFor.JavaScript(500)

' Render HTML contains JavaScript
Dim pdfJavaScript = renderer.RenderHtmlAsPdf(htmlWithJavaScript)

' Export PDF
pdfJavaScript.SaveAs("javascriptHtml.pdf")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

使用 WaitFor 來延遲 PDF 渲染

在渲染 PDF 文件時,有時會發生尚未取得必要資源的情況,導致渲染不完整。 透過 IronPDF,我們可以設定渲染延遲,以確保在渲染前取得所有資源。

:path=/static-assets/pdf/content-code-examples/how-to/waitfor-pageload.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render as soon as the page is loaded
renderer.RenderingOptions.WaitFor.PageLoad();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Render as soon as the page is loaded
renderer.RenderingOptions.WaitFor.PageLoad()

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

字型(網頁與圖示)

透過在 PDF 文件中加入自訂字型,您可以建立真正獨一無二的 PDF 檔案,以符合您所製作文件類型的需求。 IronPDF 簡化了此流程,讓您能透過簡潔且視覺上吸引人的字型來吸引用戶目光,或利用網頁字型確保文字在不同裝置間保持一致,無論該電腦是否具備當地字型。

:path=/static-assets/pdf/content-code-examples/how-to/webfonts-webicons-render-webfont.cs
using IronPdf;

// HTML contains webfont
var html = @"<link href=""https://fonts.googleapis.com/css?family=Lobster"" rel=""stylesheet"">
<p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>";

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Wait for font to load
renderer.RenderingOptions.WaitFor.AllFontsLoaded(2000);

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// Export the PDF
pdf.SaveAs("font-test.pdf");
Imports IronPdf

' HTML contains webfont
Private html = "<link href=""https://fonts.googleapis.com/css?family=Lobster"" rel=""stylesheet"">
<p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>"

Private renderer As New ChromePdfRenderer()

' Wait for font to load
renderer.RenderingOptions.WaitFor.AllFontsLoaded(2000)

' Render HTML to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

' Export the PDF
pdf.SaveAs("font-test.pdf")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

使用 SVG 圖形

除了將圖片渲染為 PDF 外,IronPDF 還具備將 SVG 圖形渲染為 PDF 的功能。

:path=/static-assets/pdf/content-code-examples/how-to/SVGs-render.cs
using IronPdf;

string html = "<img src='https://ironsoftware.com/img/svgs/new-banner-svg.svg' style='width:100px'>";

ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.RenderDelay(1000);

PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("svgToPdf.pdf");
Imports IronPdf

Private html As String = "<img src='https://ironsoftware.com/img/svgs/new-banner-svg.svg' style='width:100px'>"

Private renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.RenderDelay(1000)

Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("svgToPdf.pdf")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

管理字型

選擇正確的字型,以及能夠自訂和嵌入字型,是製作 PDF 檔案時至關重要的環節。 透過 IronPDF,您可以使用直觀的方法,在單一套件中管理、檢索及新增字型。

:path=/static-assets/pdf/content-code-examples/how-to/manage-font-retrieve-font.cs
using IronPdf;
using IronPdf.Fonts;
using System.Collections.Generic;

// Import PDF
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Retreive font
PdfFontCollection fonts = pdf.Fonts;
Imports IronPdf
Imports IronPdf.Fonts
Imports System.Collections.Generic

' Import PDF
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Retreive font
Private fonts As PdfFontCollection = pdf.Fonts
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明,或想進一步探索其額外功能,請參閱我們的完整操作指南

支援 UTF-8 及國際語言

由於 IronPDF 遵循 Chrome 標準,因此支援在 PDF 文件中使用 UTF-8 編碼。 這可確保所有字元皆能正確顯示,包括原始內容中使用的任何外語。 所有內容都將在最終的 PDF 文件中正確呈現。

:path=/static-assets/pdf/content-code-examples/how-to/utf-8.cs
using IronPdf;

const string html_with_utf_8 =
    @"<p>周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。
    文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。
    失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。
    陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。</p>
    <p>
    أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملاً المنتصر,
    ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط,
    زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل.
    </p>
    <p>
    ภคันทลาพาธสตาร์เซฟตี้ แชมป์ มาร์เก็ตติ้งล้มเหลวโยเกิร์ต แลนด์บาบูนอึมครึม รุสโซ แบรนด์ไคลแม็กซ์ พิซซ่าโมเดลเสือโคร่ง ม็อบโซนรายชื่อ
    แอดมิชชั่น ด็อกเตอร์ พะเรอ มาร์คเจไดโมจิราสเบอร์รี เอนทรานซ์ออดิชั่นศิลปวัฒนธรรมเปราะบาง โมจิซีเรียสวอลนัตทริปลีเมอร์ ทิป วาไรตี้บิ๊กเมเปิล
    </p>";

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8;

var pdf = renderer.RenderHtmlAsPdf(html_with_utf_8);
pdf.SaveAs("Unicode.pdf");
Imports IronPdf

Private Const html_with_utf_8 As String = "<p>周態告応立待太記行神正用真最。音日独素円政進任見引際初携食。更火識将回興継時億断保媛全職。
    文造画念響竹都務済約記求生街東。天体無適立年保輪動元念足総地作靖権瀬内。
    失文意芸野画美暮実刊切心。感変動技実視高療試意写表重車棟性作家薄井。
    陸瓶右覧撃稿法真勤振局夘決。任堀記文市物第前兜純響限。囲石整成先尾未展退幹販山令手北結。</p>
    <p>
    أم يذكر النفط قبضتهم على, الصين وفنلندا ما حدى. تم لكل أملاً المنتصر,
    ٣٠ حدى مارد القوى. شرسة للسيطرة قامفي. حتى أم يطول المحيط,
    زهاء وحلفاؤها من فعل. لم قامت الجو الساحلية وتم, ويعزى واقتصار قبل كل.
    </p>
    <p>
    ภคันทลาพาธสตาร์เซฟตี้ แชมป์ มาร์เก็ตติ้งล้มเหลวโยเกิร์ต แลนด์บาบูนอึมครึม รุสโซ แบรนด์ไคลแม็กซ์ พิซซ่าโมเดลเสือโคร่ง ม็อบโซนรายชื่อ
    แอดมิชชั่น ด็อกเตอร์ พะเรอ มาร์คเจไดโมจิราสเบอร์รี เอนทรานซ์ออดิชั่นศิลปวัฒนธรรมเปราะบาง โมจิซีเรียสวอลนัตทริปลีเมอร์ ทิป วาไรตี้บิ๊กเมเปิล
    </p>"

Private renderer = New ChromePdfRenderer()
renderer.RenderingOptions.InputEncoding = System.Text.Encoding.UTF8

Dim pdf = renderer.RenderHtmlAsPdf(html_with_utf_8)
pdf.SaveAs("Unicode.pdf")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

基礎網址與資源編碼

IronPDF 允許您設定基礎 URL,使 HTML 中的相對路徑(例如圖片、CSS 或 JavaScript)在渲染為 PDF 時能正確載入。 您亦可將資源以 base64 編碼嵌入,以確保內容自成一體且無需網路連線。

:path=/static-assets/pdf/content-code-examples/how-to/base-urls-baseurl.cs
using IronPdf;

// Instantiate ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

string baseUrl = @"C:\site\assets\";
string html = "<img src='icons/iron.png'>";

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html, baseUrl);

// Export PDF
pdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Instantiate ChromePdfRenderer
Private renderer As New ChromePdfRenderer()

Private baseUrl As String = "C:\site\assets\"
Private html As String = "<img src='icons/iron.png'>"

' Render HTML to PDF
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(html, baseUrl)

' Export PDF
pdf.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

渲染 WebGL 網站

WebGL 是用於創建互動式 3D 圖形的常用工具,但將其轉換為靜態 PDF 可能是一項艱鉅的任務。 透過 IronPDF,此流程得以盡可能無縫進行,讓開發人員在將複雜的網頁資源轉換為 PDF 時,能感到輕鬆且充滿信心。

:path=/static-assets/pdf/content-code-examples/how-to/render-webgl-render-webgl.cs
using IronPdf;

// Configure IronPdf settings
IronPdf.Installation.SingleProcess = true;
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Hardware;

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Set delay before rendering
renderer.RenderingOptions.WaitFor.RenderDelay(5000);

// Render from URL
PdfDocument pdf = renderer.RenderUrlAsPdf("https://docs.mapbox.com/mapbox-gl-js/example/geojson-layer-in-slot/");

pdf.SaveAs("webGL.pdf");
Imports IronPdf

' Configure IronPdf settings
IronPdf.Installation.SingleProcess = True
IronPdf.Installation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuModes.Hardware

Dim renderer As New ChromePdfRenderer()

' Set delay before rendering
renderer.RenderingOptions.WaitFor.RenderDelay(5000)

' Render from URL
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://docs.mapbox.com/mapbox-gl-js/example/geojson-layer-in-slot/")

pdf.SaveAs("webGL.pdf")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

Chrome PDF 渲染引擎

IronPDF 採用強大的 Chromium 引擎,讓使用者能透過 CSS 和 JavaScript 建立像素級精準的 PDF 檔案。 這創造了一種"所見即所得"的場景,讓您在將文件轉換為 PDF 時能安心無虞,消除任何疑慮。 採用此引擎可確保 PDF 渲染具備高度的相容性與效能。

:path=/static-assets/pdf/content-code-examples/how-to/ironpdf-2021-chrome-rendering-engine-eap-pixel-perfect.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.PrintHtmlBackgrounds = false;
renderer.RenderingOptions.CreatePdfFormsFromHtml = false;

PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.google.com/");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
renderer.RenderingOptions.PrintHtmlBackgrounds = False
renderer.RenderingOptions.CreatePdfFormsFromHtml = False

Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://www.google.com/")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

效能與壓縮

在處理大型 PDF 檔案或批量生成 PDF 時,效能是確保流程順暢的關鍵。 這正是 IronPDF 脫穎而出的地方,無論處理何種大小的 PDF 檔案,皆能展現令人印象深刻的處理速度。 IronPDF 為您所有的 PDF 任務提供穩定且流暢的運作效能。

在本節中,我們將深入探討 IronPDF 提供的一些功能與工具,確保無論您需要執行何種任務,都能獲得流暢的運作表現。

PDF 壓縮

請注意早期壓縮方法如 CompressStructTreeCompress(CompressionOptions) 已不再建議使用。

在 PDF 內壓縮圖片是大幅縮小 PDF 文件檔案大小的便捷方法。 較大的 PDF 檔案通常包含多張圖片,這會大幅增加 PDF 檔案的整體大小。透過壓縮這些檔案,您可以更輕鬆地分享和儲存檔案,從而節省時間和資源。

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-image.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// Compress images in the PDF
pdf.CompressAndSaveAs("compressed.pdf", 40);
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

Dim pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")

' Compress images in the PDF
pdf.CompressAndSaveAs("compressed.pdf", 40)
$vbLabelText   $csharpLabel

若需不寫入磁碟的壓縮輸出,請使用 CompressPdfToBytes 來取得位元組陣列。

byte[] compressed = pdf.Com/pressPdfToBytes();
byte[] compressed = pdf.Com/pressPdfToBytes();
Dim compressed As Byte() = pdf.CompressPdfToBytes()
$vbLabelText   $csharpLabel

或使用 CompressPdfToStream 來取得一個 Stream。

using var stream = pdf.Com/pressPdfToStream();
using var stream = pdf.Com/pressPdfToStream();
Imports System.IO

Dim stream As Stream = pdf.CompressPdfToStream()
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

非同步與多執行緒

IronPDF 支援使用 RenderHtmlAsPdfAsync 方法進行非同步 PDF 生成。 這項強大的功能讓您能夠在不影響應用程式效能的情況下,將 HTML 轉換為 PDF,並確保輸出結果的一致性。 這對於處理多份文件或整合至響應式網路 API 非常有益,讓您能完全掌控應用程式的效能。

:path=/static-assets/pdf/content-code-examples/how-to/async-async.cs
using IronPdf;
using System.Threading.Tasks;

// Instantiate ChromePdfRenderer
ChromePdfRenderer renderer = new ChromePdfRenderer();

string[] htmlStrings = {"<h1>Html 1</h1>", "<h1>Html 2</h1>", "<h1>Html 3</h1>"};

// Create an array to store the tasks for rendering
var renderingTasks = new Task<PdfDocument>[htmlStrings.Length];

for (int i = 0; i < htmlStrings.Length; i++)
{
    int index = i; // Capturing the loop variable
    renderingTasks[i] = Task.Run(async () =>
    {
        // Render HTML to PDF
        return await renderer.RenderHtmlAsPdfAsync(htmlStrings[index]);
    });
}

// Wait for all rendering tasks to complete
// await Task.WhenAll(renderingTasks);
Imports IronPdf
Imports System.Threading.Tasks

' Instantiate ChromePdfRenderer
Private renderer As New ChromePdfRenderer()

Private htmlStrings() As String = {"<h1>Html 1</h1>", "<h1>Html 2</h1>", "<h1>Html 3</h1>"}

' Create an array to store the tasks for rendering
Private renderingTasks = New Task(Of PdfDocument)(htmlStrings.Length - 1){}

For i As Integer = 0 To htmlStrings.Length - 1
	Dim index As Integer = i ' Capturing the loop variable
	renderingTasks(i) = Task.Run(Async Function()
		' Render HTML to PDF
		Return Await renderer.RenderHtmlAsPdfAsync(htmlStrings(index))
	End Function)
Next i

' Wait for all rendering tasks to complete
' await Task.WhenAll(renderingTasks);
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

自訂記錄

IronPDF 支援自訂記錄功能,讓您能將記錄訊息傳送至您的記錄器。 透過將 LoggingMode 設定為 LoggingModes.Custom,並將您的自訂記錄器指派給 CustomLogger,即可控制日誌訊息的處理方式與位置。 這對於將 IronPDF 日誌整合至您現有的日誌記錄基礎架構非常有用。

:path=/static-assets/pdf/content-code-examples/how-to/custom-logging-custom-logging.cs
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom;
IronSoftware.Logger.CustomLogger = new CustomLoggerClass("logging");
IronSoftware.Logger.LoggingMode = IronSoftware.Logger.LoggingModes.Custom
IronSoftware.Logger.CustomLogger = New CustomLoggerClass("logging")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

將 PDF 檔案扁平化

IronPDF 中的 Flatten 方法是一項強大的工具,可讓您將 PDF 中的互動式及可填寫小工具設為不可編輯,以滿足各種需求。 它會將 PDF 文件扁平化,在保留視覺版面的同時防止任何進一步編輯,從而確保文件的完整性。

:path=/static-assets/pdf/content-code-examples/how-to/pdf-image-flatten-csharp-flatten-pdf.cs
using IronPdf;

// Select the desired PDF File
PdfDocument pdf = PdfDocument.FromFile("before.pdf");

// Flatten the pdf
pdf.Flatten();

// Save as a new file
pdf.SaveAs("after_flatten.pdf");
Imports IronPdf

' Select the desired PDF File
Private pdf As PdfDocument = PdfDocument.FromFile("before.pdf")

' Flatten the pdf
pdf.Flatten()

' Save as a new file
pdf.SaveAs("after_flatten.pdf")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

PDF 檢視與列印

PRINT to Physical Printer

此功能讓使用者能夠產生 PDF 檔案,而非直接將文件傳送至印表機。 當使用 Print 時,系統會建立一個 PDF 檔案並儲存於本機。您亦可透過向 Print 方法提供印表機名稱,指定其他印表機。

:path=/static-assets/pdf/content-code-examples/how-to/print-pdf-print.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>");

// Send the document to "Microsoft Print to PDF" printer
pdf.Print("Microsoft Print to PDF");
Imports IronPdf

Private renderer As New ChromePdfRenderer()

Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Test printing</h1>")

' Send the document to "Microsoft Print to PDF" printer
pdf.Print("Microsoft Print to PDF")
$vbLabelText   $csharpLabel

如需更詳細的程式碼片段說明及探索其額外功能,請參閱我們的完整操作指南

結論

IronPDF 賦予 .NET 開發人員靈活性,使其能夠建立 Professional 且高品質的 PDF 檔案。 它能無縫整合現代網路資源,並提供頂級的效能表現。 無論是渲染動態 HTML 內容、嵌入自訂字型與圖片,還是透過壓縮與多執行緒技術來優化大規模 PDF 生成,IronPDF 都能提供您所需的靈活性與強大功能——且完全無需依賴外部元件。

透過結合豐富的資產支援與以效能為導向的工具(例如非同步渲染和自訂記錄功能),IronPDF 確保您的應用程式保持快速、可擴展且視覺上的一致性。 無論您是製作簡單的報告,還是建置 Enterprise 級的文件自動化系統,IronPDF 都能讓您每次輕鬆產出美觀且高效的 PDF 文件。

既然您已了解 IronPDF 的功能,現在正是時候在您的 .NET 專案中建立更聰明、更快速的 PDF 工作流程。

常見問題

如何使用 IronPDF 來優化 PDF 效能?

若要使用 IronPDF 優化 PDF 效能,您可以利用其內建的優化功能,例如 CompressAndSaveAs 方法來壓縮圖片、移除 PDF 結構樹,以及進行字型優化。這能確保您的 PDF 檔案載入速度更快,且效能更佳。

在 PDF 生成情境中,何謂網頁資產?

網頁資源是指可嵌入 PDF 文件中的外部資源,例如圖片、樣式表和腳本。使用 IronPDF,您可以輕鬆嵌入這些資源,以提升 PDF 的視覺效果與功能。

如何使用 IronPDF 將圖片加入 PDF 檔案?

您可以透過 IronPDF 將圖片加入 PDF 檔案,方法是將圖片直接嵌入 HTML 原始碼中,或透過外部網址引用圖片。IronPDF 支援多種圖片格式,讓您的 PDF 檔案能呈現豐富的視覺內容。

IronPDF 能否協助縮小我的 PDF 檔案大小?

是的,IronPDF 可透過 CompressAndSaveAs 方法來縮小 PDF 檔案大小,該方法會以可設定的 JPEG 品質 (0–100) 壓縮內嵌圖片,並可選擇性地移除 PDF 結構樹。若用於記憶體內處理, CompressPdfToBytesCompressPdfToStream 可直接返回壓縮後的 PDF 檔案,無需寫入磁碟。此舉能產生體積更小、更易於管理的 PDF 文件。

IronPDF 提供哪些功能來優化 PDF 中的字型?

IronPDF 提供字型子集化與壓縮功能,確保僅將必要的字型資料納入 PDF 檔案中。此舉可在不影響文字品質的前提下,減少檔案大小並提升載入速度。

是否可以在使用 IronPDF 生成的 PDF 中包含 CSS 樣式?

是的,IronPDF 允許您在 PDF 文件中加入 CSS 樣式。您可以直接將 CSS 嵌入 HTML 中,或連結至外部樣式表,以確保您的 PDF 文件保持一致且 Professional 的外觀。

IronPDF 如何處理 PDF 中的外部資源?

IronPDF 可透過直接嵌入或引用 URL 的方式,整合外部資源(例如圖片和樣式表)。這使得使用者能夠建立動態且視覺效果出色的 PDF 檔案,並將各種網頁資源納入其中。

using IronPDF 優化 PDF 檔案有哪些好處?

using IronPDF 優化 PDF 檔案可帶來多項好處,包括加快載入速度、縮小檔案大小,以及提升文件效能。經過優化的 PDF 檔案在分享或下載時,也能減少頻寬消耗。

如何確保使用 IronPDF 時,PDF 在不同裝置上的顯示效果保持一致?

為確保跨裝置的一致性,請在 HTML 和 CSS 中運用 IronPDF 對媒體查詢及響應式設計技術的支援。這能讓 PDF 根據檢視環境自動調整版面配置。

.NET 10 即將推出 — IronPDF 是否相容,且能帶來哪些好處?

是的 — IronPDF 完全相容於 .NET 10。

Kye Stuart
技術撰稿人

Kye Stuart 在 Iron Software 將編程熱情與寫作技巧完美結合。他們曾於 Yoobee College 修習軟體部署課程,如今專注於將複雜的技術概念轉化為淺顯易懂的教育內容。Kye 重視終身學習,並樂於迎接新的技術挑戰。

工作之餘,他熱衷於 PC 遊戲、在 Twitch 進行直播,以及園藝和遛狗(愛犬名為 Jaiya)等戶外活動。Kye 直率坦誠的作風,使其成為 Iron Software 實現「為全球開發者解構技術神秘面紗」這項使命的關鍵人物。

準備開始了嗎?
Nuget 下載 18,918,602 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 轉為 PDF。