使用 IRONPDF

如何使用 C# 和 IronPDF 在 ASP.NET 中檢視 PDF 檔案

已更新 2024年1月20日
分享:

大部分人會用專門的桌面應用程式在電腦上打開PDF,但軟體工程師也可以使用IronPDF通過C#以編程方式創建、查看、打開、閱讀和編輯PDF內容。

IronPDF在ASP.NET和C#中閱讀PDF文件時證明是一個非常有用的插件。

你可以下載 從此連結下載專案檔案使用 IronPDF,您可以使用 C# 快速輕鬆地建立 PDF 文件。

PDF 文件的設計和佈局大部分可以通過使用現有的 HTML 資產來完成,或者將任務委派給網頁設計員工;它處理了將 PDF 生成集成到您的應用程式中這一耗時的任務,並且自動將準備好的文件轉換為 PDF。使用 .NET,您可以:

  • 將網頁表單、本地 HTML 頁面和其他網站轉換為 PDF 格式。
  • 允許用戶下載文件,通過電子郵件與他人分享,或將其保存到雲端。
  • 為客戶開具發票並提供報價;準備報告;協商合同和其他文件。
  • 使用 ASP.NET、ASP.NET Core、Web Forms、MVC、Web API 在 .NET Framework 和 .NET Core 上工作,還能與其他編程語言一起使用。

設置 IronPDF 庫

有兩種方法可以安裝該庫;

使用 NuGet 套件管理器安裝

IronPDF 可以通過 Visual Studio 插件或從命令列使用 NuGet 套件管理器進行安裝。導航到控制台,在 Visual Studio 中鍵入以下代碼:

Install-Package IronPdf

直接從網站下載DLL文件

或者,你可以直接從網站獲取DLL。

記得在任何使用IronPDF的cs類文件的頂部包含以下註釋:

查看 IronPDF 功能.

IronPDF 是一個必備的插件。立即獲取您的版本並 使用NuGet試試看.

在 .NET C# 中從 HTML 字串建立 PDF 文件

從 HTML 字串建立 PDF 文件在 C# 中是一種高效且有成效的方法,用於在 C# 中建立新的 PDF 文件。

RenderHtmlAsPdf 函數 從 ㄧ ChromePdfRenderer 提供簡單的方法將任意 HTML 轉換 (HTML5) 由於IronPDF DLL中嵌入的Google Chromium引擎,將字串轉換為PDF文件。

//Render HTML to pdf
var renderer = new ChromePdfRenderer();
using var rendered_pdf = renderer.RenderHtmAsPdf("<h1>My First HTML to Pdf</h1>");

var Output_Path = "My_First_Html.pdf";
PDF.SaveAs(Output_Path);
System.Diagnostics.Process.Start(Output_Path);
//Render HTML to pdf
var renderer = new ChromePdfRenderer();
using var rendered_pdf = renderer.RenderHtmAsPdf("<h1>My First HTML to Pdf</h1>");

var Output_Path = "My_First_Html.pdf";
PDF.SaveAs(Output_Path);
System.Diagnostics.Process.Start(Output_Path);
'Render HTML to pdf
Dim renderer = New ChromePdfRenderer()
Dim rendered_pdf = renderer.RenderHtmAsPdf("<h1>My First HTML to Pdf</h1>")

Dim Output_Path = "My_First_Html.pdf"
PDF.SaveAs(Output_Path)
System.Diagnostics.Process.Start(Output_Path)
VB   C#

RenderHtmlAsPdf 是一個強大的工具,完全支援 CSS、JavaScript 和圖像。如果這些素材存儲在硬碟上,可能需要設置 RenderHtmlAsPdf 的第二個參數。

以下程式碼將生成一個 PDF 文件:

var Render_pdf = renderer.RenderHtmlAsPdf("<img src='image_1.png'/>", @"C:\Newproject");
var Render_pdf = renderer.RenderHtmlAsPdf("<img src='image_1.png'/>", @"C:\Newproject");
Dim Render_pdf = renderer.RenderHtmlAsPdf("<img src='image_1.png'/>", "C:\Newproject")
VB   C#

所有引用的 CSS 樣式表、圖片和 JavaScript 文件都將相對於 BaseUrlPath,這樣可以保持一個更有組織和邏輯的結構。當然,您也可以利用互聯網上可用的圖片、樣式表和資產,例如 Web 字體、Google 字體,甚至是 jQuery,如果您選擇的話。

建立 PDF 文件。利用現有的 HTML 網址

現有的網址可以通過 C# 被高效且簡單地渲染成 PDF;這也使得團隊能夠將 PDF 設計和後端 PDF 渲染工作分配到各個部分,這是有益的。

以下代碼展示了如何從網址渲染 endeavorcreative.com 頁面:

//Render url to pdf
var renderer = new ChromePdfRenderer();
using var Rendered_pdf = renderer.RenderUrlAsPdf("https://endeavorcreative.com/setting-up-wordpress-website-from-scratch/");

var Output_Path = "Url_pdf.pdf";
Rendered_pdf.SaveAs(Output_Path);
System.Diagnostics.Process.Start(Output_Path);
//Render url to pdf
var renderer = new ChromePdfRenderer();
using var Rendered_pdf = renderer.RenderUrlAsPdf("https://endeavorcreative.com/setting-up-wordpress-website-from-scratch/");

var Output_Path = "Url_pdf.pdf";
Rendered_pdf.SaveAs(Output_Path);
System.Diagnostics.Process.Start(Output_Path);
'Render url to pdf
Dim renderer = New ChromePdfRenderer()
Dim Rendered_pdf = renderer.RenderUrlAsPdf("https://endeavorcreative.com/setting-up-wordpress-website-from-scratch/")

Dim Output_Path = "Url_pdf.pdf"
Rendered_pdf.SaveAs(Output_Path)
System.Diagnostics.Process.Start(Output_Path)
VB   C#

因此,所有超連結 (HTML 鏈接) 甚至 HTML 表單也會保留在生成的 PDF 中。

從現有的 HTML 文件建立 PDF 文件

本節展示如何渲染任何本地 HTML 文件。這將顯示該文件已使用 file:/ 協議打開,用於所有相對資產如 CSS、圖片和 JavaScript 等。

//Render existing html to pdf
var renderer = new ChromePdfRenderer();
using var Rendered_pdf = renderer.RenderHtmlFileAsPdf("Assets/test1.html");

var Output_Path = "test1_pdf.pdf";
Rendered_pdf.SaveAs(Output_Path);
System.Diagnostics.Process.Start(Output_Path);
//Render existing html to pdf
var renderer = new ChromePdfRenderer();
using var Rendered_pdf = renderer.RenderHtmlFileAsPdf("Assets/test1.html");

var Output_Path = "test1_pdf.pdf";
Rendered_pdf.SaveAs(Output_Path);
System.Diagnostics.Process.Start(Output_Path);
'Render existing html to pdf
Dim renderer = New ChromePdfRenderer()
Dim Rendered_pdf = renderer.RenderHtmlFileAsPdf("Assets/test1.html")

Dim Output_Path = "test1_pdf.pdf"
Rendered_pdf.SaveAs(Output_Path)
System.Diagnostics.Process.Start(Output_Path)
VB   C#

這個策略的優勢在於,它允許開發人員在創建 HTML 內容時在瀏覽器中進行測試。IronPDF 的渲染引擎是基於 Chrome 網頁瀏覽器構建的。因此,建議 將 XML 轉換為 PDF使用XSLT模板可將XML內容列印為PDF。

將 ASP.NET Web Forms 轉換為 PDF 文件

透過一行代碼,您可以將 ASP.NET 線上表單轉換為 PDF 格式,而不是 HTML。將這行代碼放入頁面的程式碼後置檔的 Page_Load 方法中,使其顯示在頁面上。

ASP.NET Web Forms 應用程式可以從頭開始創建或從以前的版本開啟。

如果尚未安裝,請安裝 NuGet 套件。

應使用 using 關鍵字來導入 IronPdf 命名空間。

找出您想要轉換為 PDF 的頁面後置程式碼。例如,使用 ASP.NET 的 Default.aspx.cs 檔案。

RenderThisPageAsPdfAspxToPdf 類中的一個方法。

using IronPdf;
using System;
using System.Web.UI;

namespace WebApplication7
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {            
            AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.InBrowser);
        }
    }
}
using IronPdf;
using System;
using System.Web.UI;

namespace WebApplication7
{
    public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {            
            AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.InBrowser);
        }
    }
}
Imports IronPdf
Imports System
Imports System.Web.UI

Namespace WebApplication7
	Partial Public Class _Default
		Inherits Page

		Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
			AspxToPdf.RenderThisPageAsPdf(AspxToPdf.FileBehavior.InBrowser)
		End Sub
	End Class
End Namespace
VB   C#

這需要 IronPdf.Extensions.ASPX 來自 NuGet 官方頁面 安裝。由於ASPX已被MVC模型取代,因此在 .NET Core 中不可用。

應用 HTML 樣板

對於內聯網和網站開發人員來說,樣板或“批量生成” PDF 的能力是一個標準必需品。

與其為 PDF 文件創建樣板,IronPDF 庫提供一種通過利用現有、經過良好測試的技術為 HTML 生成樣板的方式。

當 HTML 樣板由查詢字串或資料庫的數據補充時,會生成一個動態生成的 PDF 文件,如下所示。

舉例來說,考慮 C# String 類及其屬性。Format 方法非常適合於基本的“郵件合併”操作。

String.Format("<h1>Hello {}!<h1/>","World");
String.Format("<h1>Hello {}!<h1/>","World");
String.Format("<h1>Hello {}!<h1/>","World")
VB   C#

由於HTML檔案可能非常龐大,因此通常會使用任意佔位符,例如 [[名稱]] 然後用準確的數據取代它們。

以下示例將生成三個PDF文檔,每個文檔都將針對不同的用戶進行自定義。

var HtmlTemplate = "<p>[[NAME]]</p>";
var Names = new [] { "John", "James", "Jenny" };
foreach (var name in Names) {
var HtmlInstance = HtmlTemplate.Replace("[[NAME]]", name);

var renderer = new ChromePdfRenderer();
using var pdf = renderer.RenderHtmlAsPdf(HtmlInstance);
pdf.SaveAs(name + ".pdf");
}
var HtmlTemplate = "<p>[[NAME]]</p>";
var Names = new [] { "John", "James", "Jenny" };
foreach (var name in Names) {
var HtmlInstance = HtmlTemplate.Replace("[[NAME]]", name);

var renderer = new ChromePdfRenderer();
using var pdf = renderer.RenderHtmlAsPdf(HtmlInstance);
pdf.SaveAs(name + ".pdf");
}
Dim HtmlTemplate = "<p>[[NAME]]</p>"
Dim Names = { "John", "James", "Jenny" }
For Each name In Names
Dim HtmlInstance = HtmlTemplate.Replace("[[NAME]]", name)

Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(HtmlInstance)
pdf.SaveAs(name & ".pdf")
Next name
VB   C#

ASP.NET MVC 路由下載此頁面的 PDF 版本

使用 ASP.NET MVC 框架,您可以將用戶導向 PDF 文件。

在建立新的 ASP.NET MVC 應用程式或向現有的應用程式新增現有的 MVC 控制器時,請選擇此選項。選擇 ASP.NET Web 應用程式,啟動 Visual Studio 的新專案精靈 (.NET框架) > 從下拉選單選擇 MVC。或者,您可以開啟一個現有的 MVC 專案。在控制器資料夾中的 HomeController 檔案中替換 Index 方法,或在控制器資料夾中創建一個新的控制器。

以下是程式碼應該如何編寫的範例:

using IronPdf;
using System;
using System.Web.Mvc;

namespace WebApplication8.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            using var PDF = HtmlToPdf.StaticRenderUrlAsPdf(new Uri("https://en.wikipedia.org"));
            return File(PDF.BinaryData, "application/pdf", "Wiki.Pdf");
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
}
using IronPdf;
using System;
using System.Web.Mvc;

namespace WebApplication8.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            using var PDF = HtmlToPdf.StaticRenderUrlAsPdf(new Uri("https://en.wikipedia.org"));
            return File(PDF.BinaryData, "application/pdf", "Wiki.Pdf");
        }

        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";

            return View();
        }

        public ActionResult Contact()
        {
            ViewBag.Message = "Your contact page.";

            return View();
        }
    }
}
Imports IronPdf
Imports System
Imports System.Web.Mvc

Namespace WebApplication8.Controllers
	Public Class HomeController
		Inherits Controller

		Public Function Index() As ActionResult
			Dim PDF = HtmlToPdf.StaticRenderUrlAsPdf(New Uri("https://en.wikipedia.org"))
			Return File(PDF.BinaryData, "application/pdf", "Wiki.Pdf")
		End Function

		Public Function About() As ActionResult
			ViewBag.Message = "Your application description page."

			Return View()
		End Function

		Public Function Contact() As ActionResult
			ViewBag.Message = "Your contact page."

			Return View()
		End Function
	End Class
End Namespace
VB   C#

新增封面頁到 PDF 文件

在 ASP.NET 中使用 C# 和 IronPDF 查看 PDF 文件,圖 1:在 PDF 文件中添加封面頁面

為PDF文件添加封面頁面

IronPDF簡化了合併PDF文件的過程。這種技術最常見的應用是向已渲染的PDF文件中添加封面頁或背頁。

為此,請準備封面頁,然後使用PdfDocument功能。

要合併這兩個文件,請使用 合併 靜態方法。

var renderer = new ChromePdfRenderer();
using var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");
using var merged = PdfDocument.Merge(new PdfDocument("CoverPage.pdf"), pdf);
merged.SaveAs("Combined.Pdf");
var renderer = new ChromePdfRenderer();
using var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/");
using var merged = PdfDocument.Merge(new PdfDocument("CoverPage.pdf"), pdf);
merged.SaveAs("Combined.Pdf");
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf/")
Dim merged = PdfDocument.Merge(New PdfDocument("CoverPage.pdf"), pdf)
merged.SaveAs("Combined.Pdf")
VB   C#

在您的文件中添加浮水印

最後但並非最不重要的是,使用C#代碼可以在PDF文件中添加浮水印;這可以用來在文件的每一頁上添加聲明,指出這是“機密”或“樣本”。

// prepare a stamp
HtmlStamper stamper = new HtmlStamper("<h2 style='color:red'>SAMPLE</h2>")
{
    HorizontalOffset = new Length(-3, MeasurementUnit.Inch),
    VerticalAlignment = VerticalAlignment.Bottom
};

// Stamps a watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
using var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyStamp(stamper);
pdf.SaveAs(@"C:\PathToWatermarked.pdf");
// prepare a stamp
HtmlStamper stamper = new HtmlStamper("<h2 style='color:red'>SAMPLE</h2>")
{
    HorizontalOffset = new Length(-3, MeasurementUnit.Inch),
    VerticalAlignment = VerticalAlignment.Bottom
};

// Stamps a watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();
using var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyStamp(stamper);
pdf.SaveAs(@"C:\PathToWatermarked.pdf");
' prepare a stamp
Dim stamper As New HtmlStamper("<h2 style='color:red'>SAMPLE</h2>") With {
	.HorizontalOffset = New Length(-3, MeasurementUnit.Inch),
	.VerticalAlignment = VerticalAlignment.Bottom
}

' Stamps a watermark onto a new or existing PDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyStamp(stamper)
pdf.SaveAs("C:\PathToWatermarked.pdf")
VB   C#

您的 PDF 文件可以使用密碼保護

當您設定 PDF 文件的密碼屬性時,該文件將被加密,並且用戶必須提供正確的密碼才能閱讀文件。本範例可用於 .NET Core 主控台應用程式。

using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string [] args)
        {
            var renderer = new ChromePdfRenderer();
            using var pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World<h1>");
            pdfDocument.Password = "strong!@#pass&^%word";
            pdfDocument.SaveAs("secured.pdf");
        }
    }
}
using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string [] args)
        {
            var renderer = new ChromePdfRenderer();
            using var pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World<h1>");
            pdfDocument.Password = "strong!@#pass&^%word";
            pdfDocument.SaveAs("secured.pdf");
        }
    }
}
Imports IronPdf

Namespace ConsoleApp
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim renderer = New ChromePdfRenderer()
			Dim pdfDocument = renderer.RenderHtmlAsPdf("<h1>Hello World<h1>")
			pdfDocument.Password = "strong!@#pass&^%word"
			pdfDocument.SaveAs("secured.pdf")
		End Sub
	End Class
End Namespace
VB   C#

除了上述優點之外,通過IronPDF,您還可以:

從PDF中提取圖片和文本 使用OCR

創建PDF是一項極具挑戰性的任務;有些人可能從未接觸過應該使用的基本概念來製作最優秀的文件。因此,IronPDF非常有幫助,因為它簡化了PDF的創建過程,從而改善了從PDF和HTML創建的文件的原始展示。

根據文檔中提供的信息和競爭對手的分析:IronPDF是在創建PDF時最有效的工具,使任何人,包括在辦公室或學校工作的人,都能簡單地高效完成工作。

如何使用 C# 和 IronPDF 在 ASP.NET 中查看 PDF 文件,圖 2:如何使用 C# 和 IronPDF 在 ASP.NET 中查看 PDF 文件

如何使用C#和IronPDF在ASP.NET中查看PDF檔案

IronPDF是一個必備的.NET庫。現在就獲取它 使用NuGet試試看.

< 上一頁
從 HTML 文件在 C# 中建立 PDF
下一個 >
使用 IRON PDF 在 C# 中生成 PDF 文件的5個步驟

準備開始了嗎? 版本: 2024.10 剛剛發布

免費 NuGet 下載 總下載次數: 10,993,239 查看許可證 >