C# 合并、拆分PDF



 在整理文件时,将多个同类型文档合并是实现文档归类的有效方法,也便于文档管理或者文档传输。当然,也可以对一些比较大的文件进行拆分来获取自己想要的部分文档。可以任意地对文档进行合并、拆分无疑为我们了提供极大的便利。下面将介绍一种如何来拆分、合并PDF文档的方法。本篇文章转载自:http://www.cnblogs.com/Yesi/p/5604166.html

 

所需工具Free Spire.PDF for .NET

                 Visual Studio 

一、合并多个PDF文档 

   C#

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);
        }
    }
}

 调试运行程序后,生成文档



 

 

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

 

二、拆分PDF文档

这里拆分文档也分为按页拆分按指定范围的页数拆分

(一)按每页来拆分

C#

 

using System;
using Spire.Pdf;

namespace SplitPDF1
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化一个PdfDocument类实例,并从文件中加载需要被拆分的PDF文档
            PdfDocument doc = new PdfDocument(@"C:\Users\Administrator\Desktop\test.pdf");

            //调用方法Split()方法将PDF文档按页拆分保存
            String pattern = "拆分{0}.pdf";
            doc.Split(pattern);
        }
    }
}

 拆分结果:

 



 

(二)按指定页数拆分

C#

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:\Users\Administrator\Desktop\测试.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");
        }
    }
}

 

 

 

猜你喜欢

转载自miaonly.iteye.com/blog/2412805