当前位置: 首页 > news >正文

wpf datagrid 如何获取当前点击行_「Spire.PDF教程」如何复制 PDF 文档

Spire.PDF是一个专业的PDF组件,能够独立地创建、编写、编辑、操作和阅读PDF文件,支持 .NET、Java、WPF和Silverlight。

Spire.PDF支持通过Page.CreateTemplate()和Page.Canvas.DrawTemplate()方法来实现文档复制。下面的示例中,将演示如何复制PDF文档的方法,根据不同需求,以下方法分为了2种情况来进行复制:

  • 从一个文档复制到另一个文档
  • 在同一个文档内复制

用于测试的2个源文档:

adaa1c272acd4c6bb0589d78c34fa29f.png

从一个文档复制到另一个文档

//加载2个测试文档PdfDocument doc1 = new PdfDocument();doc1.LoadFromFile("test1.pdf");PdfDocument doc2 = new PdfDocument();doc2.LoadFromFile("test2.pdf");//获取文档1中的第1页以及它的页面大小,并基于第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中,插入一个和第一页大小一致的新页面到该文档的指定位置(这里作为第1页),并将创建的PDF模板应用到该页面*/doc2.Pages.Insert(0, size, new PdfMargins(0, 0));doc2.Pages[0].Canvas.DrawTemplate(template, new PointF(0, 0));//保存文档2doc2.SaveToFile("result.pdf");

复制结果:

34962ea1c7ad1d55d15f2adea3eddf72.png

在同一个文档中复制

//实例化PdfDocument类的对象,并加载测试文档PdfDocument pdf = new PdfDocument("test1.pdf");//获取文档第1页及页面大小,并创建复制模板PdfPageBase page = pdf.Pages[0];SizeF size = page.Size;PdfTemplate template = page.CreateTemplate();//基于第1页的页面大小,添加新1页到文档,并将模板绘制到新的页面for (int i = 0; i < 2; i++){ page = pdf.Pages.Add(size, new PdfMargins(0)); page.Canvas.DrawTemplate(template, new PointF(0, 0));}//保存文档pdf.SaveToFile("output.pdf");

复制结果:

9e3cb79e8a1346519e2bd23033649e49.png

点击“了解更多”下载产品最新版

↓↓↓

相关文章:

  • 网络术语还在困扰你吗?
  • python做视觉识别机械手_DIY一个基于树莓派和Python的无人机视觉跟踪系统(转)...
  • 网管之路在何方
  • 判断两个list集合里的对象某个属性值是否一样_BAT面试题——22个集合框架(完)...
  • 在Linux上使用Qt编译WebKit
  • python 进度条_Python 如何实时显示进度条?
  • Massive Customization
  • python 批量下载财务数据_Python+Wind 批量下载上市公司年报 - Part 1/2
  • 使用qmake 单独生成Qt程序
  • 检测同心圆_负氧离子检测仪的工作原理与选择
  • oracle wrost practics
  • 物联网专科专业必修课程_河南专升本专科专业热度统计
  • FreeXploiT 成立三年感言!
  • springboot如何保证几个insert语句在同一个事务里_dele锁te amp; insert 死
  • 出国申请PS注意事项
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • CODING 缺陷管理功能正式开始公测
  • Docker 笔记(2):Dockerfile
  • HomeBrew常规使用教程
  • js对象的深浅拷贝
  • Magento 1.x 中文订单打印乱码
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • Python十分钟制作属于你自己的个性logo
  • Rancher-k8s加速安装文档
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 缓存与缓冲
  • 聊聊hikari连接池的leakDetectionThreshold
  • 前端性能优化——回流与重绘
  • 微信小程序开发问题汇总
  • 如何用纯 CSS 创作一个货车 loader
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • (3)选择元素——(14)接触DOM元素(Accessing DOM elements)
  • (4) PIVOT 和 UPIVOT 的使用
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (九)One-Wire总线-DS18B20
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (五)Python 垃圾回收机制
  • (转)人的集合论——移山之道
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET MVC第五章、模型绑定获取表单数据
  • .Net Web项目创建比较不错的参考文章
  • .NET 表达式计算:Expression Evaluator
  • .NET 使用配置文件
  • .NET分布式缓存Memcached从入门到实战
  • .net分布式压力测试工具(Beetle.DT)
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • @property括号内属性讲解
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [C++]——带你学习类和对象
  • [ERROR]-Error: failure: repodata/filelists.xml.gz from addons: [Errno 256] No more mirrors to try.
  • [GYCTF2020]Ez_Express