天天看點

C# 複制PDF頁面到另一個PDF文檔

C# 複制PDF頁面到另一個PDF文檔

有時候我們可能有這樣一個需求,那就是把PDF頁面從一個PDF文檔複制到另一個PDF文檔中。由于PDF文檔并不像word文檔那樣好編輯,是以複制也相對沒有那麼容易。寫這篇文章主要是分享一個簡單而且比較容易實作的方法 - 使用C#将一個PDF文檔的頁面,包括文字、圖檔和背景等複制到另一個PDF文檔的指定位置。

下面是我準備的兩個PDF檔案:

C# 複制PDF頁面到另一個PDF文檔

目标:将左邊的PDF文檔的第一頁複制到右邊的PDF文檔的第二頁的位置。

代碼實作:

步驟1:初始化一個PdfDocument類的對象doc1并加載第一個PDF文檔。

PdfDocument doc1 = new PdfDocument();
doc1.LoadFromFile("童話故事.pdf");      

步驟2:初始化一個PdfDocument類的對象doc2并加載第二個PDF文檔。

PdfDocument doc2 = new PdfDocument();
doc2.LoadFromFile("各種點心的做法.pdf");      

步驟3:擷取第一個PDF文檔的第一頁以及它的頁面大小,并基于第一頁建立一個PDF模闆。

PdfPageBase page = doc1.Pages[0];
SizeF size = page.Size;
PdfTemplate template = page.CreateTemplate();      

步驟4:複制第一個PDF文檔的第一頁到第二個PDF文檔中。

調用Insert(int index, SizeF size, PdfMargins margins)方法,在第二個PDF文檔中,插入一個和第一頁大小一緻的新頁面到該文檔的指定位置(這裡是第二頁),然後将步驟3中建立的模闆應用到該頁面。

doc2.Pages.Insert(1, size, new PdfMargins(0, 0));
doc2.Pages[1].Canvas.DrawTemplate(template, new PointF(0, 0));      

如果要将第一頁複制到第二個文檔的最後一頁,請用以下代碼來添加一個新頁面到第二個文檔的末尾,然後再将模闆應用到該頁面。

doc2.Pages.Add(size, new PdfMargins(0, 0));      

步驟5:儲存檔案并重新打開。

doc2.SaveToFile("複制.pdf");
System.Diagnostics.Process.Start("複制.pdf");      

複制後的效果:

C# 複制PDF頁面到另一個PDF文檔

全部代碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
 
namespace 複制PDF頁面到另一個PDF文檔
{
    class Program
    {
        static void Main(string[] args)
        {
            PdfDocument doc1 = new PdfDocument();
            doc1.LoadFromFile("童話故事.pdf");

            PdfDocument doc2 = new PdfDocument();
            doc2.LoadFromFile("各種點心的做法.pdf");

            PdfPageBase page = doc1.Pages[0];
            SizeF size = page.Size;
            PdfTemplate template = page.CreateTemplate();

            doc2.Pages.Insert(1, size, new PdfMargins(0, 0));
            doc2.Pages[1].Canvas.DrawTemplate(template, new PointF(0, 0));

            doc2.SaveToFile("複制.pdf");
            System.Diagnostics.Process.Start("複制.pdf");
        }
    }
}      

Note:在這裡我借助的是第三方軟體Spire.PDF,如果你的PDF文檔不超過10頁,可以去CodePlex上下載下傳使用它的

免費版本

感謝您的閱讀!