半岛外围网上直营

国产化PDF处理控件Spire.PDF教程:在 ASP.NET Core 中创建 PDF的分步指南

翻译|行业资讯|编辑:吉炜炜|2025-09-15 10:31:48.417|阅读 55 次

概述:在 ASP.NET 应用程序中生成 PDF 是一个常见需求——无论是生成发票、报告、表单,还是导出动态内容。在本教程中,我们将演示如何在 ASP.NET Core Web 应用程序中使用 Spire.PDF for .NET 生成 PDF 文档,包括从零创建 PDF 以及将 HTML 转换为 PDF 的示例。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

在 ASP.NET 应用程序中生成 PDF 是一个常见需求——无论是生成发票、报告、表单,还是导出动态内容。与其依赖复杂的 PDF API 或第三方打印驱动程序,不如使用 Spire.PDF for .NET,这是一款专业且轻量级的库,能够让开发人员以编程方式创建和操作 PDF 文档。

在本教程中,我们将演示如何在 ASP.NET Core Web 应用程序中使用 Spire.PDF for .NET 生成 PDF 文档,包括从零创建 PDF 以及将 HTML 转换为 PDF 的示例。

Spire.PDF for .NET 

加入Spire技术交流QQ群(125237868),与更多开发者一起提升文档开发技能。

为什么选择 Spire.PDF for .NET?

Spire.PDF 是一款专为开发人员设计的 .NET PDF 库,能够快速、可靠地处理 PDF 功能。其主要优势包括: 

  • 无需依赖 Adobe —— 独立运行,无需安装 Acrobat。
  • 全面的 PDF 控制 —— 可创建、读取、编辑、合并、拆分或保护 PDF。
  • 高质量渲染 —— 保留布局、字体、CSS 和图像。
  • 支持 ASP.NET 与 ASP.NET Core —— 兼容 Web Forms 和 MVC。
  • 灵活的生成方式 —— 可从零创建 PDF,或基于 HTML、图像、流生成。

分步教程:在 ASP.NET Core Web 应用中生成 PDF

第一步:创建新的 ASP.NET Core Web 应用

  1. 打开 Visual Studio。
  2. 选择 创建新项目 (Create a new project) 。
  3. 选择 ASP.NET Core Web App (Model-View-Controller) → 点击 下一步 (Next) 。
  4. 输入项目名称,例如: PdfDemoApp 。
  5. 选择目标框架(例如 .NET 6、7 或 8)。
  6. 点击 创建 (Create) 。

第二步:通过 NuGet 安装 Spire.PDF

  1. 右键点击项目 → 管理 NuGet 包 (Manage NuGet Packages) 。
  2. 搜索 Spire.PDF 。
  3. 安装 Spire.PDF (最新稳定版本)。

或者使用 程序包管理器控制台 (Package Manager Console) 安装:

Install-Package Spire.PDF

第三步:添加 PDF 生成控制器

  1. 在 Controllers文件夹上右键 → 添加 → 控制器 → MVC 控制器 – 空 (MVC Controller – Empty) 。
  2. 命名为: PdfController.cs 。
  3. 将默认代码替换为以下内容:
using Microsoft.AspNetCore.Mvc;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

namespace PdfDemoApp.Controllers
{
    public class PdfController : Controller
    {
        public IActionResult CreatePdf()
        {
            // 创建一个新的 PDF 文档
            PdfDocument doc = new PdfDocument();
            PdfPageBase page = doc.Pages.Add(PdfPageSize.A4, new PdfMargins(40));

            // 在页面上绘制文本
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("宋体", 25f, FontStyle.Regular), true);
            PdfSolidBrush brush = new PdfSolidBrush(Color.Black);
            page.Canvas.DrawString("通过 ASP.NET Core 创建 PDF", font, brush, 10, 50);

            // 保存到内存流
            using (MemoryStream ms = new MemoryStream())
            {
                doc.SaveToStream(ms);
                doc.Close();
                ms.Position = 0;

                // 返回 PDF 文件
                return File(ms.ToArray(), "application/pdf", "Generated.pdf");
            }
        }
    }
}

第四步(可选):在视图中添加按钮或链接

打开 Views/Home/Index.cshtml (或你的半岛外围网上直营视图文件)。添加如下按钮或链接:

<div>
    <a asp-controller="Pdf" asp-action="CreatePdf" class="btn btn-primary">
        从零创建 PDF
    </a>
</div>

这里使用了 ASP.NET Core 的标签帮助器 (Tag Helpers) 来生成正确的路由(/Pdf/CreatePdf)。

效果图:

除了文本之外,Spire.PDF还支持向 PDF 添加多种元素,例如图片、图形、表格、列表、超链接、注释以及水印。

在 ASP.NET Core 中通过 HTML 创建 PDF

Spire.PDF允许将 HTML 内容直接转换为 PDF 文件。此功能特别适用于生成发票、报告、收据,或将带有样式的网页以一致的格式导出为 PDF。

要将 HTML 渲染为 PDF,Spire.PDF 依赖外部渲染引擎。目前可以选择 Qt WebEngine 或 Google Chrome 。在本指南中,我们将使用 Qt WebEngine。

配置 Qt 插件:

  1. 下载适用于你的操作系统的 Qt WebEngine 插件 :
  1. 解压缩安装包,找到 plugins 目录,例如: C:\plugins-windows-x64\plugins

  2. 在代码中注册插件路径:

HtmlConverter.PluginPath = @"C:\plugins-windows-x64\plugins";
插件准备好后,你就可以参考前面步骤,在控制器中添加以下代码片段,从 HTML 内容生成 PDF 输出。
using Microsoft.AspNetCore.Mvc;
using Spire.Additions.Qt;
using Spire.Pdf.Graphics;
using System.Drawing;

namespace PdfDemoApp.Controllers
{
    public class HtmlToPdfController : Controller
    {
        [HttpGet]
        public IActionResult HtmlToPdf()
        {
            // 示例 HTML 字符串
            string html = @"
                <html>
                  <head>
                    <style>
                      body { font-family: Arial, sans-serif; }
                      h1 { color: #2563eb; }
                    </style>
                  </head>
                  <body>
                    <h1>ASP.NET Core:从 HTML 创建 PDF</h1>
                    <p>此 PDF 使用基于 Qt 的转换器生成。</p>
                  </body>
                </html>";

            // Qt 插件文件夹路径
            // ⚠️ 确保该文件夹在服务器或部署环境中存在
            string pluginPath = @"C:\plugins-windows-x64\plugins";
            HtmlConverter.PluginPath = pluginPath;

            // 创建临时文件路径(在服务器端)
            string tempFile = Path.GetTempFileName();

            // 使用 Qt 将 HTML 字符串转换为 PDF
            HtmlConverter.Convert(
                html,
                tempFile,
                enableJavaScript: true,
                timeout: 100000,                        // 超时时间,毫秒
                pageSize: new SizeF(595, 842),          // A4 页面大小(点)
                margins: new PdfMargins(40),            // 40pt 边距
                LoadHtmlType.SourceCode                 // 从 HTML 字符串加载
            );

            // 将生成的 PDF 读取到内存
            byte[] fileBytes = System.IO.File.ReadAllBytes(tempFile);

            // 清理临时文件
            System.IO.File.Delete(tempFile);

            // 将 PDF 返回到浏览器进行下载
            return File(fileBytes, "application/pdf", "HtmlToPdf.pdf");
        }
    }
}
效果图:

此示例将行内 HTML 转换为格式准确的 PDF。

ASP.NET 生成 PDF 的最佳实践

  • 使用 内存流 (MemoryStream)替代磁盘存储,以提升性能和可扩展性。
  • 对静态 PDF(如条款与条件、表单等)进行 缓存 ,以减少服务器负载。
  • 对带有 CSS 样式的动态报表 ,使用 HTML 转 PDF 的方式生成。
  • 当文档包含复杂布局时,可以考虑使用 模板 (如通过 Spire.Doc 将 )。
  • 使用 密码保护或访问权限 来保障敏感 PDF 的安全性。

总结

借助 Spire.PDF for .NET,你可以轻松在 ASP.NET Core 应用程序中生成 PDF 。无论是从零开始创建 PDF,还是在 C# 中进行 HTML 转 PDF 转换,Spire.PDF 都能提供可靠、对开发者友好的解决方案 —— 无需任何外部依赖。

如果你还需要通过 Word 文档生成 PDF,可以使用 Spire.Doc for .NET ,这是 Spire 系列的另一款产品。两者结合使用,可以覆盖 PDF 文档生成的完整场景 。

通过集成这些工具,开发者能够简化工作流程,减少对 Adobe 或其他第三方组件的依赖,并确保输出文档的一致性与专业质量。这将使你的 ASP.NET PDF 解决方案更具 可扩展性、可维护性 ,并适用于企业级应用。

常见问题解答(FAQs)

Q1. 服务器上需要安装 Adobe Acrobat 吗?

不需要。Spire.PDF 是独立的库,可以完全脱离 Adobe Acrobat 使用。

Q2. 我可以使用 Spire.PDF 将 Word 文档转换为 PDF 吗?

不可以。Word 转 PDF 功能由 Spire.Doc for .NET 提供,而不是 Spire.PDF。如果项目需要,你可以将两者结合使用。

Q3. 如何保护生成的 PDF?

Spire.PDF 支持为 PDF 设置密码、权限和数字签名,以保障文档安全。 

Q4. Spire.PDF 是否支持 ASP.NET Framework?

支持。它既能在 ASP.NET Core中使用,也兼容 ASP.NET Framework 。

————————————————————————————————————————

关于慧都科技:

慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化信创,帮助企业高效构建文档处理的应用程序。

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询 ;技术交流Q群(125237868


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP