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つの文書に結合することができます。
以下はその手順の一例である。
- PDF文書のファイルパスのリストを作成します。
- PdfDocument.MergeFiles() メソッドを使用してPDF文書を結合します。
- 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文書の結合
PDFファイルの結合は、PdfDocument.AppendPage(PdfDocument) メソッドを使用してPDFファイルから新しいPDFファイルにページをコピーすることによっても行うことができます。詳しい手順は以下の通りです。
- PDF文書のファイルパスのリストを作成します。
- 各PDF文書を PdfDocument クラスのオブジェクトとして読み込み、リストに追加する。
- 新しいPDF文書を作成するために PdfDocument クラスのオブジェクトを作成します。
- 読み込んだ各PDF文書をループし、PdfDocument.appendPage() メソッドを使って新しいPDF文書にそのページを挿入します。
- 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文書の選択されたページの結合
また、PdfDocument.InsertPage() メソッドや PdfDocument.InsertPageRange() メソッドを使用して、あるPDF文書から別のPDF文書へページを選択・挿入し、指定したPDFページの結合を可能にすることもできます。詳しい手順は以下の通りです。
- PDFファイルパスのリストを作成します。
- 各PDF文書を PdfDocument クラスのオブジェクトとして読み込み、リストに追加します。
- PdfDocument クラスのオブジェクトを作成して、新しいPDF文書を作成します。
- PdfDocument.InsertPage(PdfDocument, pageIndex: int) メソッドと PdfDocument.InsertPageRange(PdfDocument, startIndex: int, endIndex: int) メソッドを用いて、読み込んだ文書の選択したページを新しいPDF文書に挿入します。
- 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文書の分割
PdfDocument.Split(PdfDocument) メソッドを使用して、複数ページのPDF文書を複数の単一ページのPDFファイルに分割することができます。以下はその詳細な手順です。
- PdfDocument クラスのオブジェクトを作成し、PdfDocument.LoadFromFile() メソッドを使ってPDFファイルを読み込みます。
- 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文書の分割
ページ範囲によって2つ以上のPDFファイルにPDFファイルを分割するには、2つ以上の新しいPDFファイルを作成し、次に新しく作成されたPDFファイルにソースPDFからページの特定のページまたは範囲をインポートする必要があります。以下は、詳細な手順です。
- PdfDocument クラスのオブジェクトを作成し、PdfDocument.LoadFromFile() メソッドを使ってPDFファイルを読み込みます。
- 別の3つの PdfDocument オブジェクトを作成します。
- PdfDocument.InsertPage() メソッドを使用して、ソースファイルから最初のページを最初のドキュメントにインポートします。
- PdfDocument.InsertPageRange() メソッドを使用して、ソースファイルから2-4ページを2番目のドキュメントにインポートします。
- PdfDocument.InsertPageRange() メソッドを使用して、ソースファイルから3番目のドキュメントに残りのページをインポートします。
- 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()
上記では、Pythonを使用してPDF文書、結合および分割するPDF文書を操作する方法について説明します。 単純なマージと分割に加えて、上記のメソッドはまた、自由にPDFページを操作するために使用することができますので、新しいPDFドキュメントの組成。Spire.PDF for Pythonは、必要に応じて、他の多くのPDF文書操作関数があり、あなたが見るためにSpire.PDF for Pythonのチュートリアルに行くことができます。 また、議論に参加するためにSpire.PDFフォーラムに行くことができます。