跳過到頁腳內容
使用IRONPDF

適用於.NET Core的PDF API:在C#中生成和編輯PDF

 IronPDF .NET Core PDF API 概述,並排顯示程式碼編輯器、HTML 到 PDF 轉換和輸出文件

IronPDF是一個適用於.NET Core和.NET 10 的 PDF API,它可以透過 C# 程式碼產生、轉換和編輯 PDF 文件。 安裝NuGet包,建立一個 ChromePdfRenderer 實例,然後只需幾行程式碼即可從 HTML 字串、即時 URL 或現有文件產生 PDF。

在.NET Core應用程式中,產生 PDF 檔案是發票、報告、合約和合規性文件的標準要求。 挑戰在於找到一個能夠準確渲染 HTML、與ASP.NET Core和Blazor無縫整合、在 Windows、Linux 和 macOS 上產生一致輸出,並且無需單獨的工具即可處理數位簽章和密碼保護等高級操作的函式庫。 本指南將逐步介紹 IronPDF 的.NET Core PDF API,從安裝到最常見的文檔操作,每個操作都配有可運行的 C# 程式碼範例。

如何在.NET Core中開始使用IronPDF ?

使用程式包管理器控制台或.NET CLI 從NuGet安裝IronPDF :

# Package Manager Console
Install-Package IronPdf

# .NET CLI
dotnet add package IronPdf
# Package Manager Console
Install-Package IronPdf

# .NET CLI
dotnet add package IronPdf
SHELL

安裝完成後,請在應用程式啟動時在 Program.cs 中新增您的授權金鑰:

using IronPdf;

// Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY";
using IronPdf;

// Configure your license key before any IronPDF operations
License.LicenseKey = "YOUR-LICENSE-KEY";
$vbLabelText   $csharpLabel

無需信用卡即可免費試用。 IronPDF支援.NET 10、 .NET 9、 .NET 8、 .NET Framework 4.6.2+以及所有主要的.NET Core版本。 該程式庫可在 Windows、macOS 和 Linux 上運行,無需額外的執行時間依賴項,因此適用於容器化部署和雲端環境,包括Azure 、Docker 和 AWS。

對於ASP.NET Core項目,在建立應用程式之前,在 Program.cs 中註冊IronPDF服務,然後透過標準依賴注入容器注入 ChromePdfRenderer。 IronPDF可與ASP.NET Core專案類型集成,包括 Web API、MVC、 Razor Pages 和Blazor Server。 NuGet套件作為單一依賴項安裝,無需本機運行時庫或外部可執行文件,從而保持 CI 管道和容器鏡像的簡潔性。 對於 Linux 或 macOS 部署,除了標準的.NET SDK 之外,無需進行其他配置。

因為 ChromePdfRenderer 是線程安全的,所以你可以將其註冊為單例並在請求處理程序之間共享它。 在高吞吐量場景中,建立渲染器實例池或使用非同步渲染方法(RenderUrlAsPdfAsync)以避免在 PDF 產生運行時阻塞請求執行緒。 IronPDF 的許可頁面涵蓋了生產環境的部署席位和並發線程限制。

如何在 C# 中從 HTML 產生 PDF?

HTML 轉 PDF 是.NET PDF API 最常見的用途。 IronPDF 的ChromePdfRenderer可以轉換 HTML 字串、本機檔案或即時 URL,同時保留 CSS 樣式、字體、 JavaScript輸出和圖片在 Chrome 中的渲染效果。

using IronPdf;

// Create the renderer and define HTML content with full CSS support
var renderer = new ChromePdfRenderer();
var html = @"<html>
<head>
    <style>
        body { font-family: Arial; font-size: 14px; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        table { border-collapse: collapse; width: 100%; margin-top: 16px; }
        td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
        th { background: #3498db; color: white; }
    </style>
</head>
<body>
    <h1>Sales Report - Q4 2025</h1>
    <p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
    <table>
        <tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
        <tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
        <tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
    </table>
</body>
</html>";

var document = renderer.RenderHtmlAsPdf(html);
document.SaveAs("sales-report.pdf");
using IronPdf;

// Create the renderer and define HTML content with full CSS support
var renderer = new ChromePdfRenderer();
var html = @"<html>
<head>
    <style>
        body { font-family: Arial; font-size: 14px; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        table { border-collapse: collapse; width: 100%; margin-top: 16px; }
        td, th { border: 1px solid #ddd; padding: 10px; text-align: left; }
        th { background: #3498db; color: white; }
    </style>
</head>
<body>
    <h1>Sales Report - Q4 2025</h1>
    <p>Generated on: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
    <table>
        <tr><th>Product</th><th>Units Sold</th><th>Revenue</th></tr>
        <tr><td>Widget A</td><td>1,200</td><td>$24,000</td></tr>
        <tr><td>Widget B</td><td>850</td><td>$17,000</td></tr>
    </table>
</body>
</html>";

var document = renderer.RenderHtmlAsPdf(html);
document.SaveAs("sales-report.pdf");
$vbLabelText   $csharpLabel

輸出 PDF 文件

Visual Studio 專案正在執行IronPDF HTML 轉 PDF 轉換,產生具有樣式資料表的格式化銷售報告

ChromePdfRenderer 傳回一個 PdfDocument 對象,您可以將其儲存到檔案路徑,匯出至 byte[] 以進行 HTTP 回應,或寫入 MemoryStream 以進行記憶體處理。 渲染器遵循所有 CSS 屬性,包括自訂字體、flexbox、網格佈局、媒體查詢以及用於邊距和頁面大小控制的 @page 規則。 對於與 CSS 和圖像資源一起儲存在磁碟上的 HTML 模板,請使用檔案路徑呼叫 RenderHtmlFileAsPdf,而不是傳遞內聯字串。 IronPDF會根據文件目錄解析相對資源路徑,因此連結的樣式表和本機圖像無需額外配置即可出現在輸出中。

對於需要捕獲實時網頁的應用程序,請使用RenderUrlAsPdfAsync在執行JavaScript時截取任何 URL 的螢幕截圖:

using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live URL including all JavaScript-rendered content
var document = await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report");
document.SaveAs("monthly-report.pdf");

// Return PDF bytes in an ASP.NET Core controller
byte[] pdfBytes = document.BinaryData;
return File(pdfBytes, "application/pdf", "report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Render a live URL including all JavaScript-rendered content
var document = await renderer.RenderUrlAsPdfAsync("https://example.com/monthly-report");
document.SaveAs("monthly-report.pdf");

// Return PDF bytes in an ASP.NET Core controller
byte[] pdfBytes = document.BinaryData;
return File(pdfBytes, "application/pdf", "report.pdf");
$vbLabelText   $csharpLabel

URL 渲染會等待JavaScript完成再進行捕獲,從而確保動態載入的圖表、表格和資料視覺化在輸出 PDF 中正確顯示。 您可以設定渲染選項,以設定頁面邊距、紙張大小、方向和JavaScript執行逾時。 在渲染之前,還可以將身份驗證 cookie 和自訂 HTTP 標頭注入到請求中,這支援擷取需要登入工作階段的頁面。

如何配置PDF頁面佈局和渲染選項?

RenderingOptions 屬性控制頁面尺寸、邊距、方向以及在任何渲染呼叫執行之前JavaScript 的等待行為。 在渲染器實例上設定一次這些屬性,它們將應用於它產生的每個文件。

using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure page layout before rendering
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 15;
renderer.RenderingOptions.MarginBottom = 15;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500);

var document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>");
document.SaveAs("landscape-report.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure page layout before rendering
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 15;
renderer.RenderingOptions.MarginBottom = 15;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Wait for dynamic JavaScript content before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(500);

var document = renderer.RenderHtmlAsPdf("<h1>Landscape Report</h1><p>Body content here.</p>");
document.SaveAs("landscape-report.pdf");
$vbLabelText   $csharpLabel

紙張尺寸值涵蓋標準格式,包括 A4、A3、Letter、Legal 以及以毫米為單位指定的自訂尺寸。 邊距屬性接受以毫米為單位的值,並獨立應用於每條邊。 WaitFor API 控制JavaScript執行時間,這在 HTML 在渲染圖表或計算表格值之前非同步載入資料時非常有用。 對於使用 CSS @page 規則的頁面, IronPDF會尊重這些聲明並直接套用它們。 有關縮放因子、背景顏色和 PDF 版本選擇等完整屬性列表,請參閱完整的渲染選項參考

如何將 DOCX 檔案和影像轉換為 PDF?

除了 HTML 之外, IronPDF還可以將 DOCX 文件、常見圖像格式和 Markdown 文件轉換為 PDF。 這支援接受多種輸入類型的處理流程。

using IronPdf;

// Convert a Word document to PDF while preserving its formatting
var docxPdf = new DocxToPdfRenderer().RenderDocxAsPdf("contract.docx");
docxPdf.SaveAs("contract.pdf");

// Combine multiple images into a single multi-page PDF
var images = new[] { "page1.png", "page2.png", "page3.png" };
var imagePdf = ImageToPdfConverter.ImageToPdf(images);
imagePdf.SaveAs("scanned-document.pdf");
using IronPdf;

// Convert a Word document to PDF while preserving its formatting
var docxPdf = new DocxToPdfRenderer().RenderDocxAsPdf("contract.docx");
docxPdf.SaveAs("contract.pdf");

// Combine multiple images into a single multi-page PDF
var images = new[] { "page1.png", "page2.png", "page3.png" };
var imagePdf = ImageToPdfConverter.ImageToPdf(images);
imagePdf.SaveAs("scanned-document.pdf");
$vbLabelText   $csharpLabel

輸入 DOCX 與輸出 PDF 範例

原始 Word 文件與 IronPDF 轉換後的 PDF 輸出並排比較,顯示表格格式和樣式得以保留

DOCX 轉 PDF 轉換功能會保留來源 Word 文件中的段落樣式、表格、頁首、頁尾、嵌入圖片和清單。 此影像轉 PDF 轉換器接受 JPEG、PNG、TIFF、BMP 和 GIF 格式,自動最佳化輸出檔案大小,並支援將多個影像合併到單一分頁文件中。 這兩個轉換器都傳回一個標準的 PdfDocument 實例,因此您可以將它們與合併、簽名或浮水印等編輯操作連結。 對於Microsoft Word產生的 DOCX 文件,轉換器可以處理複雜的表格結構和嵌入的圖像,同時保持原始段落和標題層次結構。

如何新增數位簽章和表單欄位?

生產文件工作流程通常需要加密簽章來驗證真實性,以及用於資料收集的互動式表單欄位。 IronPDF透過同一 API 提供數位簽章PDF 表單支援

using IronPdf;
using IronPdf.Signing;

// Load an existing PDF and apply a digital signature using an X.509 certificate
var pdf = PdfDocument.FromFile("agreement.pdf");
var signature = new PdfSignature("certificate.pfx", "pfx-password");
pdf.Sign(signature);

// Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation";
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd");
pdf.Form.FindFormField("Amount").Value = "$12,500.00";

pdf.SaveAs("signed-agreement.pdf");
using IronPdf;
using IronPdf.Signing;

// Load an existing PDF and apply a digital signature using an X.509 certificate
var pdf = PdfDocument.FromFile("agreement.pdf");
var signature = new PdfSignature("certificate.pfx", "pfx-password");
pdf.Sign(signature);

// Populate named form fields with dynamic application data
pdf.Form.FindFormField("CustomerName").Value = "Acme Corporation";
pdf.Form.FindFormField("ContractDate").Value = DateTime.Now.ToString("yyyy-MM-dd");
pdf.Form.FindFormField("Amount").Value = "$12,500.00";

pdf.SaveAs("signed-agreement.pdf");
$vbLabelText   $csharpLabel

已驗證簽名範例

Adobe Acrobat 顯示了使用 IronPDF 的 PdfSignature API 簽署的 PDF 文件上的已驗證數位簽章面板

數位簽章使用 PFX 格式的 X.509 證書,並符合 Adob​​e Acrobat 和其他 PDF 檢視器認可的 PDF 簽章標準。 Acrobat 中的簽章面板會確認憑證授權者、簽章時間和完整性狀態。 PDF 表單 API支援文字欄位、複選框、單選按鈕和下拉式選單。 您可以以程式設計方式建立表單模板,在運行時用資料填充它們,並從已填寫的文件中讀取提交的欄位值。 這種模式適用於合約管理、人力資源入職和自動化資料收集管道,其中同一個 PDF 範本可以在許多具有不同欄位值的事務中重複使用。

對於基於時間戳記的簽名,請傳遞一個配置了時間戳伺服器 URI 的 PdfSignature 實例,以便由受信任的第三方而不是本地系統時鐘來認證簽名時間。 簽名指南涵蓋可見簽名影像、多個順序簽名者以及憑證驗證選項。

如何編輯修改現有的PDF文件?

IronPDF可讓您修改 PDF 文件,而無需從 HTML 重新建置它們。 以程式設計方式新增頁首、頁尾、浮水印、註釋,或合併和分割頁面。

using IronPdf;

var document = PdfDocument.FromFile("report.pdf");

// Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>",
    rotation: 30, opacity: 50);

// Add a branded header to every page
document.AddHtmlHeaders(new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
});

// Append supplementary pages from a second document
var appendix = PdfDocument.FromFile("appendix.pdf");
document.AppendPdf(appendix);

document.SaveAs("final-report.pdf");

// Export to bytes for HTTP streaming
byte[] pdfBytes = document.BinaryData;
using IronPdf;

var document = PdfDocument.FromFile("report.pdf");

// Add a semi-transparent watermark using HTML
document.ApplyWatermark("<h2 style='color:red; opacity:0.4; transform:rotate(-30deg)'>CONFIDENTIAL</h2>",
    rotation: 30, opacity: 50);

// Add a branded header to every page
document.AddHtmlHeaders(new HtmlHeaderFooter
{
    HtmlFragment = "<div style='text-align:right; font-size:10px; color:#666'>Internal Use Only - Page {page} of {total-pages}</div>"
});

// Append supplementary pages from a second document
var appendix = PdfDocument.FromFile("appendix.pdf");
document.AppendPdf(appendix);

document.SaveAs("final-report.pdf");

// Export to bytes for HTTP streaming
byte[] pdfBytes = document.BinaryData;
$vbLabelText   $csharpLabel

範例輸出

帶有IronPDF添加的機密水印和品牌頁眉的PDF文檔,顯示頁碼和附錄頁

HTML 頁首和頁尾 API支援範本變量,包括 {total-pages}{date},用於動態內容。 自訂浮水印方法接受一個 HTML 片段,因此您可以透過一次呼叫在所有頁面上套用樣式化、旋轉、半透明的覆蓋層。 您還可以按頁面範圍拆分 PDF合併多個文檔,以及從任何 PDF 中提取嵌入的圖像和文字內容。 文字擷取保留了列和表格中的閱讀順序,從而簡化了搜尋索引、內容遷移或資料驗證工作流程等下游處理。

如何應用密碼保護和安全設定?

使用密碼和權限標記保護 PDF 文件是財務報告、法律文件和人事記錄的標準要求。

using IronPdf;
using IronPdf.Security;

var pdf = PdfDocument.FromFile("financial-report.pdf");

// Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password";
pdf.SecuritySettings.OwnerPassword = "admin-password";

// Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = false;

pdf.SaveAs("protected-report.pdf");
using IronPdf;
using IronPdf.Security;

var pdf = PdfDocument.FromFile("financial-report.pdf");

// Set passwords: UserPassword controls opening, OwnerPassword controls editing
pdf.SecuritySettings.UserPassword = "viewer-password";
pdf.SecuritySettings.OwnerPassword = "admin-password";

// Configure fine-grained permissions
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.PrintLowResolution;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserFormData = false;

pdf.SaveAs("protected-report.pdf");
$vbLabelText   $csharpLabel

PDF 安全設定 API應用 128 位元或 256 位元 AES 加密。 設定 UserPassword 要求讀者在任何 PDF 檢視器中開啟檔案時輸入密碼。 設定 OwnerPassword 可限製程式修改和擁有者層級的操作。 權限標誌分別控制列印品質、文字選擇、註解和表單欄位存取。 套用安全設定後,BinaryData 屬性傳回加密的 PDF 位元組,用於儲存或 HTTP 傳輸。 這些設定符合 PDF 規範的存取控制模型,因此受保護的文件可以在 Adob​​e Acrobat、基於瀏覽器的 PDF 檢視器和行動讀取應用程式中正確開啟。

若要移除您擁有的文件的保護,請將擁有者密碼作為參數傳遞給 PdfDocument.FromFile 並載入該文件,然後在不套用安全設定的情況下儲存。 這樣就可以在伺服器端工作流程中進行程序化文件處理,其中受密碼保護的文件作為輸入到達,並且必須在重新分發之前進行轉換。

下一步計劃是什麼?

IronPDF 的.NET Core PDF API 以 C# 處理完整的文件生命週期:從 HTML 字串和 URL 產生文件、轉換 DOCX 和圖片檔案、設定頁面佈局和渲染選項、編輯浮水印、頁首和頁尾、套用數位簽章以及使用加密保護文件。 在 Windows、macOS 和 Linux 上的.NET 8、 .NET 9 和.NET 10 中,所有操作都使用一致的 API。

立即開始免費試用,使用您自己的文件評估IronPDF 。 有關更多場景,請瀏覽HTML 到 PDF 渲染選項指南PDF 壓縮和優化以及完整的IronPDF功能概述。 審查生產部署的許可選項

常見問題解答

什麼是 IronPDF 的 .NET Core PDF API?

IronPDF 是一個 .NET 程式庫,可在 C# 應用程式中生成、轉換和編輯 PDF 文件。它作為單一的 NuGet 套件安裝,支持 .NET 10、.NET 9、.NET 8 和 .NET Framework 4.6.2 或更高版本。

如何在 .NET Core 中從 HTML 生成 PDF?

創建一個 ChromePdfRenderer 實例,並使用 HTML 字串調用 RenderHtmlAsPdf,或使用 URL 調用 RenderUrlAsPdfAsync。渲染器將 HTML、CSS 和 JavaScript 輸出轉換為 PdfDocument 物件,您可以保存或串流它。

如何在 IronPDF 中配置頁面大小和邊距?

在調用渲染方法前,於 renderer.RenderingOptions 中設置屬性。使用 PaperSize 設定標準格式,PaperOrientation 設定橫向或縱向,MarginTop、MarginBottom、MarginLeft、MarginRight 設定以毫米為單位的邊距。

IronPDF 能否在 .NET Core 中將 DOCX 文件轉換為 PDF?

可以。使用 DocxToPdfRenderer.RenderDocxAsPdf 和文件路徑。轉換器保留來源 Word 文檔中的段落樣式、表格、頁眉、頁腳和嵌入的圖像。

如何在 C# 中為 PDF 添加數位簽名?

使用 PdfDocument.FromFile 加載 PDF,創建帶有 PFX 證書路徑和密碼的 PdfSignature,然後調用 pdf.Sign(signature)。結果文件在 Adobe Acrobat 和符合標準的 PDF 查看器中顯示為已驗證。

如何使用 IronPDF 為 PDF 設置密碼保護?

設置 pdf.SecuritySettings.UserPassword 為開啟密碼,設置 pdf.SecuritySettings.OwnerPassword 為擁有者密碼。使用 AllowUserPrinting、AllowUserCopyPasteContent 和相關標誌來控制個別權限。

如何在 ASP.NET Core 中將生成的 PDF 作為 HTTP 響應返回?

訪問 PdfDocument 實例上的 BinaryData 屬性以取得 PDF 的字節數組,然後返回 File(pdfBytes, 'application/pdf', 'filename.pdf') 作為 ASP.NET Core 控制器動作中的一部分。

IronPDF 是否支持 .NET Core 應用程序的 Linux 和 macOS?

支持。IronPDF 可在 Windows、macOS 和 Linux 上運行,無需額外的本機運行時依賴項。它支持 Docker、Azure 和 AWS 的容器化部署,無需平台特定的配置。

如何使用 IronPDF 為 PDF 添加頁眉和頁腳?

調用 document.AddHtmlHeaders,並傳入包含頁眉標記的 HtmlHeaderFooter 對象,其 HtmlFragment 使用模板變量 {page}、{total-pages} 和 {date} 作為動態值。相同的 API 也適用於頁腳。

IronPDF 是否在 ASP.NET Core 中的使用是線程安全的?

ChromePdfRenderer 是線程安全的,並且可以作為單例註冊到依賴注入容器中。對於高吞吐量的工作負載,使用非同步渲染方法(RenderHtmlAsPdfAsync, RenderUrlAsPdfAsync)以避免阻塞請求線程。

Curtis Chau
技術作家

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

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me