C# 合並及拆分PDF文件


C# 合並及拆分PDF文件

有時我們可能會遇到下圖這樣一種情況 — 我們需要的資料或教程被分成了幾部分存放在多個PDF文件中,不管是閱讀還是保存都不是很方便,這時我們肯定想要把這些PDF文件合並為一個PDF文件。相對應的,有時候我們也需要拆分一個大的PDF文件,來從中獲取我們需要的那一部分資料。這篇文章主要分享如何使用C#來將多個PDF文件合並為一個PDF文件以及將一個PDF文件拆分為多個PDF文件。

   

                   

合並PDF文件

合並PDF文件的代碼很簡單,主要分為三步,首先獲取需要合並的PDF文件,然后調用public static PdfDocumentBase MergeFiles(string[] InputFiles)方法,將這些PDF文件合並,然后保存文件。

代碼如下:

using System;
using Spire.Pdf;
namespace 合並PDF文件
{
    class Program
    {
        static void Main(string[] args)
        {
            String[] files = new String[] { "文件1.pdf", "文件2.pdf", "文件3.pdf" };
            string outputFile = "輸出.pdf";
            PdfDocumentBase doc = PdfDocument.MergeFiles(files);
            doc.Save(outputFile, FileFormat.PDF);
            System.Diagnostics.Process.Start(outputFile);
        }
    }
}

 

合並前:

合並后:

 

 

拆分PDF文件

在拆分PDF文件時,我們可以選擇將文件的每一頁單獨拆分為一個PDF文件,還可以設定頁碼范圍,將其拆分為多個PDF文件。下面將分兩個部分來介紹。

一、將PDF文件的每一頁拆分為一個單獨的PDF文件

在上一個部分中,合並后的PDF文件一共有4頁,這里我將它的每一頁拆分為一個單獨的PDF文件。

代碼如下:

using System;
using Spire.Pdf;

namespace 拆分PDF文件1
{
    class Program
    {
        static void Main(string[] args)
        {
            PdfDocument doc = new PdfDocument("輸出.pdf");
            String pattern = "拆分-{0}.pdf";
            doc.Split(pattern);
            doc.Close();
        }
    }
}

 

效果圖:

 

 

二、根據指定頁面范圍拆分PDF文件

這里我將一個18頁的PDF文件的前10頁拆分為一個PDF文件,后8頁拆分為另一個PDF文件。

 

代碼如下:

using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;

namespace 拆分PDF文件2
{
    class Program
    {
        static void Main(string[] args)
        {
            PdfDocument pdf = new PdfDocument();
            pdf.LoadFromFile("各種點心的做法.pdf");
 
            PdfDocument pdf1 = new PdfDocument();
            PdfPageBase page;
            for (int i = 0; i < 10; i++)
            {
                page = pdf1.Pages.Add(pdf.Pages[i].Size, new PdfMargins(0));
                pdf.Pages[i].CreateTemplate().Draw(page, new PointF(0, 0));
            }
            pdf1.SaveToFile("DOC_1.pdf"); 

            PdfDocument pdf2 = new PdfDocument();
            for (int i = 10; i < 18; i++)
            {
                page = pdf2.Pages.Add(pdf.Pages[i].Size, new PdfMargins(0));
                pdf.Pages[i].CreateTemplate().Draw(page, new PointF(0, 0));
            }
            pdf2.SaveToFile("DOC_2.pdf");
        }
    }
}

 

拆分前:

拆分后:

Note: 這里我使用了一個PDF組件Spire.PDF.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM