一、简介
PDFSharp是一款用于生成和编辑PDF文档的开源工具。它提供了许多有用的功能,包括创建新文档、添加图像、文本、表格和页面等,同时还支持加密、添加书签、页码,并具有一些其他高级功能,例如向PDF文档添加数字签名。PDFSharp基于.NET标准,可以在各种操作系统和平台上使用。
二、创建PDF文档
使用PDFSharp可以轻松地创建新PDF文档。首先,创建一个新的PDF文档对象,指定文档属性,例如作者、主题和创建日期:
PdfDocument document = new PdfDocument(); document.Info.Author = "John Doe"; document.Info.Title = "My Title"; document.Info.Subject = "My Subject"; document.Info.Keywords = "PDFSharp, PDF, API"; document.Info.CreationDate = DateTime.Now;
接下来,可以为文档添加一个或多个页面。页面是PDF文档的基本单位,可以包含文本、图像、表格等元素。以下是创建一个新页面的示例:
PdfPage page = document.AddPage();
然后,可以在页面上添加各种元素,例如文字和图像。例如,下面是向页面添加一个简单文本框的代码:
XFont font = new XFont("Verdana", 20, XFontStyle.Bold); XBrush brush = new XSolidBrush(XColor.FromKnownColor(KnownColor.Black)); gfx.DrawString("Hello, World!", font, brush, new XRect(0, 0, page.Width, page.Height), XStringFormats.Center);
三、添加图像
PDFSharp支持多种图像格式,包括BMP、JPG、PNG、GIF和TIFF等。以下是添加图像的示例:
XImage image = XImage.FromFile("picture.jpg"); gfx.DrawImage(image, 0, 0, page.Width, page.Height);
四、添加表格
PDFSharp可以轻松地在页面上添加表格。以下是创建一个新表格并向其中添加数据的示例代码:
PdfTable table = new PdfTable(); table.Style = "Table"; table.Rows.Add(new PdfTableRow { Cells = { new PdfTableCell { Value = "Name" }, new PdfTableCell { Value = "Age" } } }); table.Rows.Add(new PdfTableRow { Cells = { new PdfTableCell { Value = "John Doe" }, new PdfTableCell { Value = "30" } } }); table.Rows.Add(new PdfTableRow { Cells = { new PdfTableCell { Value = "Jane Doe" }, new PdfTableCell { Value = "28" } } }); table.Draw(gfx, new XRect(0, 0, page.Width, page.Height));
五、数字签名
PDFSharp支持向PDF文档添加数字签名,以确保文档的完整性和真实性。以下是向PDF文档添加数字签名的示例代码:
PdfDocument document = new PdfDocument(); PdfPage page = document.AddPage(); X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password"); PdfSignatureOptions options = new PdfSignatureOptions { Certificate = cert, ContactInfo = "John Doe", Location = "My Location", Reason = "My Reason", SignatureFormat = PdfSignatureFormat.Pkcs7 }; options.DocumentPermissions = PdfDocumentPermissions.AllowPrinting; PdfSignature signature = new PdfSignature(options); signature.SignatureAppearance = new PdfSignatureAppearance { CustomAppearanceText = "My Custom Text", }; signature.Sign(page, gfx);
六、加密
PDFSharp也支持对PDF文档进行加密。以下是对PDF文档进行加密的示例代码:
PdfEncoder encoder = new PdfEncoder(); encoder.SetEncryption(new PdfEncryptionOptions { UserPassword = "password", OwnerPassword = "owner", Permissions = PdfDocumentPermissions.AllowPrinting }); document.Save("document.pdf", encoder);
七、书签与目录
PDFSharp还支持在PDF文档中添加书签和目录。以下是创建一个新目录并向其中添加条目的示例:
PdfOutline root = document.Outlines.Add(null, "My Outline", true, PdfOutlineStyle.Bold, XColors.Red); PdfOutline child = document.Outlines.Add(root, "My Child", false, PdfOutlineStyle.Regular, XColors.Blue); PdfOutline subChild = document.Outlines.Add(child, "My Sub Child", false, PdfOutlineStyle.Italic, XColors.Green);
八、总结
PDFSharp是一个强大的PDF生成工具,可以帮助开发人员轻松地创建、编辑和加密PDF文档。它支持许多有用的功能,如添加图像、表格、数字签名和书签等,而且还相对容易学习。如果需要生成PDF文档,PDFSharp是一个值得考虑的工具。