跳至頁尾內容
使用IRONPDF

如何在ASP.NET中使用C#從資料庫中檢索PDF文件

IronPDF 提供了一個C# PDF程式庫,通過 .NET Standard 2.0 與 UWP 應用程式整合。您可以建立PDF、編輯現有文件、合併多個檔案,以及通過簡單的API調用操作PDF,同時支持容器化部署。

在 UWP 應用程式中構建 PDF 編輯器為 Windows 使用者開啟了專業文件流程的大門。 無論您是在生成報表、處理 PDF 表單、使用壓縮管理大型文件,還是以加密保護 PDF 文件,可靠的 PDF 操作工具在各個操作系統中節省了大量開發時間。

IronPDF 提供了一個功能齊全的C# PDF程式庫,具備與 .NET Standard 2.0 一起工作的功能,使得它可用於 UWP 應用程式。 該程式庫處理從建立PDF到編輯現有 PDF 文件的所有操作,包括能夠通過乾淨的API以程式方式列印和打開PDF文件。 它支持部署到 Azure 和 AWS 環境,使其適用於原生雲端應用程式。

如何開始在 UWP 中使用 IronPDF?

在 UWP 專案中新增 PDF 觀看器和編輯功能從安裝IronPDF NuGet package 開始。 IronPDF 針對 .NET Standard 2.0, UWP 應用程式可以通過 .NET Standard 2.0 類程式庫專案直接引用它。 Microsoft UWP 文件涵蓋了在新增第三方程式庫之前所需的專案設定步驟。 在 Visual Studio 中打開封裝管理控制台,執行下面顯示的安裝命令。

// Install via NuGet Package Manager Console:
Install-Package IronPdf
// Install via NuGet Package Manager Console:
Install-Package IronPdf
' Install via NuGet Package Manager Console:
Install-Package IronPdf
$vbLabelText   $csharpLabel

封裝管理控制台顯示 IronPDF NuGet package 安裝進度,多個依賴項正在下載。

安裝完成後,從 HTML 內容生成 PDF 僅需要幾行程式碼。 下面的範例顯示了如何將 HTML 發票渲染為 PDF 文件並將其保存到磁碟。 此模式可用於任何 HTML 字串,包括嵌入了 CSS 的完全樣式化範本。

using IronPdf;

// Create a PDF from HTML content
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #1001</h1><p>Total: $500.00</p>");
// Save to the app's local storage folder
pdf.SaveAs("document.pdf");

// For containerized environments, configure the renderer
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.Installation.TempFolderPath = "/app/temp";
renderer.Installation.ChromeGpuMode = IronPdf.Rendering.ChromeGpuMode.Disabled;
using IronPdf;

// Create a PDF from HTML content
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #1001</h1><p>Total: $500.00</p>");
// Save to the app's local storage folder
pdf.SaveAs("document.pdf");

// For containerized environments, configure the renderer
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.Installation.TempFolderPath = "/app/temp";
renderer.Installation.ChromeGpuMode = IronPdf.Rendering.ChromeGpuMode.Disabled;
Imports IronPdf

' Create a PDF from HTML content
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Invoice #1001</h1><p>Total: $500.00</p>")
' Save to the app's local storage folder
pdf.SaveAs("document.pdf")

' For containerized environments, configure the renderer
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.Installation.TempFolderPath = "/app/temp"
renderer.Installation.ChromeGpuMode = IronPdf.Rendering.ChromeGpuMode.Disabled
$vbLabelText   $csharpLabel

ChromePdfRenderer 類能將 HTML 內容轉換為 PDF 格式,確保像素精確的結果,並一致地處理靜態文字、圖像和超連結。 這種方法讓您可以應用現有的 HTML 和 CSS 知識,而無需學習複雜的 PDF 特定 API。渲染器在不同環境中處理字型、佈局和連結。 對於生產部署,渲染器支持自訂日誌性能優化

HTML 到 PDF 轉換產生什麼輸出?

PDF viewer displaying Invoice #1001 with a total of $500.00 in a browser-based interface with zoom controls set to 100%

渲染的 PDF 精確地忠實於 HTML 源,保留了字型、間距和顏色。 對於發票和報告情境,這意味著輸出看起來與瀏覽器所顯示的完全相同,而不需要任何特定於 PDF 格式的自訂佈局程式碼。 內部使用的 Chromium 渲染引擎確保了 Windows、Linux 和 macOS 上一致的排版。

如何在 UWP 中處理檔案儲存和列印?

對於 UWP 應用程式,保存文件通常涉及應用程式的本地儲存資料夾或使用檔案選擇器讓使用者選擇保存位置。 一旦 PDF 文件載入到應用程式中,IronPDF 將文件作為PdfDocument 物件返回,可以保存到流或檔案路徑。 該程式庫支持通過列印 API 直接列印 PDF 文件,並在瀏覽大型文件時有效載入頁面。 它還支持導出到 PDF/A 格式以滿足長期存檔要求,這對於受監管行業很重要。

IronPDF 功能概述顯示四個主要類別:Create PDFs、Convert PDFs、Edit PDFs 及 Sign and Secure PDFs,並在每個部分下列出詳細子類別。

UWP PDF 專案都有哪些文件操作選項?

實際 UWP 應用程式常常需要結合 PDF 文件、提取特定頁面或重新組織內容以便於導航。 IronPDF 提供簡單的工具用於合併和分割PDF,而無需深入了解 PDF 內部。 該程式庫使用虛擬頁面僅在運行時保持所需的最小頁數,從而在處理大型文件時降低記憶體消耗。 對於 DevOps 團隊,該程式庫支持 Docker 部署和不需要 Windows 相容層的 Linux 環境。

using IronPdf;

// Load existing PDF files
var pdf1 = PdfDocument.FromFile("report-q1.pdf");
var pdf2 = PdfDocument.FromFile("report-q2.pdf");
// Merge into a single document
var combined = PdfDocument.Merge(pdf1, pdf2);
// Remove a specific page (zero-indexed)
combined.RemovePage(0);
// Copy select pages to a new document
var excerpt = combined.CopyPages(2, 4);
combined.SaveAs("annual-report.pdf");
excerpt.SaveAs("summary.pdf");

// For production environments, enable compression
var compressOptions = new CompressOptions
{
    CompressImages = true,
    ImageQuality = 90
};
combined.CompressSize(compressOptions);
using IronPdf;

// Load existing PDF files
var pdf1 = PdfDocument.FromFile("report-q1.pdf");
var pdf2 = PdfDocument.FromFile("report-q2.pdf");
// Merge into a single document
var combined = PdfDocument.Merge(pdf1, pdf2);
// Remove a specific page (zero-indexed)
combined.RemovePage(0);
// Copy select pages to a new document
var excerpt = combined.CopyPages(2, 4);
combined.SaveAs("annual-report.pdf");
excerpt.SaveAs("summary.pdf");

// For production environments, enable compression
var compressOptions = new CompressOptions
{
    CompressImages = true,
    ImageQuality = 90
};
combined.CompressSize(compressOptions);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PdfDocument.Merge 方法接受多個 PDF 並依次合併它們。 這在從單獨的內容部分編輯報表或組裝文件包以進行分發時非常有用。 RemovePage 和 CopyPages 方法可精確控制文件結構,讓開發者有效地編輯頁面。 該程式庫還支持頁面旋轉和特殊紙張尺寸以滿足特殊輸出需求。

為什麼零基索引對頁面操作很重要?

頁面操作使用零基索引,所以第一頁的索引為0。在使用 CopyPages 複製範圍時,首尾索引都是包含的。這些方法返回新的 PdfDocument 實例,從而在運行時降低記憶體開銷,讓原件可供進一步處理。 即使是大型文件,頁面也能快速載入,這得益於優化減少了初始載入時間。該程式庫支持非同步操作,以便在高吞吐環境中提升性能。

理解索引行為能防止在構建頁級編輯功能時出現偏差一的錯誤。 例如,一個 10 頁的文件頁面索引範圍是 0 到 9。調用 CopyPages(0, 4) 生成一段包含第 1 到第 5 頁的 5 頁摘錄。這種行為符合標準 .NET 集合約定,因此對於使用陣列和列表的開發者來說會很熟悉。

如何減少大型PDF文件的大小?

IronPDF 功能比較顯示三個主要優勢:像素完美渲染、5分鐘安裝以及跨平台支持,並在每個類別下列出詳細功能列表。

IronPDF 提供記憶優化技術,並支持自定義暫存路徑以有效管理資源使用。 處理包含多個高解像度圖像的文件時,啟用合併操作期間的壓縮可以顯著減少輸出文件大小。 該程式庫包含內建的PDF 壓縮功能,可在無明顯品質損失的情況下大幅減少典型商業文件的文件大小。

CompressOptions 物件提供對壓縮過程的詳細控制。 將 ImageQuality 設置為 90 可以保留細節,同時減少文件大小;低於 80 的值會在一定清晰度代價下生成更小的文件。 對於存檔文件,建議將質量保持在 95 或更高。 將壓縮與PDF/A 合規相結合,確保了長期儲存要求得到滿足,同時保持文件大小可控。

PDF 編輯器應用中的表單和浮水印如何運作?

互動式表單填寫和浮水印等視覺品牌元素為PDF輸出增添專業光彩。 IronPDF 支持從 HTML 建立可填充表單和程式方式操作現有表單字段。 表單填寫支持允許資料收集流程,使用者可以直接保存表單字段。 UWP PDF 視圖控制可以以批註工具顯示這些表單以供標註。該程式庫還支持數位簽章,以滿足在法律和金融情境中的文件真實性需求。

using IronPdf;

// Load a PDF with existing form fields
var pdf = PdfDocument.FromFile("contract-template.pdf");
// Fill form fields by name
pdf.Form.FindFormField("clientName").Value = "Acme Corporation";
pdf.Form.FindFormField("contractDate").Value = "2025-01-15";
// Apply a watermark across all pages
pdf.ApplyWatermark("<h2 style='color:gray; opacity:0.5'>DRAFT</h2>",
    rotation: 45,
    opacity: 30);

// Add production-ready security
pdf.SecuritySettings.OwnerPassword = Environment.GetEnvironmentVariable("PDF_OWNER_PASSWORD");
pdf.SecuritySettings.UserPassword = Environment.GetEnvironmentVariable("PDF_USER_PASSWORD");
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

// Apply digital signature for authenticity
var signature = new IronPdf.Signing.PdfSignature("certificate.pfx", "password")
{
    SigningContact = "legal@acmecorp.com",
    SigningLocation = "New York, NY"
};
pdf.Sign(signature);

pdf.SaveAs("completed-contract.pdf");
using IronPdf;

// Load a PDF with existing form fields
var pdf = PdfDocument.FromFile("contract-template.pdf");
// Fill form fields by name
pdf.Form.FindFormField("clientName").Value = "Acme Corporation";
pdf.Form.FindFormField("contractDate").Value = "2025-01-15";
// Apply a watermark across all pages
pdf.ApplyWatermark("<h2 style='color:gray; opacity:0.5'>DRAFT</h2>",
    rotation: 45,
    opacity: 30);

// Add production-ready security
pdf.SecuritySettings.OwnerPassword = Environment.GetEnvironmentVariable("PDF_OWNER_PASSWORD");
pdf.SecuritySettings.UserPassword = Environment.GetEnvironmentVariable("PDF_USER_PASSWORD");
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

// Apply digital signature for authenticity
var signature = new IronPdf.Signing.PdfSignature("certificate.pfx", "password")
{
    SigningContact = "legal@acmecorp.com",
    SigningLocation = "New York, NY"
};
pdf.Sign(signature);

pdf.SaveAs("completed-contract.pdf");
Imports IronPdf

' Load a PDF with existing form fields
Dim pdf = PdfDocument.FromFile("contract-template.pdf")
' Fill form fields by name
pdf.Form.FindFormField("clientName").Value = "Acme Corporation"
pdf.Form.FindFormField("contractDate").Value = "2025-01-15"
' Apply a watermark across all pages
pdf.ApplyWatermark("<h2 style='color:gray; opacity:0.5'>DRAFT</h2>", rotation:=45, opacity:=30)

' Add production-ready security
pdf.SecuritySettings.OwnerPassword = Environment.GetEnvironmentVariable("PDF_OWNER_PASSWORD")
pdf.SecuritySettings.UserPassword = Environment.GetEnvironmentVariable("PDF_USER_PASSWORD")
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.NoPrint
pdf.SecuritySettings.AllowUserCopyPasteContent = False

' Apply digital signature for authenticity
Dim signature = New IronPdf.Signing.PdfSignature("certificate.pfx", "password") With {
    .SigningContact = "legal@acmecorp.com",
    .SigningLocation = "New York, NY"
}
pdf.Sign(signature)

pdf.SaveAs("completed-contract.pdf")
$vbLabelText   $csharpLabel

Form 屬性提供對 PDF 文件中的所有互動字段的存取。 使用 FindFormField 與字段名稱一起檢索特定字段以便讀取或寫入值。 這適用於文字輸入、複選框、下拉列表和其他標準表單元素,以便有效資料輸入。 該程式庫支持提取表單資料並將表單平面化以便最終分發,將互動字段轉換為靜態內容。

浮水印接受HTML內容,通過CSS提供完整的樣式控制。 不透明度和旋轉參數可以調整浮水印的視覺突出度。 浮水印預設應用於所有頁面,因此它們適合用來標記文件為草稿或機密,或新增公司品牌。 高級浮水印包括基於圖像的蓋章和背景覆蓋,以滿足更複雜的品牌需求。

表單字段操作看起来如何?

PDF 觀察器顯示一個客戶合同範本,空白字段用於客戶名稱和合同日期,以 100% 縮放在深色主題的介面中顯示。

處理後的完成表單顯示如何?

PDF 觀察器顯示已完成的客戶合同表單,客戶名稱為 'Acme Corporation',合同日期為 '2025-01-15'。

有哪些批註和安全功能可用?

該程式庫包括批註工具,讓開發者可以在 PDF 頁面上直接新增墨水批註、自由手畫記號或插入彈出便籤。 這些批註支持外部導航和超連結內容導航。 對於需要文件安全的應用,IronPDF 支持通過專用 API 方法進行密碼保護的 PDF 文件加密和數位簽章。 使用者可以搜索和複製文字,並通過觸控手勢進行導航。 查看器顯示縮略圖作為實際頁面的迷你表示,方便導航。 附加功能包括標記功能,可以永久刪除敏感內容。

安全設定控制生成 PDF 後終端使用者可以執行的操作。 禁用複製貼上和列印可在合同分發或考卷等場景中保護機密內容。 所有主要 PDF 閱讀器(包括 Adobe Acrobat)均會遵循擁有者和使用者密碼遵循的PDF 安全標準,並且會被尊重。 對於需要長期完整性驗證的文件,將密碼保護與數位簽章結合在一起可以同時提供存取控制和篡改檢測。

UWP PDF 專案中的跨平台部署如何運作?

相同的程式碼庫可在 Windows、Linux、macOS 和 Docker 及 Azure 等容器化環境下運行,為可能超越初始平台的 UWP 應用提供靈活性。 這對最初針對 Windows 目標但後來需要支持基於網頁或伺服器端渲染路徑的團隊來說很重要。 該程式庫運行,從 HTML 到 PDF 轉換到文件合併 - 在所有支持的運行時上行為一致,因此相同的程式碼可以在所有平台上通過整合測試。

跨平台支持圖表顯示 IronPDF 與多個 .NET 版本、操作系統、雲平台和開發環境的相容性

對於 DevOps 團隊,IronPDF 提供Docker 映像Kubernetes 部署指南以供基於容器的部署。 該程式庫包括本機 Linux 支持,無需 Windows 相容層,並提供精簡包選項以減少部署大小。配置選項包括自定義日誌、授權密鑰管理及可通過環境變數而非硬編碼值控制的環境特定設定。

PDF 觀察器支持所有需要的操作,包括列印、書籤和 UTF-8 語言選項,適合國際使用者。 對於建造文件密集型應用程式的團隊來說,性能優化功能記憶管理工具降低了擴展至大型文件批量或服務多個同時使用者時的摩擦。

下一步如何?

IronPDF 包含 UWP 開發者所需的 PDF 編輯功能,而無不必要的複雜性。 從 HTML 到 PDF 轉換到文件合併,PDF 表單處理和浮水印,該程式庫通過一致的 API 支持主要文件工作流,並支持 MVVM 支援和自定義工具欄選項。 該程式庫包括完整的渲染選項,並支持適用於動態內容情境的 JavaScript 執行。

探索IronPDF 授權選項以找到適合您專案的產品。 從免費試用開始以在投入授權之前評估滿足您具體文件需求的可能性。

IronPDF licensing page showing four tiers: Lite ($999), Plus ($999), Professional ($1,999), and Unlimited ($3,999) with varying developer, location, and project limits.

常見問題

IronPDF能否在UWP應用中工作?

IronPDF針對.NET Standard 2.0,UWP應用可以通過.NET Standard 2.0類庫專案引用。您在類庫中安裝IronPDF,然後從UWP應用中引用該類庫。

您如何在UWP應用中從HTML建立PDF?

使用ChromePdfRenderer.RenderHtmlAsPdf(htmlString)將任何HTML字串轉換為PDF檔案。調用pdf.SaveAs(path)將其寫入磁盤或使用pdf.BinaryData獲取用於流操作的原始位元資料。

您如何使用IronPDF合併多個PDF文件?

調用PdfDocument.Merge(pdf1, pdf2)將兩個PDF合併為一個。該方法接受一個params陣列,因此您可以在一次調用中傳遞任意數量的文件。

您如何程式化地填寫PDF表單字段?

使用pdf.Form.FindFormField("fieldName").Value = "value"寫入已命名的表單字段。這適用於文字輸入、複選框和下拉選項。

您如何為PDF應用浮水印?

調用pdf.ApplyWatermark(htmlContent, rotation, opacity),其中htmlContent是一個設計好的HTML字串,如<h2 style='color:gray'>DRAFT</h2>。預設情況下,浮水印應用於所有頁面。

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

設置pdf.SecuritySettings.OwnerPasswordpdf.SecuritySettings.UserPassword,然後配置許可權,例如AllowUserPrintingAllowUserCopyPasteContent,之後調用pdf.SaveAs

IronPDF是否支持符合歸檔標準的PDF/A?

是的。IronPDF可以使用SaveAsPdfA方法將標準PDF轉換為PDF/A-1b、PDF/A-2b和PDF/A-3b格式,這是受監管行業進行長期數位保存所需的。

IronPDF能否在Docker或Linux環境中運行?

是的。IronPDF包含本地Linux支持和官方Docker映像。在容器環境中運行時,設置renderer.Installation.TempFolderPath並禁用GPU模式。

您如何使用IronPDF減少PDF文件大小?

建立一個CompressOptions物件,設置CompressImages = true和介於60到95之間的ImageQuality值,然後傳遞給pdf.CompressSize(compressOptions)

您如何為PDF新增數位簽名?

建立一個PdfSignature物件,提供PFX證書文件的路徑和密碼,設置可選的聯繫和位置字段,然後在保存之前調用pdf.Sign(signature)

Curtis Chau
技術作家

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

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

Iron 支援團隊

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