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文書を扱う際、ページの余白が大きすぎる場合に遭遇することがあります。この過剰な余白は、ページのスペースを無駄にするだけでなく、印刷や電子閲覧時にユーザー体験にも影響を与えることがあります。この不要な余白を削除することで、ページのエリアをより効果的に活用し、内容をよりコンパクトに読みやすくすることが可能です。特に印刷が必要な文書の場合、紙のコスト削減にもつながります。Pythonを使用して、この問題を効率的に解決し、PythonコードでPDF文書の余白を削除し、自動化することで、文書整理のニーズに対応できます。

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

無料ライセンスの申請

PythonでPDF文書の余白を削除する

Spire.PDFのPdfDocument.PageSettings.Marginsプロパティを使って、PDF文書の上下左右の余白を取得し、新たに余白のないページを作成した上で、元のページを余白を削除した位置から新しいページに描画し、最後に元のページを削除することで余白の削除を実現できます。以下はその手順の例です:

  1. 必要なモジュールをインポートします。
  2. PdfDocumentオブジェクトを作成し、PdfDocument.LoadFromFile()メソッドでPDF文書を読み込みます。
  3. PdfDocument.PageSettings.Marginsプロパティで文書の余白を取得します。
  4. PdfDocument.Pages.Countプロパティで現在のページ数を取得します。
  5. 文書内の各ページをループ処理します:
    • PdfDocument.Pages.get_Item()メソッドで現在のページを取得します。
    • PdfDocument.Pages.Add(pageSize: SizeF, pageMargins: PdfMargins)メソッドで、余白を引いたサイズで、かつ余白がゼロのページを作成します。
    • PdfPageBase.CreateTemplate()メソッドで元のページのテンプレートを作成します。
    • PdfPageBase.Canvas.DrawTemplate()メソッドで、余白を引いた位置から新しいページにテンプレートを描画します。
  6. 元のページをループ処理し、PdfDocument.Pages.RemoveAt()メソッドで全ての元のページを削除します。
  7. PdfDocument.SaveToFile()メソッドで文書を保存します。
  8. リソースを解放します。

コード例

from spire.pdf import *

# PdfDocumentのインスタンスを作成
pdf = PdfDocument()

# PDF文書を読み込む
pdf.LoadFromFile("Sample.pdf")

# PDF文書の余白を取得
margins = pdf.PageSettings.Margins
top = margins.Top
left = margins.Left
right = margins.Right
bottom = margins.Bottom

# PDF文書内の全てのページを処理
pageCount = pdf.Pages.Count
for i in range(pageCount):
    # 現在のページを取得
    page = pdf.Pages.get_Item(i)
    # 新しいページを作成し、そのサイズと余白を設定
    newPage = pdf.Pages.Add(SizeF(page.Size.Width - left - right, page.Size.Height - top - bottom), PdfMargins(0.0))
    # 元のページのテンプレートを作成
    template = page.CreateTemplate()
    # 元のページの内容を余白を引いた位置に新しいページに描画
    newPage.Canvas.DrawTemplate(template, PointF(-left, -top))

# 元のページを削除
for i in range(pageCount):
    pdf.Pages.RemoveAt(0)

# 変更後のPDFファイルを保存
pdf.SaveToFile("output/PDFの余白を削除.pdf")
pdf.Close()

結果
PythonでPDFの余白を削除

この記事では、Pythonを使用して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?