在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
将 CSHTML 转换为 PDF 是许多应用程序的共同要求。使用 C# 中的 IronPDF 库可以轻松完成这项任务。
IronPDF 是一种流行的 .NET 库,它使开发人员能够以编程方式创建、读取、编辑和转换 PDF 文档。在本文中,我们将通过示例教你如何使用 IronPDF 在 C# 中将 CSHTML 转换为 PDF。
在开始之前,让我们先讨论一下本教程所必需的一些重要概念。
PDF 转换器是一种将任何可打印文档或网页转换为 PDF 文档的工具。它可用于从 HTML、Word、Excel 或任何其他可打印文档生成 PDF 文件。PDF 转换器有多种形式,包括在线工具、桌面软件和库。
Razor 视图是 ASP.NET Core 中用于动态生成 HTML 页面的视图引擎。它是一种将 HTML 标记与 C# 代码相结合的标记语法。
Razor View
Razor 视图通过将表现逻辑与业务逻辑分离,使开发人员能够轻松创建动态网页。
控制器类是在 ASP.NET Core 应用程序中处理传入 HTTP 请求的 C# 类。它包含与特定 HTTP 动词相对应的方法 (例如,GET、POST、PUT、DELETE)并返回 HTTP 响应。
NuGet 软件包管理器是 Visual Studio 中用于管理 .NET 项目中软件包的工具。它可以让开发人员轻松地在项目中安装、更新和卸载软件包。NuGet 包是包含可重用代码的库,通过 NuGet 包管理器发布。
依赖注入(Dependency Injection)是一种设计模式,它允许开发人员通过在类中注入依赖关系来解耦应用程序组件。它通过减少依赖关系,使代码更加模块化,从而使测试和维护应用程序变得更加容易。
既然我们已经介绍了重要的概念,下面就让我们深入了解使用 IronPDF 将 CSHTML 转换为 PDF 的过程。
CSHTML 是 C# Razor Syntax HTML 的缩写。它是一种包含 HTML 标记和 C# 代码的文件类型。这些文件用于 AS.NET Core MVC 应用程序,以定义网页的用户界面。Razor 视图引擎用于解释 CSHTML 文件并生成可由网页浏览器渲染的 HTML 输出。
CSHTML5
IronPDF 是一个功能强大的 .NET 库,允许开发人员用 C# 创建、读取、编辑和转换 PDF 文档。它是在.NET 应用程序中以编程方式生成 PDF 文档的常用工具。IronPDF 支持多种功能,包括 PDF 生成、PDF 操作、PDF 转换和 PDF 渲染。
IronPDF for .NET
使用 IronPDF 将 CSHTML 转换为 PDF 是一个简单的过程。该库提供了将 HTML 文件转换为 PDF 文档的便捷 API。以下是使用 IronPDF 在 C# 中将 CSHTML 转换为 PDF 的步骤:
第一步是安装 IronPDF 在你的 C# 项目中。您可以使用 NuGet 软件包管理器安装 IronPDF,也可以下载 IronPDF.dll 文件并将其添加到项目引用中。要使用 NuGet 软件包管理器安装 IronPDF,请打开软件包管理器控制台并运行以下命令
Install-Package IronPdf
接下来,创建一个 CSHTML 文件,其中包含要转换为 PDF 的内容。在本例中,我们将创建一个简单的 CSHTML 文件,显示文本 "你好,世界!".
@{
Layout = null;
}
Hello
Hello, World!
@{
Layout = null;
}
Hello
Hello, World!
@
If True Then
Layout = Nothing
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' Hello Hello, World!
将此文件保存为项目目录中的 "Hello.cshtml"。
*C#* 中的 PDF 文件
将 CSHTML 文件转换为 PDF,我们将使用 C# 中的 IronPDF 库。下面是将 "Hello.cshtml "转换为 PDF 的代码:
using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;
namespace CSHTMLtoPDF.Controllers
{
public class HomeController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
public HomeController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Index()
{
var items = new [] { "Item 1", "Item 2", "Item 3" };
return View(items);
}
public IActionResult DownloadPDF()
{
var items = new [] { "Item 1", "Item 2", "Item 3" };
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);
var contentDisposition = new Syste.NET.Mime.ContentDisposition
{
FileName = "Items.pdf",
Inline = false,
};
Response.Headers.Add("Content-Disposition", contentDisposition.ToString());
return File(pdf.BinaryData, "application/pdf");
}
}
}
using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;
namespace CSHTMLtoPDF.Controllers
{
public class HomeController : Controller
{
private readonly IRazorViewRenderer _viewRenderService;
public HomeController(IRazorViewRenderer viewRenderService)
{
_viewRenderService = viewRenderService;
}
public IActionResult Index()
{
var items = new [] { "Item 1", "Item 2", "Item 3" };
return View(items);
}
public IActionResult DownloadPDF()
{
var items = new [] { "Item 1", "Item 2", "Item 3" };
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);
var contentDisposition = new Syste.NET.Mime.ContentDisposition
{
FileName = "Items.pdf",
Inline = false,
};
Response.Headers.Add("Content-Disposition", contentDisposition.ToString());
return File(pdf.BinaryData, "application/pdf");
}
}
}
Imports System.IO
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Namespace CSHTMLtoPDF.Controllers
Public Class HomeController
Inherits Controller
Private ReadOnly _viewRenderService As IRazorViewRenderer
Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
_viewRenderService = viewRenderService
End Sub
Public Function Index() As IActionResult
Dim items = { "Item 1", "Item 2", "Item 3" }
Return View(items)
End Function
Public Function DownloadPDF() As IActionResult
Dim items = { "Item 1", "Item 2", "Item 3" }
Dim renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items)
Dim contentDisposition = New Syste.NET.Mime.ContentDisposition With {
.FileName = "Items.pdf",
.Inline = False
}
Response.Headers.Add("Content-Disposition", contentDisposition.ToString())
Return File(pdf.BinaryData, "application/pdf")
End Function
End Class
End Namespace
让我们一步步来学习这段代码:
RenderRazorViewToPdf
扩展方法将 Razor 视图中的数据生成 PDF 文件。Content-Disposition
标头,强制下载 PDF 文件,而不是在浏览器中显示。这就是在 C# 中使用 IronPDF 将 CSHTML 转换为 PDF 的基本代码。不过,您可以使用许多选项和设置来定制 PDF 输出。让我们来看看其中的一些选项。
IronPDF 提供了许多自定义 PDF 文件输出的选项。您可以设置以下选项 页面大小, 利润方向、 页眉和页脚等等。下面举例说明如何自定义 PDF 输出:
using IronPdf;
namespace ConsoleApp
{
class Program
{
static void Main(string [] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
MaxHeight = 20, //millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, //millimeters
HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
DrawDividerLine = true
};
var pdf = renderer.RenderHtmlAsPdf("\r\n\r\n\r\n \r\n Hello\r\n\r\n\r\n Hello, World!\r\n\r\n");
pdf.SaveAs("Hello.PDF");
}
}
}
using IronPdf;
namespace ConsoleApp
{
class Program
{
static void Main(string [] args)
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 10;
renderer.RenderingOptions.MarginBottom = 10;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
MaxHeight = 20, //millimeters
HtmlFragment = "<img src='logo.png'>",
BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
MaxHeight = 15, //millimeters
HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
DrawDividerLine = true
};
var pdf = renderer.RenderHtmlAsPdf("\r\n\r\n\r\n \r\n Hello\r\n\r\n\r\n Hello, World!\r\n\r\n");
pdf.SaveAs("Hello.PDF");
}
}
}
Imports Microsoft.VisualBasic
Imports IronPdf
Namespace ConsoleApp
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.MarginTop = 10
renderer.RenderingOptions.MarginBottom = 10
renderer.RenderingOptions.MarginLeft = 20
renderer.RenderingOptions.MarginRight = 20
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.MaxHeight = 20,
.HtmlFragment = "<img src='logo.png'>",
.BaseUrl = (New Uri("C:\assets\images\")).AbsoluteUri
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.MaxHeight = 15,
.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>",
.DrawDividerLine = True
}
Dim pdf = renderer.RenderHtmlAsPdf(vbCrLf & vbCrLf & vbCrLf & " " & vbCrLf & " Hello" & vbCrLf & vbCrLf & vbCrLf & " Hello, World!" & vbCrLf & vbCrLf)
pdf.SaveAs("Hello.PDF")
End Sub
End Class
End Namespace
在本例中,我们首先创建一个 ChromePdfRenderer
类的实例。然后,我们使用 "ChromePdfRenderer "类的 "RenderingOptions "属性设置各种选项。以下是我们设置的一些选项:
PaperSize
: 将 PDF 文档的纸张大小设置为 A4。HtmlHeader
:设置 PDF 文档的页眉,显示文档标题和分隔线。HtmlFooter
:设置 PDF 文档的页脚,以显示页码、总页数和当前日期。设置选项后,我们调用 将Html渲染为Pdf 方法中添加与之前相同的 HTML 内容。最后,我们将 PDF 文档保存到名为 "Hello.PDF "的文件中。
有了所有必要的代码,我们现在就可以测试应用程序了。请按照以下步骤操作:
如果一切运行正常,您应该会看到一个 PDF 文档,其中包含您之前定义的项目列表。
PDF 转 CSHTML
为了演示如何使用 IronPDF 将 PDF 转换为 CSHTML 文件,我们将在 Visual Studio 中创建一个新的控制台应用程序,并使用 IronPDF 将示例 PDF 文档转换为 CSHTML 文件。请按照以下步骤操作:
打开 Visual Studio,从菜单中选择 "文件 > 新建 > 项目",然后选择 "控制台应用程序",创建一个新的控制台应用程序。 (.NET框架)"或 "控制台应用程序 (.NET Core)项目模板列表中的""。
接下来,我们需要在控制台应用程序中安装 IronPDF NuGet 包。为此,请右键单击解决方案资源管理器中的项目,然后从上下文菜单中选择 "管理 NuGet 包"。
在 NuGet 包管理器中搜索 "IronPDF",并从搜索结果中选择 "IronPDF "包。单击 "Install(安装)"按钮安装软件包及其依赖项。
在本例中,我们将使用一个要转换为 CSHTML 文件的 PDF 示例文件。您可以在此步骤中使用任何您喜欢的 PDF 文件。
右键单击解决方案资源管理器中的项目,从上下文菜单中选择 "添加 > 现有项",将 PDF 文件添加到项目中。
我们还需要创建一个空的 CSHTML 文件,用于存储转换后的 HTML 字符串。为此,请右键单击解决方案资源管理器中的项目,然后从上下文菜单中选择 "添加 > 新项"。从模板列表中选择 "HTML 页面",然后为文件命名 (例如:"converted.cshtml") 然后点击 "添加"。
有了必要的文件,我们现在就可以编写代码,使用 IronPDF 将 PDF 转换为 CSHTML 文件。在控制台应用程序的主方法中添加以下代码:
using IronPdf;
namespace PdfToHtml
{
class Program
{
static void Main(string [] args)
{
// Load the PDF file
PdfDocument pdf = PdfDocument.FromFile("sample.PDF");
// Convert the PDF to an HTML string
string html = pdf.ToHtml();
// Save the HTML string to the CSHTML file
}
}
}
using IronPdf;
namespace PdfToHtml
{
class Program
{
static void Main(string [] args)
{
// Load the PDF file
PdfDocument pdf = PdfDocument.FromFile("sample.PDF");
// Convert the PDF to an HTML string
string html = pdf.ToHtml();
// Save the HTML string to the CSHTML file
}
}
}
Imports IronPdf
Namespace PdfToHtml
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Load the PDF file
Dim pdf As PdfDocument = PdfDocument.FromFile("sample.PDF")
' Convert the PDF to an HTML string
Dim html As String = pdf.ToHtml()
' Save the HTML string to the CSHTML file
End Sub
End Class
End Namespace
IronPDF 之所以受到 .NET 开发人员的青睐,主要有以下几个原因:
强大的 PDF 生成 能力:IronPDF 为以编程方式创建和处理 PDF 文档提供了广泛的功能和选项,包括向 PDF 页面添加文本、图像和其他内容的功能,以及合并和拆分现有 PDF 文档的功能。
多功能 PDF 转换 功能:IronPDF 不仅允许开发人员生成 PDF 文档,还提供将 PDF 转换为 HTML 字符串或 CSHTML 文件的功能。当您需要在 Web 应用程序中显示 PDF 内容或从 PDF 文档中提取数据并将其用于基于 Web 的工作流程时,这将非常有用。
易于使用 应用程序接口:IronPDF 的应用程序接口(API)设计直观、易于使用,具有大量辅助方法和属性,使开发人员可以轻松地以编程方式生成和处理 PDF 文档。
强大 社区 支持:IronPDF 拥有一个由 .NET 开发人员组成的庞大而活跃的社区,他们为 IronPDF 的开发做出了贡献,并为使用该库的其他开发人员提供支持。
良好的文档:IronPDF 的文档内容广泛、条理清晰,其中包括详细的 API 参考文档、教程和示例,使开发人员能够轻松上手并学习如何使用该库。
IronPDF 结合了强大的 PDF 生成和转换功能、易于使用的 API、强大的社区支持和良好的文档,使其成为需要在应用程序中处理 PDF 文档的 .NET 开发人员的首选。
将 CSHTML 转换为 PDF 是许多应用程序的共同要求。使用 IronPDF,可以用 C# 轻松完成这项任务。在本文中,我们将通过示例向您介绍使用 IronPDF 将 CSHTML 转换为 PDF 的步骤。
我们还向您展示了如何通过设置纸张大小、页边距、页眉和页脚等各种选项来定制 PDF 输出。有了 IronPDF,您就可以从 CSHTML 文件快速、轻松地创建高质量的 PDF 文档。
无论您是需要从头开始创建 PDF 文档,将 PDF 转换为 HTML 字符串或 CSHTML 文件,还是从 PDF 文档中提取数据,IronPDF 都能提供灵活直观的 API,让您轻松完成工作。
IronPDF 拥有强大的社区支持和丰富的文档,是需要在应用程序中处理 PDF 的 .NET 开发人员的首选。通过购买 Iron 软件包,开发人员可以以优惠的价格获得一套全面的.NET 库,用于处理常见的文件格式,这对于任何 .NET 开发团队来说都是极具价值的。
如果您需要在 .NET 应用程序中处理 PDF 文档,IronPDF 绝对值得考虑。凭借其强大的功能、易用性和一系列许可选项,它是一款多功能、可靠的工具,可以帮助您快速高效地完成工作。
9个 .NET API 产品 用于您的办公文件