PDFsharp:强大的 .NET 跨平台 PDF 处理库

news/2025/12/8 0:06:11/文章来源:https://www.cnblogs.com/lzhdim/p/18801961

PDFsharp:强大的 .NET 跨平台 PDF 处理库

Posted on 2025-12-08 00:00  lzhdim  阅读(0)  评论(0)    收藏  举报

一、简介

PDFsharp 是一个功能强大且免费开源的 .NET 库,专为创建、修改和处理 PDF 文档而设计。它支持多种功能,包括但不限于创建 PDF 文件、插入文本和图像、格式化内容、合并与拆分 PDF 文件、加密与解密等。PDFsharp 跨平台特性使其能够兼容 Windows、macOS 和 Linux 等操作系统,并支持 .NET Framework 和 .NET 6 及更高版本。


二、安装与使用

可以通过 NuGet 包管理器安装 PDFsharp,命令如下:

dotnet add package PDFsharp


三、主要功能

1. 创建 PDF

PDFsharp 提供了简单易用的 API,可以轻松创建自定义的 PDF 文件。

using PdfSharp.Drawing;
using PdfSharp.Pdf;
using PdfSharpCore;

PdfDocument document = new PdfDocument();
document.Info.Title = "PDFsharp Example";
PdfPage page = document.AddPage();
XGraphics gfx = XGraphics.FromPdfPage(page);
XFont font = new XFont("Verdana", 20);
gfx.DrawString("Hello, PDFSharp!,Hello, NetShare!", font, XBrushes.Black, new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);
var filePath = @"example.pdf";
document.Save(filePath);

 

2. 插入文本和图像

PDFsharp 支持在 PDF 页面中插入文本和图像。例如,绘制矩形、椭圆和线条的代码如下:

gfx.DrawRectangle(XPens.Black, 10, 10, 100, 50); // 绘制矩形
gfx.DrawEllipse(XPens.Red, 10, 70, 50, 50); // 绘制椭圆
gfx.DrawLine(XPens.Blue, new XPoint(10, 10), new XPoint(100, 100)); // 绘制线条

同时,可以通过 XImage.FromFile() 方法加载图像文件,并使用 gfx.DrawImage() 方法将其绘制到页面上。

 

3. 格式化内容

PDFsharp 提供了丰富的格式化选项,例如设置字体样式、大小、颜色等。通过 XFont 类可以自定义字体属性,满足不同场景下的需求。

4. 合并与拆分 PDF

PDFsharp 支持将多个 PDF 文件合并为一个,或者将一个 PDF 文件拆分为多个部分。以下是合并 PDF 的示例代码:

PdfDocument outputDocument = new PdfDocument();
PdfDocument inputDocument1 = PdfReader.Open("file1.pdf", PdfDocumentOpenMode.Import);
PdfDocument inputDocument2 = PdfReader.Open("file2.pdf", PdfDocumentOpenMode.Import);
outputDocument.AddDocument(inputDocument1);
outputDocument.AddDocument(inputDocument2);
outputDocument.Save("merged.pdf");

拆分 PDF 的代码如下:

PdfDocument inputDocument = PdfReader.Open("file.pdf", PdfDocumentOpenMode.Import);
for (int i = 0; i < inputDocument.PageCount; i++)
{
    PdfDocument outputDocument = new PdfDocument();
    outputDocument.AddPage(inputDocument.Pages[i]);
    outputDocument.Save($"page_{i + 1}.pdf");
}

5. 加密与解密

PDFsharp 提供了对 PDF 文件进行加密和解密的功能,确保文档的安全性。以下是加密 PDF 的示例代码:

PdfDocument document = PdfReader.Open("file.pdf", PdfDocumentOpenMode.Import);
document.Encrypt("password", PdfEncryptionAlgorithm.Aes128);
document.Save("encrypted_file.pdf");


四、注意事项

  1. 1. 资源释放:确保每次使用完 XGraphics 对象、字体等资源后及时释放。
  2. 2. 性能优化:批量处理图形和文本绘制,减少对 PDF页面的重复访问。
  3. 3. 异常处理:实现健壮的异常处理机制,应对文件读写或格式不支持等问题。

五、总结

PDFsharp 是一个功能强大且易于使用的 .NET 库,适用于需要创建、修改和处理 PDF 文件的各种场景。 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/991933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 成都/西南地区品牌定位服务商 TOP5 评测!实战案例驱动+系统化战略权威榜单发布,助力企业实现品牌资产与业绩双增长

随着市场竞争加剧,精准的品牌定位成为企业突破同质化困境、赢得消费者心智的关键。本榜单基于战略系统性、行业适配性、实战效果、资质荣誉四大维度,结合西南地区品牌服务市场深度调研,权威解析2025年五大品牌定位服…

2025 最新成都/西南地区品牌策划/品牌设计/包装设计/营销策划/品牌定位服务商 TOP5 评测!实战案例驱动 + 全案能力实证权威榜单发布,赋能品牌资产与销量双增长

随着市场竞争加剧,专业的品牌策划、设计与营销服务成为企业提升核心竞争力的关键。本榜单基于战略规划深度、创意设计能力、实战案例效果、行业资源整合四大维度,结合企业服务口碑与行业影响力,权威解析2025年五大品…

2025 最新成都/西南地区品牌设计服务商 / 公司 TOP5 评测!战略赋能 + 案例实证权威榜单发布,创意驱动重构品牌价值生态

随着品牌设计成为企业构建核心竞争力、抢占市场话语权的关键环节,市场对专业品牌设计服务的需求持续攀升。本榜单基于战略深度、创意表现力、行业适配性、服务落地效能四大维度(虎虎虎新增“品牌资产增长”维度),结…

2025辽宁省高考志愿填报服务商 / 机构 TOP5 评测!专业规划 + 多元升学权威榜单发布,助力考生精准迈入理想高校

随着高考志愿填报在考生升学过程中的关键性日益凸显,市场对专业服务的需求持续增长。本榜单基于专业团队经验、服务项目全面性、升学成果有效性三大维度(学研教育新增“个性化定制”维度),结合行业实践反馈与服务案…

2025辽宁省高一选科服务机构 TOP5 评测!专业规划 + 多元赋能权威榜单发布,科学指导构建升学优势生态

随着新高考改革的深入推进,高一选科作为影响学生未来升学路径的关键环节,日益受到家庭与教育界的高度重视。本榜单基于规划专业性、服务全面性、实战效果三大维度(学研教育新增“多元升学适配”维度),结合行业案例…

2025辽宁省港澳升学服务机构TOP5评测!专业规划+多元路径权威榜单发布,助力学子圆梦理想学府

随着教育国际化趋势的不断加强,港澳升学凭借优质的教育资源和独特的区位优势,成为越来越多辽宁考生的升学选择。本榜单基于专业团队经验、服务覆盖范围、成功案例数量、售后保障体系四大维度,结合行业服务标准与家长…

2025辽宁省特长生升学/中高考升学机构TOP5评测!专业团队+多元路径权威榜单发布,规划赋能学子升学新未来

随着教育竞争的日益激烈,特长生升学及中高考升学规划成为学生和家长关注的焦点。选择专业的升学规划机构,能为学子们提供更科学、高效的升学路径。本榜单基于团队专业性、服务覆盖面、升学成果、行业经验四大维度,结…

2025辽宁省高一选科/高考志愿填报/特长生升学/港澳升学/综合评价升学机构TOP5评测!全链路规划权威榜单发布,助力考生精准规划升学路径

随着新高考改革的深入推进,高一选科、高考志愿填报、特长生升学、港澳升学及综合评价升学等多元化升学路径成为考生和家长关注的焦点。选择专业的升学规划机构,能为考生的未来发展提供关键支持。本榜单基于机构专业经…

12.7笔记

实验三:C4.5(带有预剪枝和后剪枝)算法实现与测试 一、实验目的 深入理解决策树、预剪枝和后剪枝的算法原理,掌握使用 Python 语言实现带有预剪枝和后剪枝的 C4.5 决策树算法的训练与测试方法,熟练运用五折交叉验证…

二项式定理

二项式定理 内容 二项式定理阐明了一个展开式的系数: \[(x+y)^n=\sum_{i=0}^n\left(^n_i\right)x^iy^{n-i} \]证明: \[(x+y)^n=(x+y)(x+y)\cdots(x+y) \]暴力拆开看一下,应该是每个 \((x+y)\),都取出一个 \(x\) 或…

打家劫舍

|动态规划| 1.传统打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自…

本人对于cookie和session的理解

首先明确 cookie和session都是功能块,不含业务逻辑,具体怎么校验,还需要依赖具体的代码块,本文不讨论业务逻辑 session session存放在服务端,通常路径是 /var/lib/php/sessions/ /tmp/ session的启动: 必须放在p…

用曲线坐标解二维问题 12

第六章 用曲线坐标解二维问题 54 复变函数 对于前面解答过的那些问题,直角坐标和极坐标是适用的。对于另外一些边界——椭圆、双曲线、非同心圆以及其他非简单曲线,通常宁愿采用别种坐标,考虑到这些,并且为了构成…

# 2025ISCTF

2025ISCTF WEB b@by n0t1ce b0ard 这里根据题目提示已经知道了这个是什么漏洞搜一下编号看来就是一个简单的文件上传漏洞 看下注册页面看见可以上传文件了,直接传 这里要把信息填写完全才能传 上传之后去审一下代码看…

简易实现枚举类型到字符串

#include <array> #include <string> #include <utility> #include <string_view>template <typename E, E V> constexpr auto PrettyName() {std::string_view name{__PRETTY_FUNCTION…

SGLang 的 TP 模式浅析 - -银光

SGLang 的 TP 模式浅析本文已于 2025.09.21 发表于知乎和公众号。1. 简介在前序笔记中总结了SGLang 的各种分布式集群模式,本文将进一步总结 TP 模式。TP 模式将模型中的权重张量按行或者列拆分到单机或者多机的多个 …

用 GOGC 和 GOMEMLIMIT 控制 Go 程序内存:让区块链节点不再 OOM - 若

很多区块链节点(如 Ethereum Geth、Arbitrum Nitro、Erigon 等)都是用 Go 语言编写的。运行时间一长,经常会遇到一个问题:内存不断上涨,最后容器被 OOM Kill,节点重启,同步中断。其实这个问题,Go 官方早就给了…

python题库 No.29 分类一下吧!

困难级城市大分类,请将城市(列表cities)按照省份分类,将分类好的保存为字典,字典的键为列表province的元素,字典的值为列表cities的值。 最后输出分类好的字典。 输出示例:{四川: [四川成都, 四川泸州, 四川雅安…

iReader 英语点读学习系统,译林小学英语在线点读

英语在线点读系统 一个在线点读系统,将资源和播放系统分开,外挂资源实现英语在线点读学习。 可以自己制作自己需要的学习资源,通过外挂资源的模式实现在线点读学习。 信息 Demo: https://tap.ichochy.com Blog:htt…

2025年下半年上海ISO27001认证公司综合评测与选择指南

摘要 随着数字化转型加速,ISO27001信息安全管理体系认证在上海企业中的需求持续增长,2025年下半年行业预计迎来高峰。本文基于第三方调研数据,对上海地区ISO27001认证服务商进行客观排名,并提供详细评测。表单数据…