管理

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

Posted on 2025-12-08 00:00  lzhdim  阅读(6)  评论(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 文件的各种场景。 

 

Copyright © 2000-2022 Lzhdim Technology Software All Rights Reserved