跳過到頁腳內容
使用IRONPDF

.NET PDF創建(使用IronPDF的開發者教程)

在大多數現代 .NET 專案中,最終您將需要建立和操作 PDF 文件。 無論是建立簡單的 PDF 文件、將多個 PDF 合併為單個文件,還是確保您的應用程式能夠處理主要操作系統中的多語言 PDF 文件。 無論是發票、客戶報告還是網頁內容的快照,可靠的 PDF 建構方式可以節省時間,使您的應用程式看起來更專業。

開發人員在這裡經常會遇到一些障礙:在不同的機器上保持布局一致性、處理圖像和表格,或確保 JavaScript 驅動的內容能正確顯示在最終文件中。 選擇合適的 .NET PDF 庫來進行 C# PDF 建立可以幫助您避免面對這些問題的痛苦。

在本文中,我們將介紹如何在 .NET 應用程式中使用 IronPDF 建立 PDF 文件。 首先,我們將從基本的 HTML 到 PDF 轉換開始,然後轉向添加高級功能,例如頁眉、頁腳和安全性。 在我們今天的交流結束時,您將成為使用 IronPDF 的 PDF 建立專家。

在 .NET 中建立 PDF 的主要方法有哪些?

在 .NET 應用程式中開發 PDF 生成功能時,開發人員通常可以選擇三個主要方法。 HTML 到 PDF 的轉換利用了現有的網頁技術,允許您使用熟悉的 HTML 和 CSS 設計文件,然後將它們轉換為 PDF 格式。 編程文檔構建涉及到通過程式碼逐個元素構建 PDF,提供對文檔每個方面的精確控制。 模板化生成將預定義的文檔模板與動態數據結合,非常適合創建標準化的文檔,例如發票或證書。

HTML 到 PDF 的方法已成為大多數現代應用程式的首選方法。 它消除了與 PDF 特定 API 相關的學習曲線,並使開發人員能夠利用他們現有的網頁開發技能。 此方法還可確保網頁視圖與生成的 PDF 之間的一致性,這在創建需要匹配應用設計語言的客戶面向文件時尤為重要。

IronPDF streamlines all three approaches through its comprehensive API, but truly excels at HTML 到 PDF 轉換 方面表現出色,產生像素完美的結果。 這意味著您的 PDF 看起來將完全像從 Google Chrome 列印出來的那樣,並配有適當的 CSS3 樣式和 JavaScript 執行。

這些方法為開發人員提供了對流行文檔格式(如 XML Paper Specification、Microsoft Word 和 Adobe Acrobat 替代品)的全面支持,確保與現有的 PDF 文件和其他文件格式兼容。

IronPDF 如何使 PDF 建立變得簡單而強大?

IronPDF 通過將企業級能力與開發人員可以快速掌握的直觀 API 結合起來,革新了 .NET 中的 PDF 生成。 IronPDF 的核心是使用 Chromium 引擎,這同樣是支持 Google Chrome 的引擎,確保您的 HTML 與世界上最流行的瀏覽器中的顯示完全相同。 這消除了困擾其他 PDF 庫的 CSS 兼容性問題和 JavaScript 渲染問題。

該庫的架構優先考慮開發人員的生產力,而不犧牲功能。 與需要廣泛的 PDF 格式知識或複雜定位計算的庫不同,IronPDF 允許您使用熟悉的網頁技術。 您可以像往常一樣編寫 HTML 和 CSS,IronPDF 會在幕後處理 PDF 生成的複雜細節。

將 IronPDF 設置在您的 .NET 9 專案中只需幾分鐘。 打開您的包管理控制台,運行:

Install-Package IronPdf

安裝後,您就可以立即開始生成 PDF。 該庫包含所有必要的依賴項,並且對於標準使用案例不需要額外配置。 它支持 .NET 9、.NET 8、.NET 7、.NET 6、.NET 5、.NET Core、.NET Standard 和 .NET Framework 4.6.2+,確保與幾乎所有的 .NET 專案兼容。

NuGet 用 NuGet 安裝

PM >  Install-Package IronPdf

NuGet 查看 https://www.nuget.org/packages/IronPdf 以快速安裝。超過 1000 萬次下載,它正在用 C# 改變 PDF 開發。 您還可以下載 DLLWindows 安裝程序

如何將 HTML 轉換為 PDF 文件

將 HTML 內容直接轉換為 PDF 代表了 .NET 中文件生成的最簡單途徑。 這種方法在您需要根據用戶輸入、數據庫內容或 API 響應動態生成 PDF 文件時效果突出。 IronPDF 的 ChromePdfRenderer 類使這一過程變得異常簡單,同時提供廣泛的自定義選項。

以下是如何從包含樣式發票的 HTML 字符串生成 PDF:

using IronPdf;
using IronPdf.Rendering;
// Initialize the Chrome renderer
var renderer = new ChromePdfRenderer();
// Configure rendering options for professional output
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Create HTML content with embedded CSS
string htmlContent = @"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; }
            .header { background-color: #2c3e50; color: white; padding: 20px; }
            .content { padding: 20px; }
            table { width: 100%; border-collapse: collapse; }
            th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #2024-001</h1>
        </div>
        <div class='content'>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Professional License</td><td>1</td><td>$799</td></tr>
            </table>
        </div>
    </body>
    </html>";
// Generate the PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save to file
pdf.SaveAs("invoice.pdf");
using IronPdf;
using IronPdf.Rendering;
// Initialize the Chrome renderer
var renderer = new ChromePdfRenderer();
// Configure rendering options for professional output
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Create HTML content with embedded CSS
string htmlContent = @"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; }
            .header { background-color: #2c3e50; color: white; padding: 20px; }
            .content { padding: 20px; }
            table { width: 100%; border-collapse: collapse; }
            th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #2024-001</h1>
        </div>
        <div class='content'>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Professional License</td><td>1</td><td>$799</td></tr>
            </table>
        </div>
    </body>
    </html>";
// Generate the PDF
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// Save to file
pdf.SaveAs("invoice.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此方法允許您僅用幾行 C# 代碼將 HTML 轉換為 PDF 文件。 IronPDF 支持例如 PNG 和 JPEG 的圖片格式、可縮放矢量圖形(SVG)和自定義字體,使您可以精確控制文件布局和文件大小。

ChromePdfRenderer 自動處理您的 CSS,包括現代 CSS3 功能,比如 flexbox 和網格布局。 它能夠同樣熟練地處理外部樣式表、嵌入樣式和內聯 CSS。 渲染引擎執行 JavaScript允許您在 HTML 中包括動態內容生成或客戶端計算。

對於涉及外部資產的複雜場景,IronPDF 提供基本 URL 參數

// Render HTML with external images and stylesheets
var pdf = renderer.RenderHtmlAsPdf(htmlContent, @"C:\Assets\");
// Render HTML with external images and stylesheets
var pdf = renderer.RenderHtmlAsPdf(htmlContent, @"C:\Assets\");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這告訴 IronPDF 可以在哪裡找到圖片、CSS 文件和其他資源,確保所有元素在最終的 PDF 中正確渲染。 該庫還支持將圖像作為 Base64嵌入到 HTML 中,以用於完全自包含的文件。

輸出

.NET PDF 創建(使用 IronPDF 的開發者教程):圖 3 - HTML 到 PDF 輸出

如何從 URL 和網頁生成 PDF?

將即時網頁轉換為 PDF 開啟了文檔、存檔和報告生成的強大可能性。 IronPDF 在這項任務中表現出色,從簡單的靜態頁面到帶有大量 JavaScript 使用的複雜單頁應用都能處理。 該庫等待頁面資源加載和 JavaScript 執行,確保您捕獲完全渲染的頁面。

從 URL 創建 PDF 只需幾行代碼:

using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure for optimal web page capture
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(3000); // Wait for JavaScript
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("website-capture.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
// Configure for optimal web page capture
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.JavaScript(3000); // Wait for JavaScript
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
// Convert URL to PDF
var pdf = renderer.RenderUrlAsPdf("https://apple.com");
pdf.SaveAs("website-capture.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

當處理異步加載內容的頁面時,RenderDelay 選項顯得特別有價值。 通過指定以毫秒為單位的延遲,您可以確保 AJAX 調用完成,並且動態內容渲染完成後再開始 PDF 生成。 此功能使 IronPDF 與那些可能捕獲不完整頁面的簡單轉換器區別開來。

輸出

.NET PDF 創建(使用 IronPDF 的開發者教程):圖 4 - URL 到 PDF 輸出

如何從頭開始編程生成 PDF?

雖然 HTML 到 PDF 轉換可以優雅地處理大多數使用案例,有時您需要對文檔構建進行精確控制。 IronPDF 提供的全面 API 支持逐元素構建 PDF,非常適合需要精確定位或與非 HTML 數據源一起工作的場景。

程序化創建新 PDF 文件使開發人員對 PDF 對像、PDF 字符串和文件結構擁有完全控制。 當與原始文本一起使用或將多個數據源集成到複雜文檔中時,這一級別的 PDF 操作是理想的。

程序化創建新的 PDF 文件並添加內容:

using IronPdf;
// Start with a blank document
PdfDocument pdf = new PdfDocument(270, 270);
// Apply text stamps with precise positioning
TextStamper textStamper = new TextStamper()
{
    Text = "Confidential Document",
    FontSize = 40,
    Color = IronSoftware.Drawing.Color.Black,
    IsBold = true,
    Opacity = 50,
    VerticalAlignment = VerticalAlignment.Middle,
    HorizontalAlignment = HorizontalAlignment.Center
};
// Add images
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    HorizontalAlignment = HorizontalAlignment.Center,
        VerticalAlignment = VerticalAlignment.Bottom
    };
// Apply the stamps
Stamper[] stamps = {textStamper, imageStamper };
pdf.ApplyMultipleStamps(stamps);
// Save the PDF
pdf.SaveAs("programmatic-document.pdf");
using IronPdf;
// Start with a blank document
PdfDocument pdf = new PdfDocument(270, 270);
// Apply text stamps with precise positioning
TextStamper textStamper = new TextStamper()
{
    Text = "Confidential Document",
    FontSize = 40,
    Color = IronSoftware.Drawing.Color.Black,
    IsBold = true,
    Opacity = 50,
    VerticalAlignment = VerticalAlignment.Middle,
    HorizontalAlignment = HorizontalAlignment.Center
};
// Add images
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    HorizontalAlignment = HorizontalAlignment.Center,
        VerticalAlignment = VerticalAlignment.Bottom
    };
// Apply the stamps
Stamper[] stamps = {textStamper, imageStamper };
pdf.ApplyMultipleStamps(stamps);
// Save the PDF
pdf.SaveAs("programmatic-document.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

此方法使您可以完全控制元素的位置、圖層和格式。 您可以通過組合多個郵票、調整水印的不透明度和精確控制頁面上每個元素的位置,構建複雜的文檔。

.NET PDF 創建(使用 IronPDF 的開發者教程):圖 5 - 程式生成的 PDF 文件

哪些高級功能能夠增強您的 PDF 文件?

專業的 PDF 文件通常需要超越基本內容渲染的復雜功能。 IronPDF 通過簡單、直觀的 API 提供企業級功能,不需要深入了解 PDF 格式知識。 讓我們來探討那些能夠將普通 PDF 轉變為專業文檔的絕技。

頁眉和頁腳

在所有頁面之間添加一致的頁眉和頁腳增補了文檔的專業性和導航。 IronPDF 支持基於文本和基於 HTML 的頁眉和頁腳:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() {
    HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
    Height = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() {
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    Height = 20
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() {
    HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
    Height = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() {
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    Height = 20
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

{page} 和 {total-pages} 占位符自動填充正確的值,消除了手動計算頁面的麻煩。

輸出

.NET PDF 創建(使用 IronPDF 的開發者教程):圖 6 - 頁眉和頁腳輸出

安全和加密

保護敏感文件需要強大的安全功能。 IronPDF 實施行業標準加密和權限控制:

// Set document passwords and permissions
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Configure detailed permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
// Set document passwords and permissions
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
// Configure detailed permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這些安全設置確保您的文件保持機密和防篡改,滿足敏感商務文件的合規要求。 根據Microsoft 的安全文檔,正確加密對於保護企業應用中的敏感數據至關重要。

安全文件屬性

.NET PDF 創建(使用 IronPDF 的開發者教程):圖 7 - PDF 安全屬性

表單和交互性

交互表單允許用戶填寫 PDF 表單字段、提交表单数据,甚至嵌入数字签名以符合合规要求。 IronPDF 簡化了表單填充並確保了在基於 .NET 的設備中一致的文件屬性。

將靜態文檔轉變為可供用戶數字化完成交互式 PDF 表單

// HTML forms automatically convert to PDF forms
string formHtml = @"
    <form>
        <label>Name:</label>
        <label>Email:</label>
        <label>Subscribe:</label>
        <button type='submit'>Submit</button>
    </form>";
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
var interactivePdf = renderer.RenderHtmlAsPdf(formHtml);
// HTML forms automatically convert to PDF forms
string formHtml = @"
    <form>
        <label>Name:</label>
        <label>Email:</label>
        <label>Subscribe:</label>
        <button type='submit'>Submit</button>
    </form>";
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
var interactivePdf = renderer.RenderHtmlAsPdf(formHtml);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出

.NET PDF 創建(使用 IronPDF 的開發者教程):圖 8 - 交互式 PDF 輸出

應該為您的項目選擇哪種 PDF 創建方法?

選擇最佳的 PDF 生成方法取決於您的具體要求和現有架構。 每種方法都為不同的項目需求提供獨特的優勢。

當您擁有現有的網頁內容、需要保持與網應用設計的一致性或想要利用 CSS 進行樣式設計時,請選擇HTML 到 PDF 轉換。 這種方法在需要響應設計原則的報告、發票和任何文檔中特別有效。 使用熟悉的網頁技術顯著減少了開發時間和維護負擔。 查看我們的HTML 到 PDF 示例,了解其實際運用。

當您需要對元素定位有像素完美的控制、正在處理非 HTML 數據源,或者需要複雜的分層和定位時,請選擇編程生成。 此方法適合需要精確布局的技術圖紙、證書和需要精確規範的文檔。 我們的API 參考為所有編程功能提供了全面的文檔。

考慮URL 到 PDF 轉換來捕獲即時數據、創建網站存檔或從現有的網應用生成報告。 這種方法消除了重新創建現有網功能的需要,確保您的 PDF 始終反映最新的信息。

為了獲得最大的靈活性,在單一文件中結合方法。 首先將 HTML 轉換為 PDF 以獲取主要內容,然後合併編程元素,例如水印或郵票。 這種混合方法利用了每種方法的優勢,同時保持代碼簡潔。

.NET PDF 創建(使用 IronPDF 的開發者教程):圖 9 - PDF 創建方法

立即開始使用 IronPDF。
green arrow pointer

今日開始使用 IronPDF

使用 IronPDF 開始您的 PDF 生成之旅需要最少的設置,但可以立即看到結果。 IronPDF 將 PDF 生成從一項複雜的挑戰轉化為一個簡單的任務。 其基於 Chrome 的渲染確保完美的保真度,而直觀的 API 保持您的代碼清潔和可維護。 無論您是在構建新應用程式還是在增強現有應用程式,IronPDF 都提供了實施專業 PDF 功能所需的工具。

該庫的廣泛功能組超出了涵蓋您基本 .NET PDF 創建需求的範疇。 Explore our tutorials for in-depth guides on specific scenarios, browse code examples for ready-to-use solutions, or dive into the comprehensive documentation to master every aspect of PDF generation in .NET.

準備好改革您的 PDF 生成工作流程了嗎? 立即開始您的免費試用並體驗像素完美的渲染和開發人員友好的 API 所帶來的不同。 有專門的支持和定期更新,您將在幾分鐘內生成專業的 PDF,而不是幾小時。

對於生產部署,探索我們設計用於匹配您的項目規模和需求的靈活許可選項。 加入數以千計的開發人員,他們信任 IronPDF 來滿足其關鍵任務的 PDF 生成需求。 Iron Suite 也提供了超越 PDF 的全面文件處理能力,為所有您的文件操作需求提供完整的解決方案。

常見問題解答

IronPDF 在 .NET 專案中的主要用途是什麼?

IronPDF 主要用於 .NET 專案中,用於建立、編輯和提取 PDF 文件中的內容,確保開發人員能夠在應用程式中有效地管理 PDF。

IronPDF 如何協助管理多語言 PDF 文件?

IronPDF 支援多語言 PDF 文檔,使開發人員能夠在主流作業系統上無縫建立和操作不同語言的 PDF 文件。

IronPDF 能否合併多個 PDF 文件?

是的,IronPDF 可以將多個 PDF 文件合併成一個文檔,這對於編制報告或將各種文檔來源合併到一個文件中非常有用。

IronPDF可以建立哪些類型的文件?

使用 IronPDF,開發人員可以建立各種類型的文檔,例如發票、客戶報告和網頁內容快照,從而提升應用程式的專業性。

為什麼在 .NET 應用程式中擁有可靠的 PDF 創建工具如此重要?

像 IronPDF 這樣可靠的 PDF 建立工具可以節省時間,並透過確保文件管理流程流暢且專業來改善使用者體驗。

IronPDF是否相容於主流作業系統?

是的,IronPDF 的設計旨在與主流作業系統相容,使其成為 .NET 開發人員進行跨平台專案開發時的多功能選擇。

IronPDF 如何改善開發流程?

IronPDF 簡化了 PDF 的建立和操作流程,使開發人員能夠專注於專案的其他關鍵方面,同時確保高品質的文件處理。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。