ドキュメント管理や自動化の分野では、PDFドキュメントのページサイズ、向き、回転角などの基本的な特性を理解することが、文書の一貫した処理とレイアウトの忠実性を確保するために重要です。これらの属性は、コンテンツの再利用やアーカイブから、PDFをWeb環境や他のデジタルワークフローにシームレスに統合するまで、さまざまなアプリケーションで重要な役割を果たします。Pythonを活用することで、開発者はこれらのプロパティを効率的に抽出し、回転したページの自動修正などのタスクを容易に行うことができます。
この記事では、Pythonコードを使用してPDFドキュメントのページのサイズ、向き、および回転角を取得する方法を紹介します。
この記事で使用する方法は、Spire.PDF for Pythonを必要とします。PyPIでインストール: pip install Spire.PDF
PythonでPDFページのサイズを取得
PdfPageBase.Size.Width
とPdfPageBase.Size.Height
を使用して、ポイント単位でPDFページの幅と高さを取得できます。その後、PdfUnitConvertor
クラスを使用して、幅と高さをミリメートルなどの他の単位に変換できます。詳細な手順は以下の通りです:
- 必要なモジュールをインポートします。
-
PdfDocument
オブジェクトを作成し、PdfDocument.LoadFromFile()
メソッドを使用してPDFドキュメントをロードします。 -
PdfDocument.Pages.get_Item()
メソッドを使用してドキュメント内のページを取得します。 -
PdfPageBase.Size.Width
とPdfPageBase.Size.Height
プロパティを通じてページの幅と高さをポイントで取得します。 -
PdfUnitConvertor
オブジェクトを作成します。 -
PdfUnitConvertor.Convert()
メソッドを使用して幅と高さをミリメートルに変換します。 - 結果を出力します。
- リソースを解放します。
コード例
from spire.pdf import *
# PdfDocumentのインスタンスを作成
pdf = PdfDocument()
# PDFドキュメントを読み込む
pdf.LoadFromFile("Sample.pdf")
# 最初のページを取得
page = pdf.Pages.get_Item(0)
# ページの幅と高さをポイント単位で取得
width = page.Size.Width
height = page.Size.Height
# PdfUnitConvertorのインスタンスを作成
converter = PdfUnitConvertor()
# 幅と高さをポイントからミリメートルに変換
mmWidth = converter.ConvertUnits(width, PdfGraphicsUnit.Point, PdfGraphicsUnit.Millimeter)
mmHeight = converter.ConvertUnits(height, PdfGraphicsUnit.Point, PdfGraphicsUnit.Millimeter)
# 幅と高さを出力
print("幅: " + str(round(mmWidth, 1)) + " mm")
print("高さ: " + str(round(mmHeight, 1)) + " mm")
# リソースを解放
pdf.Close()
PythonでPDFページの向きを取得
ページの高さと幅を比較して、PDFページが横向き(ランドスケープ)か縦向き(ポートレート)かを判断できます。手順は以下の通りです:
- 必要なモジュールをインポートします。
-
PdfDocument
オブジェクトを作成し、PdfDocument.LoadFromFile()
メソッドを使用してPDFドキュメントをロードします。 -
PdfDocument.Pages.get_Item()
メソッドを使用してドキュメント内のページを取得します。 -
PdfPageBase.Size.Width
とPdfPageBase.Size.Height
プロパティを通じてページの幅と高さを取得します。 - 高さと幅を比較して、ページがランドスケープかポートレートかを判断し、結果を出力します。
- リソースを解放します。
コード例
from spire.pdf import *
# PdfDocumentのインスタンスを作成
pdf = PdfDocument()
# PDFドキュメントを読み込む
pdf.LoadFromFile("Sample.pdf")
# 最初のページを取得
page = pdf.Pages.get_Item(0)
# ページの幅と高さを取得
width = page.Size.Width
height = page.Size.Height
# ページの向きを確認して結果を出力
if width > height:
print("横向き")
else:
print("縦向き")
# リソースを解放
pdf.Close()
PythonでPDFページの回転角を取得・設定
PDFページの回転角は、PdfPageBase.Rotation
プロパティを使用して直接取得できます。次に、その値を使って文字列を作り、それを表示することもできるし、回転角度を変えることもできる。詳細な手順は以下の通りです:
- 必要なモジュールをインポートします。
-
PdfDocument
オブジェクトを作成し、PdfDocument.LoadFromFile()
メソッドを使用してPDFドキュメントをロードします。 -
PdfDocument.Pages.get_Item()
メソッドを使用してドキュメント内のページを取得します。 -
PdfPageBase.Rotation
プロパティを通じて回転角を取得します。 - 回転角を出力するか、他の操作を行います。
- リソースを解放します。
コード例
import re
from spire.pdf import *
# PdfDocumentのインスタンスを作成
pdf = PdfDocument()
# PDFドキュメントを読み込む
pdf.LoadFromFile("Sample1.pdf")
# 最初のページを取得
page = pdf.Pages.get_Item(0)
# ページの回転角度を取得
rotationAngle = page.Rotation
# 回転角度を出力
print("回転角度: " + re.search(r"\d+", rotationAngle.name).group() + " 度")
# 回転角度を変更
page.Rotation = PdfPageRotateAngle.RotateAngle0
# ドキュメントを保存
pdf.SaveToFile("output/ChangeRotationAngle.pdf")
pdf.Close()
この記事では、Pythonを使用してPDFドキュメントのページのサイズ、向き、および回転角を取得する方法を示しました。
さらにPDFドキュメント処理スキルを学びたい方は、Spire.PDF for Pythonのチュートリアルをご覧ください。