SelectPdf C# 如何高效克隆PDF页面?
SelectPdf高效复制PDF页面并添加文本的实现方案
- 核心思路:仅加载一次原PDF文档,通过
AddPage方法将原页面复制到新文档,避免重复创建PdfDocument对象带来的性能损耗。
代码示例
// 一次性加载原PDF文档,避免重复磁盘IO与对象初始化开销 using (var originalDoc = new SelectPdf.PdfDocument(pdfFilePath)) { // 创建目标新文档 using (var newDoc = new SelectPdf.PdfDocument()) { // 复制原文档首页到新文档,返回的是新文档中的独立页面实例 PdfPage copiedPage = newDoc.AddPage(originalDoc.Pages[0]); // 在复制后的页面添加自定义文本 var textFont = new SelectPdf.PdfFont(SelectPdf.PdfFontFamily.Helvetica, 14); var textBrush = SelectPdf.PdfBrushes.DarkBlue; copiedPage.AddText("自定义添加的文本", textFont, textBrush, 60, 60); // 保存最终生成的PDF newDoc.Save("result.pdf"); } }
方案优势
- 性能更优:仅加载一次原PDF,减少重复IO操作和内存占用,比多次创建
PdfDocument提取页面的方式高效得多 - 操作简洁:
AddPage方法内部已完成页面的深度复制,返回的页面属于新文档,可直接进行编辑操作
多页面复制场景扩展
如果需要复制原文档中的多个页面,只需循环遍历原文档的Pages集合,逐个调用AddPage即可:
foreach (var page in originalDoc.Pages) { PdfPage copiedPage = newDoc.AddPage(page); // 对每个复制后的页面进行编辑操作 }
内容的提问来源于stack exchange,提问作者Louis Tran
相关产品推荐
相关产品推荐

