前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >强大的 .NET PDF处理神器:PDFSharp

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

作者头像
郑子铭
发布2024-06-18 16:28:32
2010
发布2024-06-18 16:28:32
举报

前言

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,当然了这里没有加上文件信息那些,仅仅是生成内容罢了,有那些需要的可以自己根据文档站点看看如何设置。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DotNet NB 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档