1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでPDFのページをコピーする

Posted at

PDF文書を操作する際、特定のページをコピーすることで、テキストや図表、データなどの特定の情報を抽出し、他の文書で使用することができます。また、PDFのページをコピーすることで、異なる文書内のページを抽出して新しい統合文書を作成することもできます。
この記事では、Pythonを使って同じ文書内のPDFページをコピーしたり、別のPDF文書にページをコピーしたりする方法を紹介します。

必要なPythonライブラリSpire.PDF for Python。以下のpipコマンドで直接インストールできます:
pip install Spire.Pdf

Pythonで同じPDF内のページをコピーする

Spire.PDF for Pythonライブラリは、PDF文書に新しいページを追加し、指定されたページの内容を新しいページに描画することにより、PDFページをコピーする操作をサポートします。

主な手順:

  1. LoadFromFile() メソッドで PDF 文書を読み込みます。
  2. PDF 内の指定 さ れたページ を取得 し 、 そのページ内容に基づ く テ ンプ レー ト を CreateTemplate() メ ソ ッ ド を用いて作成。
  3. Insert() メ ソ ッ ド を使っ て、 指定 し た イ ンデ ッ ク ス位置に空白の新 し いページ を挿入 し ます (あ る いは、 Add() メ ソ ッ ド を使っ て、 文書の末尾に新 し いページ を直接追加す る こ と も で き ます)。
  4. PdfPageBase.Canvas.DrawTemplate() メ ソ ッ ド を使っ て、 テ ンプ レー ト を新 し いページに描 き ます。
  5. 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()

CopyPDFpage.png

Pythonでページを別のPDFにコピー

また、PDF文書から別のPDF文書に指定されたページをコピーすることができます。

主な手順:

  1. LoadFromFile() メ ソ ッ ド を使っ て 2 個の PDF 文書を読み込みます。
  2. 文書 1 内の指定 し たページ を取得 し 、 そのページ内容に基づ く テ ンプ レー ト を CreateTemplate() メ ソ ッ ド を使っ て作成 し ます。
  3. Insert() メ ソ ッ ド を使っ て、 文書 2 内の指定 し た イ ンデ ッ ク ス位置に空白の新 し いページ を挿入 し ます。
  4. PdfPageBase.Canvas.DrawTemplate() メソッドを使用して、新しいページにテンプレートを描画します。
  5. 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()

CopyToAnotherPDF.png


生成されたドキュメントの赤いウォーターマークについては、以下のリンクをクリックして、それを削除するための1ヶ月の無料ライセンスをリクエストしてください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?