0
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?

PDF文書の結合と分割: PythonでPDFを簡単に管理

Last updated at Posted at 2023-12-20

PDF文書は、情報の共有やデータの保存において広く使用されていますが、時には複数のPDFファイルを結合または分割する必要が生じます。結合することで、関連するドキュメントを一つにまとめ、整理された形で提供することができます。一方で、分割することで、大きなPDFファイルをより管理しやすいサイズに分割し、必要な範囲の情報にアクセスしやすくすることができます。Pythonを使用することで、これらの作業を効率的に行うことができます。この記事では、PDF文書を管理するためにPythonを使ってPDF文書を結合したり分割したりすることについて説明します。

この記事で使用する方法は、Spire.PDF for Pythonを必要とします。Spire.PDF for Pythonは、公式ウェブサイトからダウンロードするか、PyPI(pip install Spire.PDF)経由でインストールすることができます。

MergeFiles()メソッドによるPDF文書のマージ

PdfDocument クラスはPDF文書を表します。このクラスの中で、MergeFiles() メソッドを使用すると、パラメータとしてファイルパスのリストを渡すことで、複数のPDF文書を1つの文書に結合することができます。
以下はその手順の一例である。

  1. PDF文書のファイルパスのリストを作成します。
  2. PdfDocument.MergeFiles() メソッドを使用してPDF文書を結合します。
  3. PdfDocument.SaveToFile() メソッドを使用して、結合された文書を新しいPDF文書として保存します。

コードの例
Python

from spire.pdf.common import *
from spire.pdf import *

# PDFファイルパスのリストを作成する
inputFile1 = "Sample1.pdf"
inputFile2 = "Sample2.pdf"
inputFile3 = "Sample3.pdf"
files = [inputFile1, inputFile2, inputFile3]

# PDFドキュメントを結合する
pdf = PdfDocument.MergeFiles(files)

# 結果のドキュメントを保存する
pdf.Save("output/PDF文書の結合.pdf", FileFormat.PDF)
pdf.Close()

PDF文書の結合結果
MergeFiles()メソッドによるPDF文書のマージ

内容のコピーによるPDF文書の結合

PDFファイルの結合は、PdfDocument.AppendPage(PdfDocument) メソッドを使用してPDFファイルから新しいPDFファイルにページをコピーすることによっても行うことができます。詳しい手順は以下の通りです。

  1. PDF文書のファイルパスのリストを作成します。
  2. 各PDF文書を PdfDocument クラスのオブジェクトとして読み込み、リストに追加する。
  3. 新しいPDF文書を作成するために PdfDocument クラスのオブジェクトを作成します。
  4. 読み込んだ各PDF文書をループし、PdfDocument.appendPage() メソッドを使って新しいPDF文書にそのページを挿入します。
  5. PdfDocument.SaveToFile() メソッドを使って新しいPDF文書を保存します。

コードの例
Python

from spire.pdf.common import *
from spire.pdf import *

# PDFファイルパスのリストを作成する
file1 = "Sample1.pdf"
file2 = "Sample2.pdf"
file3 = "Sample3.pdf"
files = [file1, file2, file3]

# 各PDFファイルをPdfDocumentオブジェクトとしてロードし、リストに追加する
pdfs = []
for file in files:
    pdfs.append(PdfDocument(file))

# PdfDocumentクラスのオブジェクトを作成する
newPdf = PdfDocument()

# 読み込んだPDF文書のページを新しいPDF文書に挿入する
for pdf in pdfs:
    newPdf.AppendPage(pdf)

# 新しいPDF文書を保存する
newPdf.SaveToFile("output/内容のコピー.pdf")
newPdf.Close()

PDF文書の結合結果
内容のコピーによるPDF文書の結合

PDF文書の選択されたページの結合

また、PdfDocument.InsertPage() メソッドや PdfDocument.InsertPageRange() メソッドを使用して、あるPDF文書から別のPDF文書へページを選択・挿入し、指定したPDFページの結合を可能にすることもできます。詳しい手順は以下の通りです。

  1. PDFファイルパスのリストを作成します。
  2. 各PDF文書を PdfDocument クラスのオブジェクトとして読み込み、リストに追加します。
  3. PdfDocument クラスのオブジェクトを作成して、新しいPDF文書を作成します。
  4. PdfDocument.InsertPage(PdfDocument, pageIndex: int) メソッドと PdfDocument.InsertPageRange(PdfDocument, startIndex: int, endIndex: int) メソッドを用いて、読み込んだ文書の選択したページを新しいPDF文書に挿入します。
  5. PdfDocument.SaveToFile() メソッドを使用して新しいPDF文書を保存します。

コードの例
Python

from spire.pdf import *
from spire.pdf.common import *

# PDFファイルのパスのリストを作成します
file1 = "Sample1.pdf"
file2 = "Sample2.pdf"
file3 = "Sample3.pdf"
files = [file1, file2, file3]

# 各PDFファイルをPdfDocumentオブジェクトとして読み込み、リストに追加します
pdfs = []
for file in files:
    pdfs.append(PdfDocument(file))

# PdfDocumentクラスのオブジェクトを作成します
newPdf = PdfDocument()

# 読み込まれたPDFドキュメントから選択したページを新しいドキュメントに挿入します
newPdf.InsertPage(pdfs[0], 0)
newPdf.InsertPage(pdfs[1], 3)
newPdf.InsertPageRange(pdfs[2], 0, 1)

# 新しいPDFドキュメントを保存します
newPdf.SaveToFile("output/ページの選択.pdf")
newPdf.Close()

PDF文書の結合結果
2023-12-20_164426.png

単一ページ文書へのPDF文書の分割

PdfDocument.Split(PdfDocument) メソッドを使用して、複数ページのPDF文書を複数の単一ページのPDFファイルに分割することができます。以下はその詳細な手順です。

  1. PdfDocument クラスのオブジェクトを作成し、PdfDocument.LoadFromFile() メソッドを使ってPDFファイルを読み込みます。
  2. PdfDocument.Split() メソッドを使用して、ドキュメントを複数の単一ページPDFファイルに分割します。

コードの例
Python

from spire.pdf.common import *
from spire.pdf import *

# PdfDocumentオブジェクトを作成します
doc = PdfDocument()

# PDFファイルを読み込みます
doc.LoadFromFile("output/PDF文書の結合.pdf")

# PDFファイルを複数の単一ページのPDFファイルに分割します
doc.Split("Output/PDF/PDFの分割-{0}.pdf", 1)
doc.Close()

PDF文書の分割結果
単一ページ文書へのPDF文書の分割

ページ範囲によるPDF文書の分割

ページ範囲によって2つ以上のPDFファイルにPDFファイルを分割するには、2つ以上の新しいPDFファイルを作成し、次に新しく作成されたPDFファイルにソースPDFからページの特定のページまたは範囲をインポートする必要があります。以下は、詳細な手順です。

  1. PdfDocument クラスのオブジェクトを作成し、PdfDocument.LoadFromFile() メソッドを使ってPDFファイルを読み込みます。
  2. 別の3つの PdfDocument オブジェクトを作成します。
  3. PdfDocument.InsertPage() メソッドを使用して、ソースファイルから最初のページを最初のドキュメントにインポートします。
  4. PdfDocument.InsertPageRange() メソッドを使用して、ソースファイルから2-4ページを2番目のドキュメントにインポートします。
  5. PdfDocument.InsertPageRange() メソッドを使用して、ソースファイルから3番目のドキュメントに残りのページをインポートします。
  6. PdfDocument.SaveToFile() メソッドを使用して3つのドキュメントを保存します。

コードの例
Python

from spire.pdf.common import *
from spire.pdf import *

# PdfDocumentオブジェクトを作成します
doc = PdfDocument()

# PDFファイルを読み込みます
doc.LoadFromFile("output/PDF文書の結合.pdf")

# 3つのPdfDocumentオブジェクトを作成します
newDoc_1 = PdfDocument()
newDoc_2 = PdfDocument()
newDoc_3 = PdfDocument()

# ソースファイルの最初のページを最初のドキュメントに挿入します
newDoc_1.InsertPage(doc, 0)

# ソースファイルの2〜4ページを2番目のドキュメントに挿入します
newDoc_2.InsertPageRange(doc, 1, 3)

# ソースファイルの残りのページを3番目のドキュメントに挿入します
newDoc_3.InsertPageRange(doc, 4, doc.Pages.Count - 1)

# 3つのドキュメントを保存します
newDoc_1.SaveToFile("output/PDF1/PDF分割-1.pdf")
newDoc_2.SaveToFile("output/PDF1/PDF分割-2.pdf")
newDoc_3.SaveToFile("output/PDF1/PDF分割-3.pdf")

# PdfDocumentオブジェクトを閉じます
doc.Close()
newDoc_1.Close()
newDoc_2.Close()
newDoc_3.Close()

PDF文書の分割結果
ページ範囲によるPDF文書の分割

上記では、Pythonを使用してPDF文書、結合および分割するPDF文書を操作する方法について説明します。 単純なマージと分割に加えて、上記のメソッドはまた、自由にPDFページを操作するために使用することができますので、新しいPDFドキュメントの組成。Spire.PDF for Pythonは、必要に応じて、他の多くのPDF文書操作関数があり、あなたが見るためにSpire.PDF for Pythonのチュートリアルに行くことができます。 また、議論に参加するためにSpire.PDFフォーラムに行くことができます。

0
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
0
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?