• [.NET开发] C# 合并、拆分PDF文档


      在整理文件时,将多个同类型文档合并是实现文档归类的有效方法,也便于文档管理或者文档传输。当然,也可以对一些比较大的文件进行拆分来获取自己想要的部分文档。可以任意地对文档进行合并、拆分无疑为我们了提供极大的便利。那么在C#语言环境中怎么来实现PDF文档的和被拆分呢?下面将介绍具体的代码操作方法。

      所需工具:Free Spire.PDF for .NET、Visual Studio 2013

      一、合并多个PDF文档using System;

      using Spire.Pdf;

      namespace MergePDF

      {

      class Program

      {

      static void Main(string[] args)

      {

      //创建一组数组实例,数组元素为需要合并的多个PDF文档的路径

      String[] files = new String[] { "test1.pdf", "test2.pdf", "test3.pdf" };

      //调用方法MergeFiles()合并文档

      PdfDocumentBase doc = PdfDocument.MergeFiles(files);

      //保存文档

      doc.Save("合并.pdf", FileFormat.PDF);

      }

      }

      }

      复制代码

    C# 合并、拆分PDF文档
    C# 合并、拆分PDF文档

      注意: 这里合并的PDF文档是以新的一页来合并的文档,目的不是将多个文档合并为具有一定逻辑的文档,而是出于方便文档管理以及其他操作的目的来合并。

      二、拆分PDF文档 (一)按每页来拆分using System;

      using Spire.Pdf;

      namespace SplitPDF1

      {

      class Program

      {

      static void Main(string[] args)

      {

      //初始化一个PdfDocument类实例,并从文件中加载需要被拆分的PDF文档

      PdfDocument doc = new PdfDocument(@"C:UsersAdministratorDesktop est.pdf");

      //调用方法Split()方法将PDF文档按页拆分保存

      String pattern = "拆分{0}.pdf";

      doc.Split(pattern);

      }

      }

      }

      复制代码

      拆分结果:

    C# 合并、拆分PDF文档

      拆分的文档个数与原文档页数相同。

      (二)按指定页数拆分using Spire.Pdf;

      using Spire.Pdf.Graphics;

      using System.Drawing;

      namespace SplitPDF2

      {

      class Program

      {

      static void Main(string[] args)

      {

      //创建一个PdfDocument类对象,并加载一个现有的PDF文档

      PdfDocument pdf = new PdfDocument();

      pdf.LoadFromFile(@"C:UsersAdministratorDesktop测试.pdf");

      //新建1个PDF文档

      PdfDocument pdf1 = new PdfDocument();

      PdfPageBase page;

      //将现有的PDF文档的第1-5页拆分为一个文档

      for (int i = 0; i < 4; i++)

      {

      //向新建文档添加与现有文档页面大小一致的页面

      page = pdf1.Pages.Add(pdf.Pages[i].Size, new PdfMargins(0));

      //为现有文档的页面创建模板并将模板画到新建文档的页面上

      pdf.Pages[i].CreateTemplate().Draw(page, new PointF(0, 0));

      }

      //保存文档

      pdf1.SaveToFile("1-5.pdf");

      //新建第2个PDF文档

      PdfDocument pdf2 = new PdfDocument();

      //将现有PDF文档的第5-10页拆分为另一个文档

      for (int i = 4; i < 9; i++)

      {

      //向新建文档添加与现有文档页面大小一致的页面

      page = pdf2.Pages.Add(pdf.Pages[i].Size, new PdfMargins(0));

      //为现有文档的页面创建模板并将模板画到新建文档的页面上

      pdf.Pages[i].CreateTemplate().Draw(page, new PointF(0, 0));

      }

      //保存文档

      pdf2.SaveToFile("6-10.pdf");

      //新建第3个PDF文档

      PdfDocument pdf3 = new PdfDocument();

      //将现有PDF文档的第10-15页拆分为另一个文档

      for (int i = 9; i < 14; i++)

      {

      //向新建文档添加与现有文档页面大小一致的页面

      page = pdf3.Pages.Add(pdf.Pages[i].Size, new PdfMargins(0));

      //为现有文档的页面创建模板并将模板画到新建文档的页面上

      pdf.Pages[i].CreateTemplate().Draw(page, new PointF(0, 0));

      }

      //保存文档

      pdf2.SaveToFile("11-15.pdf");

      }

      }

      }

      复制代码

      (编辑:雷林鹏 来源:网络)

  • 相关阅读:
    通过Spring使用远程访问和web服务
    mongoDB id 导出,dump,sed,count,mysql import等用法示例
    Spring属性占位符 PropertyPlaceholderConfigurer
    关于Spring管理的类如何创建对象
    spring中反射机制和注入的使用
    Spring 反射注入+全注解注入
    Spring 注解@Component,@Service,@Controller,@Repository
    @Transactional spring 配置事务 注意事项
    Spring 注解Autowired自动注入bean异常解决
    Spring事务的传播行为 @Transactional
  • 原文地址:https://www.cnblogs.com/pengpeng1208/p/9227616.html
Copyright © 2020-2023  润新知