PDF文書を操作する際、特定のページをコピーすることで、テキストや図表、データなどの特定の情報を抽出し、他の文書で使用することができます。また、PDFのページをコピーすることで、異なる文書内のページを抽出して新しい統合文書を作成することもできます。
この記事では、Pythonを使って同じ文書内のPDFページをコピーしたり、別のPDF文書にページをコピーしたりする方法を紹介します。
必要なPythonライブラリ – Spire.PDF for Python。以下のpipコマンドで直接インストールできます:
pip install Spire.Pdf
Pythonで同じPDF内のページをコピーする
Spire.PDF for Pythonライブラリは、PDF文書に新しいページを追加し、指定されたページの内容を新しいページに描画することにより、PDFページをコピーする操作をサポートします。
主な手順:
-
LoadFromFile()
メソッドで PDF 文書を読み込みます。 - PDF 内の指定 さ れたページ を取得 し 、 そのページ内容に基づ く テ ンプ レー ト を
CreateTemplate()
メ ソ ッ ド を用いて作成。 -
Insert()
メ ソ ッ ド を使っ て、 指定 し た イ ンデ ッ ク ス位置に空白の新 し いページ を挿入 し ます (あ る いは、Add()
メ ソ ッ ド を使っ て、 文書の末尾に新 し いページ を直接追加す る こ と も で き ます)。 -
PdfPageBase.Canvas.DrawTemplate()
メ ソ ッ ド を使っ て、 テ ンプ レー ト を新 し いページに描 き ます。 -
SaveToFile()
メソッドを使用してPDF文書を保存します。
Pythonのコード:
from spire.pdf.common import *
from spire.pdf import *
# PDF文書を読み込む
pdf = PdfDocument()
pdf.LoadFromFile("input.pdf")
# 最初のページを取得する
page = pdf.Pages[0]
# ページに基づいてテンプレートを作成する
template = page.CreateTemplate()
# 2番目の位置に新しいページを挿入する
page = pdf.Pages.Insert(1, page.Size, PdfMargins(0.0))
# 最後に新しいページを追加する
#page = pdf.Pages.Add(page.Size, PdfMargins(0.0))
# 新しく追加されたページにテンプレートを描画する
page.Canvas.DrawTemplate(template, PointF(0.0, 0.0))
# PDF文書を保存する
pdf.SaveToFile("CopyPDFPage.pdf");
pdf.Close()
Pythonでページを別のPDFにコピー
また、PDF文書から別のPDF文書に指定されたページをコピーすることができます。
主な手順:
-
LoadFromFile()
メ ソ ッ ド を使っ て 2 個の PDF 文書を読み込みます。 - 文書 1 内の指定 し たページ を取得 し 、 そのページ内容に基づ く テ ンプ レー ト を
CreateTemplate()
メ ソ ッ ド を使っ て作成 し ます。 -
Insert()
メ ソ ッ ド を使っ て、 文書 2 内の指定 し た イ ンデ ッ ク ス位置に空白の新 し いページ を挿入 し ます。 -
PdfPageBase.Canvas.DrawTemplate()
メソッドを使用して、新しいページにテンプレートを描画します。 -
SaveToFile()
メソッドを使用してドキュメント 2 を保存します。
Pythonのコード:
from spire.pdf.common import *
from spire.pdf import *
# ドキュメント1を読み込む
pdf1 = PdfDocument()
pdf1.LoadFromFile("日記.pdf")
# ドキュメント2を読み込む
pdf2 = PdfDocument()
pdf2.LoadFromFile("input日.pdf")
# ドキュメント1の最初のページを取得
page = pdf1.Pages[0]
# このページの内容に基づいてテンプレートを作成する
template = page.CreateTemplate()
# 文書2の指定された位置に空白の新規ページを挿入する
newPage = pdf2.Pages.Insert(0, page.Size, PdfMargins(0.0))
# 新しいページにテンプレートを描く
newPage.Canvas.DrawTemplate(template, PointF(0.0, 0.0))
# PDF文書を保存する
pdf2.SaveToFile("CopyPageToAnotherPDF.pdf")
pdf2.Close()
生成されたドキュメントの赤いウォーターマークについては、以下のリンクをクリックして、それを削除するための1ヶ月の無料ライセンスをリクエストしてください。