Chinaunix首页 | 论坛 | 博客
  • 博客访问: 135629
  • 博文数量: 48
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 404
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-27 10:00
  • 认证徽章:
文章分类

全部博文(48)

文章存档

2018年(39)

2017年(9)

我的朋友

分类: C#/.net

2018-09-29 16:36:20

本篇文章将介绍通过C#编程来复制PDF文档的方法。基于不同的操作需求,下面的示例将分别从以下两种情况来讲述复制的具体方法:

1. 从A文件复制到B文件

2. 在同一文件内复制


工具



PS:下载安装后,注意在程序添加引用Spire.Pdf.dll(dll可在安装路径下的Bin文件夹下获取)



C# 示例代码(供参考)

1. A文件复制到B文件(跨文件复制)

【C#】


  1. using Spire.Pdf;
  2. using Spire.Pdf.Graphics;
  3. using System.Drawing;

  4. namespace Copy_PDF
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             //创建两个文档,分别加载两个测试文档
  11.             PdfDocument doc1 = new PdfDocument();
  12.             doc1.LoadFromFile("test1.pdf");
  13.             PdfDocument doc2 = new PdfDocument();
  14.             doc2.LoadFromFile("test2.pdf");

  15.             //获取文档1中的第一页以及它的页面大小,并基于第一页创建一个PDF模板
  16.             PdfPageBase page = doc1.Pages[0];
  17.             SizeF size = page.Size;
  18.             PdfTemplate template = page.CreateTemplate();

  19.             //复制第一个PDF文档的第一页到第二个PDF文档中
  20.             /*这里调用Insert(int index, SizeF size, PdfMargins margins)方法,
  21.             在文档2中,插入一个和第一页大小一致的新页面到该文档的指定位置(这里是第3页),
  22.             然后将步骤3中创建的模板应用到该页面*/
  23.             doc2.Pages.Insert(2, size, new PdfMargins(0, 0));
  24.             doc2.Pages[2].Canvas.DrawTemplate(template, new PointF(0, 0));

  25.             //将文档2保存,并打开
  26.             doc2.SaveToFile("result.pdf");
  27.             System.Diagnostics.Process.Start("result.pdf");
  28.         }
  29.     }
  30. }

文件复制效果前后效果对比:

两个测试文档:
文件1:
文件2:

复制结果:


2.在同一文件中复制

C#

  1. using Spire.Pdf;
  2. using Spire.Pdf.Graphics;
  3. using System.Drawing;

  4. namespace Copy2_PDF
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             //实例化PdfDocument类,并加载测试文档
  11.             PdfDocument pdf = new PdfDocument("Sample.pdf");

  12.             //获取文档第1页及页面大小,并创建复制模板
  13.             PdfPageBase page = pdf.Pages[0];
  14.             SizeF size = page.Size;
  15.             PdfTemplate template = page.CreateTemplate();


  16.             //基于第1页的页面大小,添加新1页到文档,并将模板绘制到新的页面(循环复制)
  17.             for (int i = 0; i < 3; i++)
  18.             {
  19.                 page = pdf.Pages.Add(size, new PdfMargins(0));
  20.                 page.Canvas.DrawTemplate(template, new PointF(0, 0));
  21.             }

  22.             //保存并打开文档
  23.             pdf.SaveToFile("Result.pdf");
  24.             System.Diagnostics.Process.Start("Result.pdf");
  25.         }
  26.     }
  27. }

文件复制效果:


(本文完)
阅读(4) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册