当前位置: 欣欣网 > 码农

强大的 .NET PDF处理神器:PDFSharp

2024-05-25码农

前言

PDFSharp是一款开源的.NET库,专为处理PDF文档而设计。它以其丰富的功能和易用性赢得了广大开发者的青睐。无论是创建、编辑、合并、拆分还是转换PDF文件,PDFSharp都能轻松应对。

正文

目前.NET 平台常见的PDF类库

  • Aspose: https://reference.aspose.com/

  • QuestPDF: https://www.questpdf.com/

  • Spire: https://www.e-iceblue.cn/Introduce/Spire-Office-NET.html

  • iTextSharp: https://github.com/itext/itextsharp

  • 有一说一都挺好用的,个人特别喜欢 QuestPDF它基于 C# Fluent API 提供全面的布局引擎;但是这些库要么属于商业库价格不菲(能理解收费),但是年费太贵了。

    要么是有条件限制开源的,如Spire开源版本有各种限制。iTextSharp虽然没有限制,但是开源协议不友好(AGPL),用于闭源商业软件属于要挂耻辱柱的行为了。无意间发现了另一款基于.NET 6 的跨平台、免费开源(MIT协议)pdf处理库。

    PDFSharp: https://docs.pdfsharp.net/,该库还有基于.NET Framework的版本 https://pdfsharp.net/ 。 .NET 6 版本 去年刚发布 ,一个 较为活跃的社区 https://forum.pdfsharp.net/。

    尝试使用了下,还不错,该有的都有,简单的pdf文件可以直接使用PDFSharp库生成,复杂点的则提供了MigraDoc来编辑。

    自己的小应用都已经上生成环境了,觉得该库是挺ok的了。

    主要功能

    1、创建PDF:无需预先存在的模板,PDFSharp允许您直接从头开始构建PDF文档。

    2、内容插入:支持在PDF页面中添加文本、图像、表格、图形等丰富元素。

    3、格式化:提供字体选择、颜色设定、布局调整等样式控制功能,帮助您创建高度定制化的PDF文档。

    4、合并与拆分:能够将多个PDF文档合并成一个,或将一个PDF文档拆分成多个部分。

    5、加密与解密:对PDF文件进行安全设置,保护文档内容不被非法访问。

    优势特点

    简单易用:PDFSharp提供简洁的API,使开发人员能够快速上手并轻松创建和处理PDF文档。

    全面功能:支持各种PDF操作,包括创建、编辑、合并、拆分、转换和加密等,满足不同的需求。

    PDFSharp广泛应用于各种场景,如生成报告、创建电子书、生成发票和合同等。无论是个人用户还是企业用户,都能从中受益。

    PDFSharp文档

    .NET Framework 文档站点下有很多例子大家可以看看

    我的使用方式较为粗暴,使用 MigraDoc 编辑文档表格,再生成PDF文件。有时间再尝试封装个类似于QuestPDF的扩展库,太喜欢Fluent这种形式了。

    代码示例

    让我们来制作下图的PDF

    新建一个项目,通过Nuget引入PDFsharp、PDFsharp-MigraDoc,

    若用System.Drawing图形库则不用引用SkiaSharp,我的例子使用SkiaSharp图形库便于跨平台。

    首先是字体的导入

    因为PDFSharp本身不支持中文字体,但提供了自定义解析器的处理,所以我们先实现下中文字体解析器。

    先将黑体作为嵌入资源导入项目中,路径是/Fonts/下

    新建一个文件ChineseFontResolver.cs用来实现我们的中文解析器

    好了,开始制作我们的pdf吧

    至此我们就制作好了一个简单的pdf,当然了这里没有加上文件信息那些,仅仅是生成内容罢了,有那些需要的可以自己根据文档站点看看如何设置。

    源码地址

    gitee.com/huangguishen/MyFile/tree/master/PDFSharpDemo

    转自:Hi_Carl

    链接:cnblogs.com/laikwan/p/18206787

    - EOF -

    推荐阅读 点击标题可跳转

    看完本文有收获?请转发分享给更多人

    推荐关注「DotNet」,提升.Net技能

    点赞和在看就是最大的支持❤️