使用IRONPDF

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

更新 2024年一月20日
分享:

大多数人使用专用的桌面应用程序在计算机上打开 PDF,但软件工程师也可以使用 IronPDF 以 C# 编程方式创建、查看、打开、阅读和编辑 PDF 内容。

当在 ASP.NET 和 C# 中读取 PDF 文件时,IronPDF 变成了一个非常有用的插件。

您可以下载 项目文件.

通过 IronPDF,您可以使用 C# 快速、轻松地创建 PDF 文档。

PDF 文档的大部分设计和布局可以通过使用现有的 HTML 资产或将任务委托给网页设计员工来完成;它可以处理将 PDF 生成集成到应用程序中的耗时任务,并自动将准备好的文档转换为 PDF。使用 .NET,您可以

  • 将网络表格、本地 HTML 网页和其他网站转换为 PDF 格式。
  • 允许用户下载文档,通过电子邮件与他人共享,或将文档保存在云中。
  • 为客户开具发票并提供报价;编写报告;洽谈合同和其他文书工作。
  • 使用 ASP.NET、ASP.NET Core、Web 窗体、MVC、.NET Framework 和 .NET Core 上的 Web API 以及其他编程语言。

设置 IronPDF 库

有两种安装库的方法;

使用 NuGet 软件包管理器安装

IronPDF 可通过 Visual Studio 加载项或 NuGet 软件包管理器从命令行安装。导航到控制台,在 Visual Studio 中键入以下代码:

Install-Package IronPdf

直接从网站下载 DLL 文件

您也可以直接从网站上获取 DLL 文件。

切记在任何使用 IronPDF 的 cs 类文件顶部加入以下注释:

查看 IronPDF 功能.

IronPDF 是一款必备插件。现在就获取 尝试使用 NuGet.

在 .NET C&num 中从 HTML 字符串创建 PDF 文件;

在 C# 中从 HTML 字符串创建 PDF 文件是一种在 C# 中创建新 PDF 文件的高效且有益的方法。

将Html渲染为Pdf 函数的 ChromePdfRenderer 提供了一种将任何 HTML (HTML5) 由于 IronPDF DLL 中嵌入了谷歌 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 URL

现有的 URL 可以通过 C# 以非常高效和直接的方式渲染成 PDF;这也使团队能够将 PDF 设计和后端 PDF 渲染工作划分到不同的部门,这非常有益。

下面的代码演示了如何通过 URL 呈现 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 文件。对于 CSS、图片和 JavaScript 等所有相关资产,文件似乎都是使用 file:/ 协议打开的。

//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将 XML 内容打印为 PDF 可使用 XSLT 模板。

将 ASP.NET Web 窗体转换为 PDF 文件

只需一行代码,您就可以将 ASP.NET 在线表单转换为 PDF 格式而不是 HTML 格式。将这行代码放在页面代码隐藏文件的 Page_Load 方法中,使其出现在页面上。

ASP.NET Web 窗体应用程序既可以从头开始创建,也可以从以前的版本打开。

安装 NuGet 软件包(如果尚未安装)。

应使用 using 关键字导入 IronPdf 命名空间。

找到要转换为 PDF 的页面后面的代码。例如,使用 ASP.NET 的文件 Default.aspx.cs

RenderThisPageAsPdf "是 "AspxToPdf "类的一个方法。

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#

这需要 从 NuGet 官方页面下载 IronPdf.Extensions.ASPX 安装。由于 ASPX 已被 MVC 模型取代,.NET Core 中没有该功能。

应用 HTML 模板

对于内联网和网站开发人员来说,模板化或 "批量生产" PDF 的能力是标准的必需品。

与创建 PDF 文档模板不同,IronPDF 库提供了一种利用现有的、久经考验的技术生成 HTML 模板的方法。

如下图所示,在 HTML 模板中添加来自查询字符串或数据库的数据后,就能动态生成 PDF 文件。

以 C# 字符串类及其属性为例。格式方法可以很好地进行基本的 "邮件合并 "操作。

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 Application,启动 Visual Studio 新项目向导 (.NET框架) > MVC。或者,你也可以打开一个现有的 MVC 项目。替换 Controllers 文件夹中 HomeController 文件的 Index 方法,或在 Controllers 文件夹中创建一个新控制器。

以下是代码编写示例:

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 文档添加封面

如何使用 C&num 和 IronPDF 在 ASP.NET 中查看 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 是一项极具挑战性的工作;有些人可能从未接触过制作最出色文档所应采用的基本概念。因此,IronPDF 的帮助非常大,它不仅简化了 PDF 的创建过程,还改善了 PDF 和 HTML 文档的原始表现形式。

根据文档中提供的信息和竞争对手分析:IronPDF 是创建 PDF 时最有效的工具,任何人(包括在办公室或学校工作的人员)都能轻松高效地完成任务。

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

如何使用 C&num 和 IronPDF 在 ASP.NET 中查看 PDF 文件

IronPDF 是您必备的 .NET 库。现在就获取 尝试使用 NuGet.

< 前一页
从HTML文件在C#中创建PDF
下一步 >
使用IronPDF在C#中生成PDF文件的5个步骤

准备开始了吗? 版本: 2024.9 刚刚发布

免费NuGet下载 总下载量: 10,731,156 查看许可证 >