如何使用Rotativa在ASP.NET Core MVC中创建PDF详解

如何使用 Rotativa 在 ASP.NET Core MVC 中创建 PDF

Rotativa 是一个用于在 ASP.NET Core MVC 中创建 PDF 的开源工具,可以将 Razor 视图转换为 PDF 文件。本攻略将详细介绍如何使用 Rotativa 在 ASP.NET Core MVC 中创建 PDF,并提供多个示例说明。

步骤一:安装 Rotativa

在使用 Rotativa 之前,需要先安装 Rotativa。可以使用以下命令在 NuGet 上安装 Rotativa:

$ dotnet add package Rotativa.AspNetCore

步骤二:创建 Razor 视图

在使用 Rotativa 创建 PDF 之前,需要先创建一个 Razor 视图。以下是一个简单的 Razor 视图示例:

@model IEnumerable<string>

<h1>Names</h1>

<ul>
@foreach (var name in Model)
{
    <li>@name</li>
}
</ul>

以上代码中,定义了一个简单的 Razor 视图,用于显示一组字符串。

步骤三:创建 PDF 控制器

在创建 Razor 视图后,需要创建一个 PDF 控制器,用于将 Razor 视图转换为 PDF 文件。以下是一个简单的 PDF 控制器示例:

public class PdfController : Controller
{
    public IActionResult Index()
    {
        var names = new List<string> { "Alice", "Bob", "Charlie" };
        return View(names);
    }

    public IActionResult GeneratePdf()
    {
        var names = new List<string> { "Alice", "Bob", "Charlie" };
        var pdf = new ViewAsPdf("Index", names);
        return pdf;
    }
}

以上代码中,定义了一个 PdfController 类,用于实现 PDF 控制器。Index 方法返回 Razor 视图,并传递一个字符串列表作为模型。GeneratePdf 方法使用 ViewAsPdf 类将 Razor 视图转换为 PDF 文件,并返回 PDF 文件。

步骤四:配置 Rotativa

在使用 Rotativa 创建 PDF 之前,需要先配置 Rotativa。以下是一个简单的 Rotativa 配置示例:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();

    services.AddMvc().AddRotativa();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}

以上代码中,使用 AddRotativa 方法添加 Rotativa 服务,并在 Configure 方法中配置路由。

示例说明

以下是两个示例说明:

示例一:使用 Razor 视图创建 PDF

使用 Razor 视图创建 PDF,可以将 Razor 视图转换为 PDF 文件。以下是一个简单的示例:

  1. 创建 Razor 视图:
@model IEnumerable<string>

<h1>Names</h1>

<ul>
@foreach (var name in Model)
{
    <li>@name</li>
}
</ul>
  1. 创建 PDF 控制器:
public class PdfController : Controller
{
    public IActionResult Index()
    {
        var names = new List<string> { "Alice", "Bob", "Charlie" };
        return View(names);
    }

    public IActionResult GeneratePdf()
    {
        var names = new List<string> { "Alice", "Bob", "Charlie" };
        var pdf = new ViewAsPdf("Index", names);
        return pdf;
    }
}
  1. 配置 Rotativa:
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();

    services.AddMvc().AddRotativa();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}
  1. 启动应用程序,并访问 /Pdf/GeneratePdf 路径,将会下载一个包含字符串列表的 PDF 文件。

以上示例中,使用 Razor 视图创建了一个 PDF 文件,并成功下载了该文件。

示例二:使用 CSS 样式创建 PDF

使用 CSS 样式创建 PDF,可以将 Razor 视图的样式应用到 PDF 文件中。以下是一个简单的示例:

  1. 创建 Razor 视图:
@model IEnumerable<string>

<h1>Names</h1>

<ul>
@foreach (var name in Model)
{
    <li>@name</li>
}
</ul>

<style>
    h1 {
        color: red;
    }

    li {
        font-size: 20px;
    }
</style>
  1. 创建 PDF 控制器:
public class PdfController : Controller
{
    public IActionResult Index()
    {
        var names = new List<string> { "Alice", "Bob", "Charlie" };
        return View(names);
    }

    public IActionResult GeneratePdf()
    {
        var names = new List<string> { "Alice", "Bob", "Charlie" };
        var pdf = new ViewAsPdf("Index", names)
        {
            CustomSwitches = "--page-offset 0 --footer-center [page]/[toPage]"
        };
        return pdf;
    }
}
  1. 配置 Rotativa:
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();

    services.AddMvc().AddRotativa();
}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
    });
}
  1. 启动应用程序,并访问 /Pdf/GeneratePdf 路径,将会下载一个包含字符串列表和样式的 PDF 文件。

以上示例中,使用 CSS 样式创建了一个 PDF 文件,并成功下载了该文件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何使用Rotativa在ASP.NET Core MVC中创建PDF详解 - Python技术站

(0)
上一篇 2023年5月17日
下一篇 2023年5月17日

相关文章

  • C#实现虚拟键盘的实例详解

    C#实现虚拟键盘的实例详解 介绍 C#可以使用Windows API实现虚拟键盘,可以在程序中模拟用户输入按键,适用于自动化测试、快捷键的实现等应用场景。 实现步骤 1. 引用Windows API库 在C#中,需要引用Windows API库来实现虚拟键盘功能。可以使用DllImport指令引入User32.dll库,该库包含了Windows API中的键…

    C# 2023年6月6日
    00
  • C#使用BinaryFormatter类、ISerializable接口、XmlSerializer类进行序列化和反序列化

    序列化是将对象转换为一种格式,以便在需要时可以将其反序列化为原始对象。C#中使用以下三种方式进行序列化和反序列化: BinaryFormatter类:将对象序列化为二进制格式,是.NET中最常用的序列化方式,可以将序列化后的数据存储到磁盘、内存或网络中。 XmlSerializer类:将对象序列化为XML格式,适合在不同平台间传输数据。 ISerializa…

    C# 2023年5月31日
    00
  • C#调用JS的几种方法

    下面我将详细讲解C#调用JS的几种方法,并提供两个示例说明。 目录 通过WebBrowser控件调用 通过接口调用 通过JavaScriptSerializer序列化调用 示例说明 示例一:通过WebBrowser控件调用 示例二:通过接口调用 通过WebBrowser控件调用 WebBrowser控件可以加载本地HTML文件,也可以通过设置Navigate…

    C# 2023年6月3日
    00
  • C#实现简单串口通信

    为了实现串口通信,首先需要掌握C#中的串口通信相关类和方法。常用的类有SerialPort和SerialDataReceivedEventArgs,常用的方法有Open和Write等。下面分步骤讲解实现串口通信的完整攻略。 1. 新建C#控制台应用程序 首先,打开Visual Studio,新建一个C#控制台应用程序。选择“新建项目”–>“Visua…

    C# 2023年6月7日
    00
  • C#异步编程的三种模式

    当我们使用 C# 开发异步程序时,常会用到异步编程模式(Asynchronous Programming Pattern, APM),任务并行库(Task Parallel Library, TPL)和异步方法(Asynchronous methods)。下面将对这三种 C# 异步编程模式进行详细讲解。 异步编程模式 (APM) 异步编程模式是 C# 中最古…

    C# 2023年6月3日
    00
  • C#窗体实现酒店管理系统

    请看下面的内容: 建立C#窗体项目 要实现酒店管理系统,必须充分发挥C#窗体项目的优势,通过可视化设计实现用户界面,再与数据库连接实现数据的增删改查等操作。 首先,打开Visual Studio,选择“新建项目”,点击“Windows 窗体应用”来创建C#窗体项目。 设计用户界面 在C#窗体项目中,通过拖拽控件来实现用户界面的设计。应该认真考虑用户的使用习惯…

    C# 2023年6月1日
    00
  • Visual Studio 2022 MAUI NU1105(NETSDK1005) 问题处理记录

    以下是关于“VisualStudio2022MAUINU1105(NETSDK1005)问题处理记录”的完整攻略: 1. 问题描述 在使用 Visual Studio 2022 开发 MAUI 应程序时,可能会遇到以下错误: NETSDK1005: Assets file ‘path.assets.json’ not found. 个错误通常发生在创建新的 …

    C# 2023年5月12日
    00
  • Sql Server2012 使用IP地址登录服务器的配置图文教程

    下面我来为您详细讲解SQL Server 2012使用IP地址登录服务器的配置图文教程,包含以下几个步骤: 步骤一:启用SQL Server Mixed Mode身份验证 首先,我们需要开启SQL Server的Mixed Mode身份验证,才能使用账号密码登录。步骤如下: 1.以Windows管理员身份启动SQL Server Management Stu…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部