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


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

有時候我們可能有這樣一個需求,那就是把PDF頁面從一個PDF文檔復制到另一個PDF文檔中。由於PDF文檔並不像word文檔那樣好編輯,因此復制也相對沒有那么容易。寫這篇文章主要是分享一個簡單而且比較容易實現的方法 - 使用C#將一個PDF文檔的頁面,包括文字、圖片和背景等復制到另一個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");

 

復制后的效果:

 

 

全部代碼:

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上下載使用它的免費版本

感謝您的閱讀!


免責聲明!

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



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