C#實現(xiàn)合并及拆分PDF文件的方法
有時我們可能會遇到下圖這樣一種情況 — 我們需要的資料或教程被分成了幾部分存放在多個PDF文件中,不管是閱讀還是保存都不是很方便,這時我們肯定想要把這些PDF文件合并為一個PDF文件。相對應(yīng)的,有時候我們也需要拆分一個大的PDF文件,來從中獲取我們需要的那一部分資料。這篇文章主要分享如何使用C#來將多個PDF文件合并為一個PDF文件以及將一個PDF文件拆分為多個PDF文件。
合并PDF文件
合并PDF文件的代碼很簡單,主要分為三步,首先獲取需要合并的PDF文件,然后調(diào)用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文件,還可以設(shè)定頁碼范圍,將其拆分為多個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(); } } }
效果圖:
二、根據(jù)指定頁面范圍拆分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.
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
c# winform 關(guān)閉窗體時同時結(jié)束線程實現(xiàn)思路
th.IsBackground = true解決線程問題,意思就是把線程設(shè)置為后臺線程,感興趣的朋友可以多了解下,如何有什么妙招還請多多指導(dǎo)哈2013-02-02C#調(diào)用C++使用C++/CLI的實現(xiàn)
在C#開發(fā)過程中,我們可能會遇到需要調(diào)用Windows API 或是第三方庫的場景,本文主要介紹了C#調(diào)用C++使用C++/CLI的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-03-03使用C#實現(xiàn)基于TCP和UDP協(xié)議的網(wǎng)絡(luò)通信程序的基本示例
這篇文章主要介紹了使用C#實現(xiàn)基于TCP和UDP協(xié)議的網(wǎng)絡(luò)通信程序的示例,文中分別編寫了基本的服務(wù)器端和客戶端,代碼十分簡單,需要的朋友可以參考下2016-04-04