跳過到頁腳內容
使用IRONPDF

如何使用C# PDFWriter創建PDF

用C#編寫程式來創建PDF文件曾是一件令人頭痛的事情。 大多數C# PDFWriter解決方案涉及複雜的API和大量樣板代碼來生成一個簡單的PDF文件。如果你嘗試過舊的開源庫,你就知道它有多令人沮喪。

IronPDF改變了這一切。 只需幾行代碼,你就可以創建PDF文件,添加新頁面、段落、圖像、頁眉和頁碼,並保存它們,而無需處理低級細節。

在本文中,我們將向您展示如何使用IronPDF的文檔對象、ChromePdfRenderer和PDF生成方法直接從Visual Studio中在.NET Framework或.NET Core中製作專業的PDF文件。 最後,無論是快速的“Hello World”測試還是完整的發票,您都可以準備生成自己的PDF文件。

C#中的PDFWriter是什麼?

PDFWriter是一個文檔對象,讓開發人員能夠創建PDF文件,添加段落、圖像、頁眉,並以程式化方式操作頁面。 傳統的庫經常需要手動定位、複雜的計算和顯式的資源管理。

IronPDF簡化了所有這些。 您可以使用HTML內容、CSS從熟悉的C#環境如使用static void Main(string[] args)或與MemoryStream等標準類一起創建PDF文件。

像iTextSharp這樣的一些庫有一個名為PdfWriter的類,但在C#中,PDFWriter這個術語通常指任何程序化地生成PDF文件的組件或庫。

從低級操作轉換到高級生成可以提高生產力。 在Visual Studio或您的IDE中的新PDFDocument實例上,您可以用最少的代碼創建PDF。

如下所示,像iTextSharp這樣的傳統PDFWriter庫需要很多樣板,而IronPDF只需幾行生成相同的PDF文件,更快、更簡單且更不易出錯。

如何在您的C#項目中安裝IronPDF?

開始使用IronPDF不到一分鐘。 最簡單的安裝方法是使用NuGet包管理器:

Install-Package IronPdf

或者,在Visual Studio中:

  1. 右鍵單擊 Solution Explorer 中的項目
  2. 選擇“管理 NuGet 包”
  3. 搜索"IronPDF"
  4. 點擊安裝

有關詳細的平台特定安裝,請查看IronPDF安裝指南

如何使用IronPDF創建您的第一個PDF?

與傳統的PDFWriter實現不同,在IronPDF中,您不需要獨立的PDFWriter寫入類變量。 渲染器和PdfDocument對象內部處理所有寫入任務。 這裡是完整的工作範例:

using IronPdf;
// Instantiate the PDF renderer
var renderer = new ChromePdfRenderer();
// Create PDF from HTML string
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is my first PDF!</p>");
// Save the PDF
pdf.SaveAs("output.pdf");
using IronPdf;
// Instantiate the PDF renderer
var renderer = new ChromePdfRenderer();
// Create PDF from HTML string
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is my first PDF!</p>");
// Save the PDF
pdf.SaveAs("output.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ChromePdfRenderer內部處理所有的複雜性,為您的內容提供像素完美的渲染到一個新文檔中。

注意:您可以輕鬆添加圖像、新頁面、頁眉和新段落,只需幾行,利用IronPDF的方法和文檔對象的功能。

如何將HTML轉換為PDF文件

當生成複雜的PDF文件時,IronPDF的真正力量顯現出來。 無論是從現有網頁轉換HTML為PDF,還是創建動態報告,HTML到PDF轉換都保持了完整的保真度:

// Convert a URL to PDF
var urlPdf = renderer.RenderUrlAsPdf("https://example.com");
urlPdf.SaveAs("website.pdf");
// Convert an HTML file with IronPDF's PDF writer
var filePdf = renderer.RenderHtmlFileAsPdf("example-invoice.html");
filePdf.SaveAs("invoice.pdf");
// Use advanced rendering options for your C# PDF generator
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.EnableJavaScript = true;
// Convert a URL to PDF
var urlPdf = renderer.RenderUrlAsPdf("https://example.com");
urlPdf.SaveAs("website.pdf");
// Convert an HTML file with IronPDF's PDF writer
var filePdf = renderer.RenderHtmlFileAsPdf("example-invoice.html");
filePdf.SaveAs("invoice.pdf");
// Use advanced rendering options for your C# PDF generator
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.EnableJavaScript = true;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

渲染器支持完整的CSS3、JavaScript執行和響應式佈局。 這確保您的PDF看起來完全如同預期。 有關渲染選項的更多詳細信息,請參見IronPDF文檔

HTML文件輸出

如何使用C# PDFWriter創建PDF:圖5 - 將HTML文件在轉換為PDF文檔的前後

實際使用案例:使用IronPDF生成PDF文件

在C#中,現實世界的PDF生成通常涉及動態數據。 以下是如何使用IronPDF的PDF創建API來創建專業發票。 下面的代碼是一個發票的示例模板。

string invoiceHtml = $@"
    <html>
    <head>
        <style>
            body {{ font-family: Arial; }}
            .header {{ background: #f0f0f0; padding: 20px; }}
            .total {{ font-weight: bold; font-size: 18px; }}
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #{invoiceNumber}</h1>
            <p>Date: {DateTime.Now:yyyy-MM-dd}</p>
        </div>
        <table>
            <tr><td>Product</td><td>Quantity</td><td>Price</td></tr>
            {GenerateLineItems()}
        </table>
        <p class='total'>Total: ${totalAmount:F2}</p>
    </body>
    </html>";
// Use IronPDF's C# PDF writer to create the document
var invoicePdf = renderer.RenderHtmlAsPdf(invoiceHtml);
invoicePdf.SaveAs($"invoice-{invoiceNumber}.pdf");
string invoiceHtml = $@"
    <html>
    <head>
        <style>
            body {{ font-family: Arial; }}
            .header {{ background: #f0f0f0; padding: 20px; }}
            .total {{ font-weight: bold; font-size: 18px; }}
        </style>
    </head>
    <body>
        <div class='header'>
            <h1>Invoice #{invoiceNumber}</h1>
            <p>Date: {DateTime.Now:yyyy-MM-dd}</p>
        </div>
        <table>
            <tr><td>Product</td><td>Quantity</td><td>Price</td></tr>
            {GenerateLineItems()}
        </table>
        <p class='total'>Total: ${totalAmount:F2}</p>
    </body>
    </html>";
// Use IronPDF's C# PDF writer to create the document
var invoicePdf = renderer.RenderHtmlAsPdf(invoiceHtml);
invoicePdf.SaveAs($"invoice-{invoiceNumber}.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

這種方法結合了HTML模板的靈活性和PDF輸出的可靠性,這使其成為生成發票、報表、證書和其他商業文件的理想選擇。 了解更多關於在ASP.NET中創建PDF報告

輸出

如何用C# PDFWriter創建PDF:圖6 - 生成的PDF發票輸出

哪些高級功能能增強您的PDFWriter?

IronPDF超越基本的PDF創建,提供企業級功能:

  • 頁眉和頁腳:使用HtmlHeaderFooter添加頁碼和品牌
  • 數字簽名:使用加密簽名保護文件
  • 水印:使用ApplyStamp()添加新圖像或自定義文本水印
  • 加密:使用密碼保護敏感內容
  • 表單字段:創建可填寫的PDF表單,具有互動元素
  • 頁面操作:輕鬆合併、拆分、創建自定義頁面大小和旋轉頁面

這是一個實際的範例,為您的C# PDF文件添加頁碼的頁眉:

// Configure headers for your .NET PDF writer
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
    MaxHeight = 25
};
// Add page numbers to PDF programmatically
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    MaxHeight = 20
};
// Configure headers for your .NET PDF writer
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Annual Report 2024</div>",
    MaxHeight = 25
};
// Add page numbers to PDF programmatically
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    MaxHeight = 20
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

當我們使用這個時,我們可以在頁腳上生成帶有頁碼的PDF文件,並有一個自定義頁眉。 為了演示,我將從一個HTML字符串創建一個簡單的多頁面PDF:

// Generate long HTML content to create multiple pages for demonstration
// Multi-page HTML with explicit page breaks
string multiPageHtml = "";
for (int i = 1; i <= 5; i++) // 5 pages
{
    multiPageHtml += $@"
            <div style='page-break-after: always;'>
                <h1>Section {i}</h1>
                <p>This is section {i} of the report. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
                This content will appear on its own page thanks to the CSS page-break.</p>
            </div>";
}
//render HTML string a PDF
var multipagePdf = renderer.RenderHtmlAsPdf(multiPageHtml);
//save PDF
multipagePdf.SaveAs("multiPageReport.pdf");
// Generate long HTML content to create multiple pages for demonstration
// Multi-page HTML with explicit page breaks
string multiPageHtml = "";
for (int i = 1; i <= 5; i++) // 5 pages
{
    multiPageHtml += $@"
            <div style='page-break-after: always;'>
                <h1>Section {i}</h1>
                <p>This is section {i} of the report. Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
                This content will appear on its own page thanks to the CSS page-break.</p>
            </div>";
}
//render HTML string a PDF
var multipagePdf = renderer.RenderHtmlAsPdf(multiPageHtml);
//save PDF
multipagePdf.SaveAs("multiPageReport.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

輸出 with Page Numbers

如何使用C# PDFWriter創建PDF:圖7 - 來自上面代碼範例的PDF輸出

為什麼選擇IronPDF來滿足您的C# PDF生成需求?

IronPDF使得在C#中生成PDF既簡單又可靠。 您不需要專門的PdfWriter類,而是使用IronPDF,渲染器和PdfDocument對象內部處理一切,從HTML內容到頁面大小、頁眉和頁腳。 無論您是在創建與Microsoft Office集成的發票、報告還是證書,IronPDF都能幫助您用幾行代碼完成任務。

憑藉良好的文檔、強大的支持選項和免費試用版,開始使用變得簡單。 您可以嘗試新的PDF文件,添加圖像或調整字體大小和頁面佈局而不會頭疼。 IronPDF將PDF創建從一個技術繁瑣的工作轉變為流暢、高效的工作流程。

立即開始使用 IronPDF。
green arrow pointer

準備好讓您的C# PDF writer工作流程現代化? 開始免費試用,體驗IronPDF如何簡化.NET中的PDF創建。 憑藉全面的文檔和快速的支持,您將在幾分鐘內生成專業的PDF,而不是幾個小時。

立即使用IronPDF改變您的文檔創建,加入數以千計已經切換到使用現代C# PDF生成的開發者行列。

常見問題解答

什麼是 C# PDFWriter?

C# PDFWriter 是一款允許開發人員使用 C# 程式語言以程式設計方式建立 PDF 文件的工具。

為什麼開發者應該選擇 C# PDFWriter?

開發人員應該選擇 C# PDFWriter,因為它簡化了建立 PDF 的過程,減少了對複雜 API 和樣板程式碼的需求。

IronPDF 如何增強 C# 中的 PDF 建立功能?

IronPDF 提供了一個簡化的 API,使開發人員更輕鬆地直接在 C# 應用程式中產生、操作和自訂 PDF 文件。

老舊的開源庫存在哪些挑戰?

較舊的開源程式庫通常具有複雜的 API 和大量的樣板程式碼,使得 PDF 建立變得繁瑣且耗時。

IronPDF 能否處理複雜的 PDF 建立任務?

是的,IronPDF 旨在有效處理簡單和複雜的 PDF 創建任務,並提供眾多自訂和自動化功能。

與其他PDF庫相比,使用IronPDF有哪些優勢?

IronPDF 提供使用者友善的 API、全面的文件和強大的功能,可縮短開發時間並提高 PDF 輸出品質。

IronPDF適合C#開發初學者嗎?

是的,IronPDF 適合初學者,因為它透過簡單的程式碼範例和豐富的支援資源簡化了 PDF 的建立。

IronPDF 如何與 .NET 應用程式整合?

IronPDF 可與 .NET 應用程式無縫集成,讓開發人員可以使用 C# 將 PDF 功能直接整合到他們的專案中。

IronPDF 為開發者提供哪些支援?

使用 IronPDF 的開發者可以獲得全面的文件、社區論壇和技術支持,以幫助解決任何開發難題。

IronPDF 可以同時用於網頁和桌面應用程式嗎?

是的,IronPDF 既可用於網頁應用程序,也可用於桌面應用程序,在跨不同平台生成和管理 PDF 文件方面提供了靈活性。

IronPDF 是否支援最新的 .NET 10 版本?

是的,IronPDF 完全支援 .NET 10,以及 .NET 9、.NET 8、.NET 7、.NET 6、.NET Core 和 .NET Framework,使開發人員能夠在現代 .NET 10 應用程式中使用 C# PDFWriter 和相關 API。

Curtis Chau
技術作家

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

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