使用IRONPDF

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

更新 2024年一月20日
分享:

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

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

您可以下载ASP.NET PDF 演示项目.

使用 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 是必备插件。 立即获取使用 IronPDF NuGet 软件包试用.

在 .NET C# 中从 HTML 字符串创建 PDF 文件

在 C# 中从 HTML 字符串创建 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 的页面背后的代码。 例如,文件 Default.aspx.cs 使用 ASP.NET

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#

这就要求IronPdf.Extensions.ASPX NuGet 软件包安装。 由于 ASPX 已被 MVC 模型取代,因此在 .NET Core 中无法使用。

应用 HTML 模板

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

IronPDF 库不是为 PDF 文档创建模板,而是通过利用现有的、久经考验的技术提供了一种生成 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 Framework,您可以引导用户访问 PDF 文件。

在构建新的 ASP.NET MVC 应用程序或将现有 MVC 控制器添加到现有应用程序时,请选择此选项。 选择 ASP.NET Web 应用程序,启动 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 文档添加封面页

如何在 ASP.NET 中使用 C# 和 IronPDF 查看 PDF 文件,图 1:为 PDF 文档添加封面页 为 PDF 文档添加封面

IronPDF 简化了合并 PDF 文档的过程。 这种技术最常见的应用是在已经渲染好的 PDF 文档中添加封面页或封底页。

为此,请准备一个封面页,然后使用 "PDFDocument "功能。

要合并这两份文档,请使用合并 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");
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#

为您的文档添加水印

最后但并非最不重要的一点是,在 PDF 文档中添加水印可以使用 C# 代码完成; 这可用于在文件的每一页添加免责声明,说明该文件是 "机密 "或 "样本"。

// 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,您还可以:

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

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

免费NuGet下载 总下载量: 11,622,374 查看许可证 >