ASP.NET MVC 从视图生成 PDF(代码示例教程)

This article was translated from English: Does it need improvement?
Translated
View the article in English

可以在ASP.NET MVC中提供现有的HTML文件或字符串、现有的PDF文档以及PDF。 我们在下面的教程中概述了如何在您的C#项目中轻松将MVC视图转换为PDF。


步骤 1

1. 安装IronPDF

为了处理现有的PDF文件、HTML文件或字符串,以及在ASP.NET MVC中提供PDF,我们可以使用IronPDF的C# PDF库。 免费下载开发版,并开始以下教程。 通过它访问DLL ZIP 文件或通过NuGet 页面.

Install-Package IronPdf


教程

2. 在ASP.NET MVC中提供PDF服务

要在ASP.NET MVC中提供PDF文档需要生成一个文件结果方法。 With IronPDF, 您可以使用模型-视图-控制器 (模型-视图-控制器 (MVC))返回 PDF 文件。

此方法可以如下由您的控制器提供。

/**
Serve PDF in ASPNET MVC
anchor-serve-pdf-in-asp-net-mvc
**/
public FileResult GetHTMLPageAsPDF(long id) {
  //Create a PDF Document
  using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf and MVC</h1>");
  //return a pdf document from a view
  var contentLength = PDF.BinaryData.Length;
  Response.AppendHeader("Content-Length", contentLength.ToString());
  Response.AppendHeader("Content-Disposition", "inline; filename=Document_" + id + ".pdf");
  return File(PDF.BinaryData, "application/pdf;");
}
/**
Serve PDF in ASPNET MVC
anchor-serve-pdf-in-asp-net-mvc
**/
public FileResult GetHTMLPageAsPDF(long id) {
  //Create a PDF Document
  using var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf and MVC</h1>");
  //return a pdf document from a view
  var contentLength = PDF.BinaryData.Length;
  Response.AppendHeader("Content-Length", contentLength.ToString());
  Response.AppendHeader("Content-Disposition", "inline; filename=Document_" + id + ".pdf");
  return File(PDF.BinaryData, "application/pdf;");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

更高级的例子是,您可以使用 HTML 视图生成 HTML 字符串,然后将其转换为 PDF,如上图所示。


3. 提供现有的PDF文件

为了直接提供服务在其他 ASP.NET 中使用 PDF 文件此外,还可以在上下文中使用。

/**
Serve Existing PDF
anchor-serve-existing-pdf-file
**/
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition","attachment;filename=\"FileName.pdf\"");
// edit this line to display ion browser and change the file name
Response.BinaryWrite(System.IO.File.ReadAllBytes("MyPdf.pdf"));
// gets our pdf as a byte array and then sends it to the buffer
Response.Flush();
Response.End();
/**
Serve Existing PDF
anchor-serve-existing-pdf-file
**/
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition","attachment;filename=\"FileName.pdf\"");
// edit this line to display ion browser and change the file name
Response.BinaryWrite(System.IO.File.ReadAllBytes("MyPdf.pdf"));
// gets our pdf as a byte array and then sends it to the buffer
Response.Flush();
Response.End();
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

4.服务现有 HTML 文件或字符串

/**
Serve Existing HTML File or String
anchor-serve-existing-html-file-or-string
**/
 var Renderer = new IronPdf.ChromePdfRenderer();
 using var PDF = Renderer.RenderHTMLFileAsPdf("Project/MyHtmlDocument.html");
// or to convert an HTML string
//var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition","attachment;filename=\"FileName.pdf\"");
// edit this line to display ion browser and change the file name
Response.BinaryWrite( PDF.BinaryData );
Response.Flush();
Response.End();
/**
Serve Existing HTML File or String
anchor-serve-existing-html-file-or-string
**/
 var Renderer = new IronPdf.ChromePdfRenderer();
 using var PDF = Renderer.RenderHTMLFileAsPdf("Project/MyHtmlDocument.html");
// or to convert an HTML string
//var PDF = Renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition","attachment;filename=\"FileName.pdf\"");
// edit this line to display ion browser and change the file name
Response.BinaryWrite( PDF.BinaryData );
Response.Flush();
Response.End();
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#