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?

PythonでPDFページのサイズ、向き、回転角を取得する方法

Posted at

ドキュメント管理や自動化の分野では、PDFドキュメントのページサイズ、向き、回転角などの基本的な特性を理解することが、文書の一貫した処理とレイアウトの忠実性を確保するために重要です。これらの属性は、コンテンツの再利用やアーカイブから、PDFをWeb環境や他のデジタルワークフローにシームレスに統合するまで、さまざまなアプリケーションで重要な役割を果たします。Pythonを活用することで、開発者はこれらのプロパティを効率的に抽出し、回転したページの自動修正などのタスクを容易に行うことができます。

この記事では、Pythonコードを使用してPDFドキュメントのページのサイズ、向き、および回転角を取得する方法を紹介します。

この記事で使用する方法は、Spire.PDF for Pythonを必要とします。PyPIでインストール: pip install Spire.PDF

無料ライセンスの申請

PythonでPDFページのサイズを取得

PdfPageBase.Size.WidthPdfPageBase.Size.Heightを使用して、ポイント単位でPDFページの幅と高さを取得できます。その後、PdfUnitConvertorクラスを使用して、幅と高さをミリメートルなどの他の単位に変換できます。詳細な手順は以下の通りです:

  • 必要なモジュールをインポートします。
  • PdfDocumentオブジェクトを作成し、PdfDocument.LoadFromFile()メソッドを使用してPDFドキュメントをロードします。
  • PdfDocument.Pages.get_Item()メソッドを使用してドキュメント内のページを取得します。
  • PdfPageBase.Size.WidthPdfPageBase.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ページのサイズを取得

PythonでPDFページの向きを取得

ページの高さと幅を比較して、PDFページが横向き(ランドスケープ)か縦向き(ポートレート)かを判断できます。手順は以下の通りです:

  • 必要なモジュールをインポートします。
  • PdfDocumentオブジェクトを作成し、PdfDocument.LoadFromFile()メソッドを使用してPDFドキュメントをロードします。
  • PdfDocument.Pages.get_Item()メソッドを使用してドキュメント内のページを取得します。
  • PdfPageBase.Size.WidthPdfPageBase.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ページの向きを取得

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ページの回転角を取得・設定

この記事では、Pythonを使用してPDFドキュメントのページのサイズ、向き、および回転角を取得する方法を示しました。

さらにPDFドキュメント処理スキルを学びたい方は、Spire.PDF for Pythonのチュートリアルをご覧ください。

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?