可生成含多可选内容组(OCG)PDF的.NET开源库有哪些?
可生成带可选内容组(OCG)PDF的.NET开源库
以下是几个能满足你需求的.NET开源库,均支持创建可切换显示/隐藏的PDF图层:
iTextSharp(iText 7 .NET)
- 成熟的PDF处理方案,原生支持OCG(PDF图层)功能。通过
PdfLayer类定义不同图层,将文本、图像等内容绑定到对应图层后,用户可在PDF阅读器中切换显示状态。 - 核心代码示例:
using iText.Kernel.Pdf; using iText.Kernel.Pdf.Layer; using iText.Layout; using iText.Layout.Element; var writer = new PdfWriter("分层文档.pdf"); var pdfDoc = new PdfDocument(writer); var document = new Document(pdfDoc); // 创建两个可选内容组 PdfLayer textLayer = new PdfLayer("文本层", pdfDoc); PdfLayer schematicLayer = new PdfLayer("原理图层", pdfDoc); // 向文本层添加内容 document.Add(new Paragraph("这是可隐藏的文本内容").SetLayer(textLayer)); // 向原理图层添加图像 document.Add(new Image(ImageDataFactory.Create("schematic.png")).SetLayer(schematicLayer)); document.Close();
PdfSharp
- 轻量级PDF生成库,通过
PdfOptionalContentGroup类管理图层,API简洁易懂,适合快速实现基础的分层PDF需求。 - 核心代码示例:
using PdfSharp.Drawing; using PdfSharp.Pdf; using PdfSharp.Pdf.Advanced; var document = new PdfDocument(); var page = document.AddPage(); var gfx = XGraphics.FromPdfPage(page); // 创建可选内容组 var textGroup = new PdfOptionalContentGroup(document, "文本层"); var schematicGroup = new PdfOptionalContentGroup(document, "原理图层"); // 将文本关联到对应图层 var text = new XText("示例文本内容"); text.OptionalContentGroup = textGroup; gfx.DrawString(text.Text, new XFont("Arial", 12), XBrushes.Black, new XPoint(10, 10), XStringFormats.Default); // 将图像关联到对应图层 var image = XImage.FromFile("schematic.png"); var imageRect = new XRect(10, 30, image.PixelWidth, image.PixelHeight); gfx.DrawImage(image, imageRect, XGraphicsUnit.Point, XImageQuality.Default, schematicGroup); document.Save("分层文档.pdf");
QuestPDF
- 现代声明式PDF生成库,最新版本已支持OCG功能,语法直观简洁,适合.NET Core/.NET 5+项目,无需复杂的底层操作即可创建分层PDF。
- 核心代码示例:
using QuestPDF.Fluent; using QuestPDF.Helpers; using QuestPDF.Infrastructure; Document.Create(container => { container.Page(page => { page.Content() .Layer("文本层", layer => { layer.Text("可切换显示的文本").FontSize(14).PaddingBottom(20); }) .Layer("原理图层", layer => { layer.Image("schematic.png").FitWidth(); }); }); }) .GeneratePdf("分层文档.pdf");
内容的提问来源于stack exchange,提问作者cap7
相关产品推荐
相关产品推荐

