C# 复制PDF文档
程序员文章站
2022-03-28 21:09:32
...
通过复制文件可对某些重要文档进行保存备案,对后期的文档管理、查询等比较方便。对于PDF文档的复制,我们可以通过使用类库来实现。下面的示例中演示了如何通过C#编程来复制PDF文档的方法。
示例要点如下:
1.从A文件复制到B文件
2.在同一文件内复制
工具
PS:下载安装后,注意在程序添加引用Spire.Pdf.dll(dll可在安装路径下的Bin文件夹下获取)
代码示例(供参考)
【示例1】从A文件复制到B文件(跨文件复制)
using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing; namespace Copy_PDF { class Program { static void Main(string[] args) { //创建两个文档,分别加载两个测试文档 PdfDocument doc1 = new PdfDocument(); doc1.LoadFromFile("test1.pdf"); PdfDocument doc2 = new PdfDocument(); doc2.LoadFromFile("test2.pdf"); //获取文档1中的第一页以及它的页面大小,并基于第一页创建一个PDF模板 PdfPageBase page = doc1.Pages[0]; SizeF size = page.Size; PdfTemplate template = page.CreateTemplate(); //复制第一个PDF文档的第一页到第二个PDF文档中 /*这里调用Insert(int index, SizeF size, PdfMargins margins)方法, 在文档2中,插入一个和第一页大小一致的新页面到该文档的指定位置(这里是第3页),然后将步骤3中创建的模板应用到该页面*/ doc2.Pages.Insert(2, size, new PdfMargins(0, 0)); doc2.Pages[2].Canvas.DrawTemplate(template, new PointF(0, 0)); //将文档2保存,并打开 doc2.SaveToFile("result.pdf"); System.Diagnostics.Process.Start("result.pdf"); } } }
两个测试文档:
复制结果:
【示例2】在同一文件中复制
using Spire.Pdf; using Spire.Pdf.Graphics; using System.Drawing; namespace Copy2_PDF { class Program { static void Main(string[] args) { //实例化PdfDocument类,并加载测试文档 PdfDocument pdf = new PdfDocument("Sample.pdf"); //获取文档第1页及页面大小,并创建复制模板 PdfPageBase page = pdf.Pages[0]; SizeF size = page.Size; PdfTemplate template = page.CreateTemplate(); //基于第1页的页面大小,添加新1页到文档,并将模板绘制到新的页面(循环复制) for (int i = 0; i < 3; i++) { page = pdf.Pages.Add(size, new PdfMargins(0)); page.Canvas.DrawTemplate(template, new PointF(0, 0)); } //保存并打开文档 pdf.SaveToFile("Result.pdf"); System.Diagnostics.Process.Start("Result.pdf"); } } }
复制结果:
(本文完)