跳至頁尾內容
使用IRONPDF

如何使用 IronPDF 在 .NET 中動態生成 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";
Imports 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 與包括 Web API、MVC、Razor Pages 和 Blazor 伺服器在內的 ASP.NET Core 項目型別整合。 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");
Imports IronPdf

' Create the renderer and define HTML content with full CSS support
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<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>"

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

輸出 PDF 文件

在 Visual Studio 項目中運行 IronPDF HTML 到 PDF 轉換,生成一個帶有樣式資料表的格式化銷售報告

ChromePdfRenderer 返回一個 PdfDocument 物件,您可以將其保存到文件路徑,導出為 byte[] 用於 HTTP 響應,或寫入 MemoryStream 以便在記憶體中處理。 渲染器會遵循所有 CSS 屬性,包括自訂字型、flexbox、grid 佈局、媒體查詢和 @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");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

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

' Return PDF bytes in an ASP.NET Core controller
Dim pdfBytes As Byte() = document.BinaryData
Return File(pdfBytes, "application/pdf", "report.pdf")
$vbLabelText   $csharpLabel

URL 渲染會等待 JavaScript 完成後再進行截屏,確保動態載入的圖表、表格和資料可視化能正確顯示於輸出的 PDF。 您可以配置 渲染選項 來設置頁面邊距、紙張大小、方向和 JavaScript 執行超時。 也可以在渲染之前將認證 Cookie 和自訂 HTTP 標頭注入到請求中,以支援抓取需要登入會話的頁面。

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

RenderingOptions 屬性於 ChromePdfRenderer 上控制頁面尺寸、邊距、方向和 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");
Imports IronPdf

Dim renderer As 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)

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

紙張尺寸值涵蓋標準格式,包括 A4、A3、信件、法律和指定以毫米計算的自訂尺寸。 邊距屬性接受毫米值,並獨立應用於每個邊緣。 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");
Imports IronPdf

' Convert a Word document to PDF while preserving its formatting
Dim docxPdf = New DocxToPdfRenderer().RenderDocxAsPdf("contract.docx")
docxPdf.SaveAs("contract.pdf")

' Combine multiple images into a single multi-page PDF
Dim images = {"page1.png", "page2.png", "page3.png"}
Dim 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");
Imports IronPdf
Imports IronPdf.Signing

' Load an existing PDF and apply a digital signature using an X.509 certificate
Dim pdf = PdfDocument.FromFile("agreement.pdf")
Dim 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 證書,並符合由 Adobe 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;
Imports IronPdf

Dim 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 With {
    .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
Dim appendix = PdfDocument.FromFile("appendix.pdf")
document.AppendPdf(appendix)

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

' Export to bytes for HTTP streaming
Dim pdfBytes As Byte() = document.BinaryData
$vbLabelText   $csharpLabel

輸出範例

PDF 文件使用 IronPDF 新增機密浮水印和品牌頁眉顯示頁碼及附錄附加頁

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");
Imports IronPdf
Imports IronPdf.Security

Dim 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 規範的存取控制模型,因此受保護的文件可以在 Adobe Acrobat、基於瀏覽器的 PDF 查看器和移動閱讀應用程式中正確打開。

要從您擁有的文件中刪除保護,將擁有者密碼作為參數傳遞給 PdfDocument.FromFile 以載入文件,然後保存時不應用安全設置。 這允許在伺服器端工作流中進行程式化文件處理,當密碼保護的文件作為輸入到達,必須在重新分發之前轉換。

下一步如何?

IronPDF 的 PDF API 適用於 .NET Core,處理 C# 中的完整文件生命週期:從 HTML 字串和 URL 生成、轉換 DOCX 和影像文件、配置頁面佈局和渲染選項、編輯浮水印、頁眉和頁腳、應用數位簽名及使用加密保護文件。 所有操作都在 Windows、macOS 和 Linux 上使用一致的 API 跨越 .NET 8、.NET 9 和 .NET 10。

開始免費試用以評估您自己的文件中的 IronPDF。 對於其他場景,探索 HTML 到 PDF 渲染選項指南PDF 壓縮和優化,以及完整的 IronPDF 功能總覽。 查看 生產部署的授權選項

常見問題

什麼是IronPDF的PDF API for .NET Core?

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

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

建立ChromePdfRenderer實例,並呼叫RenderHtmlAsPdf來處理HTML字串,或用RenderUrlAsPdfAsync來處理URL。渲染器將HTML、CSS和JavaScript輸出轉換為PdfDocument物件,您可以儲存或串流這些物件。

如何在IronPDF中配置頁面尺寸和邊距?

在調用渲染方法之前,設置渲染器的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中作為HTTP響應返回已生成的PDF?

存取PdfDocument實例的BinaryData屬性以取得PDF的位元組陣列,然後在ASP.NET Core控制器動作中用File(pdfBytes, 'application/pdf', 'filename.pdf')返回該文件。

IronPDF能在Linux和macOS上運行用於.NET Core應用程式嗎?

可以。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擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話