PYTHON用IRONPDFの使用

PythonでPDFファイルを編集する方法

更新済み 8月 24, 2023
共有:

イントロダクション

アイアンソフトウェアは次の内容を紹介します IronPDF for Python ライブラリ、PythonでのPDF編集タスクの実行を容易にするソリューションです。 署名の挿入、HTMLフッターの追加、透かしの埋め込み、注釈の追加、またはPDFファイルの編集が必要な場合、IronPDF for Pythonが最適なツールです。 このライブラリは、コードの可読性を保ち、プログラムによるPDFの作成をサポートし、簡単なデバッグを可能にし、すべての互換性のあるプラットフォームと環境にシームレスに展開します。

このチュートリアル記事では、豊富な機能を説明するために、Pythonのコード例と包括的な説明を用いて探求します。 このガイドの終わりまでに、PDF編集のすべてのニーズに対応するためのIronPDF Pythonの使い方について、しっかりと理解できるようになります。

PythonでPDFファイルを編集する方法

  1. pipインストーラーを使用してPython PDFライブラリをインストールしてください。

  2. Python PDFライブラリのライセンスキーを適用する。

  3. 編集用にPDFドキュメントを読み込みます。

  4. さまざまなオプションを使用してPDFドキュメントを編集します。例えば、分割、ページのコピー、その他のPDF操作があります。

  5. SaveAs関数を使用して変更されたファイルを保存します。

ドキュメント構造の編集

ページを操作

IronPDFは、特定の位置にページを追加したり、特定のページまたはページ範囲を抽出したり、任意のPDFからページを削除したりするプロセスを簡素化します。 それは複雑なプロセスをすべて処理し、これらのタスクを効率的に実行するのを容易にします。

ページを追加

ページの内容、サイズ、位置を指定して、PDFドキュメントにページを追加することができます。 必要な変更を加えた後、SaveAs機能を使用して出力PDFファイルを保存できます。

from ironpdf import *

# Set a log path
Logger.EnableDebugging = True
Logger.LogFilePath = "Custom.log"
Logger.LoggingMode = Logger.LoggingModes.All

pdf = PdfDocument("C:\\Users\\Administrator\\Downloads\\Documents\\sample.pdf")
renderer = ChromePdfRenderer()
coverPagePdf = renderer.RenderHtmlAsPdf("<h1>Cover Page</h1><hr>")
pdf.PrependPdf(coverPagePdf)
pdf.SaveAs("report_with_cover.pdf")
PYTHON

ページをコピー

ページ番号と宛先を指定することで、あるPDFドキュメントから別の既存のPDFファイルにページをコピーすることができます。 さらに、コピーしたPDFページから新しいPDFファイルを作成するオプションもあります。 単一のPDFファイルから1ページまたは複数のページを選択してコピーすることも可能です。

from ironpdf import *

pdf = PdfDocument("C:\\Users\\Administrator\\Downloads\\Documents\\sample.pdf")
# Copy pages 5 to 7 and save them as a new document.
pdf.CopyPages(2, 4).SaveAs("report_highlight.pdf")
PYTHON

ページを削除

入力PDFファイルからページ番号を指定することでページを削除することができます。

from ironpdf import *
pdf = PdfDocument("report.pdf")
pdf.RemovePage(pdf.PageCount-1)
pdf.SaveAs("Report-Minus-1.pdf")
PYTHON

PDFのマージと分割

IronPDFの使いやすいAPIを使用すれば、複数のPDFを一つにまとめたり、既存のPDFを別々のファイルに分割したりすることが簡単にできます。

複数の既存のPDFを1つのPDFドキュメントに結合

複数のPDF文書を結合して一つの文書にすることができます。入力PDF文書と出力PDF文書を指定してください。

from ironpdf import *

html_a = """<p> [PDF_A] </p>
            <p> [PDF_A] 1st Page </p>
            <div style='page-break-after: always;'></div>
            <p> [PDF_A] 2nd Page</p>"""

html_b = """<p> [PDF_B] </p>
            <p> [PDF_B] 1st Page </p>
            <div style='page-break-after: always;'></div>
            <p> [PDF_B] 2nd Page</p>"""

renderer = ChromePdfRenderer()

pdfdoc_a = renderer.RenderHtmlAsPdf(html_a)
pdfdoc_b = renderer.RenderHtmlAsPdf(html_b)
merged = PdfDocument.Merge(pdfdoc_a, pdfdoc_b)

merged.SaveAs("Merged.pdf")
PYTHON

PDFを分割してページを抽出

PDFドキュメントを複数のドキュメントに分割したり、特定のページを抽出したりすることができます。これは、入力PDFドキュメントと出力PDFドキュメントまたはページ番号を指定することで可能です。

from ironpdf import *

html = """<p> Hello Iron </p>
          <p> This is 1st Page </p>
          <div style='page-break-after: always;'></div>
          <p> This is 2nd Page</p>
          <div style='page-break-after: always;'></div>
          <p> This is 3rd Page</p>"""

renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(html)

# take the first page
page1doc = pdf.CopyPage(0)
page1doc.SaveAs("Split1.pdf")

# take pages 2 & 3
page23doc = pdf.CopyPages(1, 2)
page23doc.SaveAs("Split2.pdf")
PYTHON

ドキュメントプロパティの編集

PDFメタデータの追加と使用

IronPDF for Pythonを使用してPDFメタデータを追加および使用できます。 これは、著作権情報の追加、変更の追跡、または単にPDFドキュメントをより検索しやすくするために有用です。

PDFメタデータとは、PDF文書に保存されているデータの集合です。 このデータには、PDFドキュメントのタイトル、著者、件名、キーワード、作成日、および変更日が含まれます。 さらに、要件に応じて追加できるカスタムデータを含めることができます。

from ironpdf import *

# Open an Encrypted File, alternatively create a new PDF from Html
pdf = PdfDocument.FromFile("encrypted.pdf", "password")

# Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = Now()
pdf.SaveAs("MetaData-Updated.pdf")
PYTHON

デジタル署名

IronPDFは、新規または既存のPDFファイルを.pfxおよび.p12 X509Certificate2デジタル証明書を使用してデジタル署名することを可能にします。 この方法を使用してPDFに署名すると、ドキュメントに変更が加えられた場合、証明書での検証が必要となり、ドキュメントの整合性が確保されます。

Adobe Reader を使用して無料で署名証明書を生成するための詳細なガイダンスは、次のページでご覧いただけます: アドビのウェブサイト.

暗号署名に加えて、IronPDF は文書に署名する別の方法として手書き署名画像または会社印画像の使用もサポートしています。

from ironpdf import *

# Cryptographically sign an existing PDF in 1 line of code!
PdfSignature(r".\certificates\IronSoftware.p12", "123456").SignPdfFile("any.pdf")

##### Advanced example for more control #####

# Step 1. Create a PDF.
renderer = ChromePdfRenderer()
doc = renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>")

# Step 2. Create a signature.
# You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.
# Read https://helpx.adobe.com/acrobat/using/digital-ids.html
signature = PdfSignature(r"certificates\IronSoftware.pfx", "123456")

# Step 3. Optional signing options and a handwritten signature graphic.
signature.SigningContact = "support@ironsoftware.com"
signature.SigningLocation = "Chicago, USA"
signature.SigningReason = "To show how to sign a PDF"

# Step 4. Sign the PDF with the PdfSignature. Multiple signing certificates may be used.
doc.Sign(signature)

# Step 5. The PDF is not signed until saved to file, steam or byte array.
doc.SaveAs("signed.pdf")
PYTHON

PDF添付ファイル

IronPDFを使用すると、PDFドキュメントに添付ファイルを簡単に追加したり、必要に応じて削除したりすることが非常に簡単です。 これは、IronPDFの助けを借りて、追加のファイルをPDFに挿入し、必要に応じて取り出すことができることを意味します。

from ironpdf import *

# Instantiate the Renderer and create PdfDocument from HTML
renderer = ChromePdfRenderer()
my_pdf = renderer.RenderHtmlFileAsPdf("my-content.html")

# Open PDF document to be attached
pdf = PdfDocument.FromFile("new_sample.pdf")

# Here we can add an attachment with a name and a byte []
attachment1 = my_pdf.Attachments.AddAttachment("attachment_1", pdf.BinaryData)

# And here is an example of removing an attachment
my_pdf.Attachments.RemoveAttachment(attachment1)

my_pdf.SaveAs("my-content.pdf")
PYTHON

PDFファイルを圧縮

IronPDFには、PDFのファイルサイズを縮小するための圧縮機能があります。一つの方法は、CompressImagesメソッドを使用してPDFドキュメントに埋め込まれた画像のサイズを縮小することです。

画像の品質に関して、JPEG画像では、100%の品質はほとんど品質の損失がない画像を提供しますが、1%では非常に低品質な出力になります。 一般的に、90%以上の画像品質は高品質と見なされます。 中品質の画像は80%から90%の範囲にあり、低品質の画像は70%から80%の範囲です。 もし70%を下回ると、画像の品質が著しく低下しますが、PDFドキュメント全体のファイルサイズを大幅に削減するのに役立ちます。

異なる品質のパーセンテージを試して、ニーズに合った品質とファイルサイズのバランスを見つけることをお勧めします。 画像の種類によっては、縮小後の品質の目立った低下が異なる場合があります。画像によっては、他の画像よりも鮮明さが失われることがあります。

from ironpdf import *

pdf = PdfDocument("document.pdf")

# Quality parameter can be 1-100, where 100 is 100% of original quality
pdf.CompressImages(60)
pdf.SaveAs("document_compressed.pdf")

# Second optional parameter can scale down the image resolution according to its visible size in the PDF document. Note that this may cause distortion with some image configurations
pdf.CompressImages(90, True)
pdf.SaveAs("document_scaled_compressed.pdf")
PYTHON

PDFコンテンツの編集

ヘッダーとフッターの追加

IronPDFを使用してPDFドキュメントにヘッダーとフッターを追加するのは簡単です。 そのソフトウェアは、2種類の独立したHeaderFootersTextHeaderFooterHtmlHeaderFooterを提供します。 TextHeaderFooterは、テキストのみを含むヘッダーおよびフッターに理想的であり、「」のようなマージフィールドを組み込む必要がある場合があります。{ページ} 以下の内容を日本語に翻訳してください:

{総ページ数}申し訳ありませんが、翻訳するための具体的なテキストが提供されていません。翻訳するコンテンツを提供していただければ、日本語に翻訳いたします。 一方、HtmlHeaderFooter は、任意のHTMLコンテンツを処理して整然とフォーマットできる、より高度なオプションであり、より複雑なヘッダーとフッターに適しています。

HTMLヘッダーとフッター

IronPDF Pythonを使用すると、HtmlHeaderFooter機能を利用してPDFドキュメントのHTMLヘッダーまたはフッターをHTMLから作成することができます。 これは、ヘッダーやフッターをHTMLで設計し、IronPDF for Python が完璧に変換してPDFに適合させることができるため、細部に至るまで正確に仕上がることを意味します。 したがって、ヘッダーやフッターのためのHTMLデザインを持っている場合、IronPDF for Pythonはそれを正確にPDFドキュメントに適用することができます。

from ironpdf import *
import os

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Build a footer using html to style the text
# mergeable fields are
# {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
renderer.RenderingOptions.HtmlFooter = HtmlHeaderFooter()
renderer.RenderingOptions.HtmlFooter.MaxHeight = 15  # millimeters
renderer.RenderingOptions.HtmlFooter.HtmlFragment = "<center><i>{page} of {total-pages}<i></center>"
renderer.RenderingOptions.HtmlFooter.DrawDividerLine = True

# Use sufficient MarginBottom to ensure that the HtmlFooter does not overlap with the main PDF page content.
renderer.RenderingOptions.MarginBottom = 25  # mm

# Build a header using an image asset
# Note the use of BaseUrl to set a relative path to the assets
renderer.RenderingOptions.HtmlHeader = HtmlHeaderFooter()
renderer.RenderingOptions.HtmlHeader.MaxHeight = 20  # millimeters
renderer.RenderingOptions.HtmlHeader.HtmlFragment = "<img src='iron.png'>"
renderer.RenderingOptions.HtmlHeader.BaseUrl = os.path.abspath("C:/Users/lyty1/OneDrive/Documents/IronPdfPythonNew")

# Use sufficient MarginTop to ensure that the HtmlHeader does not overlap with the main PDF page content.
renderer.RenderingOptions.MarginTop = 25  # mm
PYTHON

テキストヘッダーとフッター

from ironpdf import *

# Initiate PDF Renderer
renderer = ChromePdfRenderer()

# Add a header to every page easily
renderer.RenderingOptions.FirstPageNumber = 1  # use 2 if a cover page will be appended
renderer.RenderingOptions.TextHeader.DrawDividerLine = True
renderer.RenderingOptions.TextHeader.CenterText = "{url}"
renderer.RenderingOptions.TextHeader.Font = FontTypes.Helvetica
renderer.RenderingOptions.TextHeader.FontSize = 12
renderer.RenderingOptions.MarginTop = 25  # create 25mm space for header

# Add a footer too
renderer.RenderingOptions.TextFooter.DrawDividerLine = True
renderer.RenderingOptions.TextFooter.Font = FontTypes.Arial
renderer.RenderingOptions.TextFooter.FontSize = 10
renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"
renderer.RenderingOptions.MarginBottom = 25  # create 25mm space for footer

# Mergeable fields are
# {page} {total-pages} {url} {date} {time} {html-title} & {pdf-title}
PYTHON

アウトラインとブックマーク

アウトライン、別名「ブックマーク」とも呼ばれるものは、PDFドキュメント内の重要なページに素早く移動するのに役立つツールです。 Adobe Acrobat Reader を使用している場合、これらのブックマークを確認できます (階層構造で整理することができます) アプリの左サイドバー内に。

IronPDF Pythonライブラリは、ブックマークを扱うのをさらに簡単にします。 自動的にPDFドキュメントから既存のブックマークを取り込むことができます。 さらに、IronPDFを使用してブックマークを追加、編集、またはグループに整理することができます。

from ironpdf import *

# Create a new PDF or edit an existing document.
pdf = PdfDocument.FromFile("existing.pdf")

# Add bookmark
pdf.Bookmarks.AddBookMarkAtEnd("Author's Note", 2)
pdf.Bookmarks.AddBookMarkAtEnd("Table of Contents", 3)

# Store new bookmark in a variable to add nested bookmarks to
summaryBookmark = pdf.Bookmarks.AddBookMarkAtEnd("Summary", 17)

# Add a sub-bookmark within the summary
conclusionBookmark = summaryBookmark.Children.AddBookMarkAtStart("Conclusion", 18)

# Add another bookmark to end of highest-level bookmark list
pdf.Bookmarks.AddBookMarkAtEnd("References", 20)

pdf.SaveAs("existing.pdf")
PYTHON

注釈の追加および編集

IronPDF Pythonを使用して、PDFドキュメントに注釈を追加および編集することができます。 注釈は、テキストを強調表示したり、コメントを追加したり、リンクを作成したりするために使用できます。 既存の注釈を編集することもできます。

from ironpdf import *

# Load an existing PDF or create a new one
pdf = PdfDocument("existing.pdf")

# Create a TextAnnotation object
annotation = TextAnnotation()
annotation.Title = "This is the major title"
annotation.Subject = "This is a subtitle"
annotation.Contents = "This is the long 'sticky note' comment content..."
annotation.Icon = TextAnnotation.AnnotationIcon.Help
annotation.Opacity = 0.9
annotation.Printable = False
annotation.Hidden = False
annotation.OpenByDefault = True
annotation.ReadOnly = False
annotation.Rotateable = True

# Add the annotation to a specific page and location within the PDF
pdf.AddTextAnnotation(annotation, 1, 150, 250)

# Save the PDF
pdf.SaveAs("existing.pdf")
PYTHON

背景と前景を追加

IronPDF for Pythonを使用すると、PDFドキュメントに背景と前景を追加できます。 これは、透かしを追加したり、カスタムテンプレートを作成したり、単にPDFドキュメントをより視覚的に魅力的にするために役立ちます。 画像、色、またはグラデーションを背景や前景として使用できます。

from ironpdf import *

# Instantiate Renderer
renderer = ChromePdfRenderer()

# Render a PDF from a URL
pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")

# Add a PDF as background
pdf.AddBackgroundPdf("MyBackground.pdf")

# Add a PDF as foreground overlay to the first page
pdf.AddForegroundOverlayPdfToPage(0, "MyForeground.pdf", 0)

# Save the merged PDF
pdf.SaveAs("Complete.pdf")
PYTHON

スタンプと透かし

IronPDF Pythonを使用すると、PDFドキュメントにスタンプやウォーターマークを入れることができます。 これは、著作権情報の追加、不正コピーの防止、または単にPDFドキュメントをよりプロフェッショナルに見せるのに役立ちます。 PDFドキュメントにテキスト、画像、またはウォーターマークをスタンプすることができます。 スタンプやウォーターマークのサイズ、位置、不透明度も制御できます。

PDFにスタンプを適用する

IronPDF for Pythonを使用してPDFドキュメントにスタンプを適用できます。 これは、ロゴ、署名、またはその他の識別情報をPDFドキュメントに追加するのに役立ちます。 スタンプの種類、位置、サイズを選択できます。また、スタンプの不透明度を設定することもできます。

from ironpdf import *

# Create an HtmlStamper object to stamp an image onto a PDF
stamper = HtmlStamper("<img src='https://ironpdf.com/img/products/ironpdf-logo-text-dotnet.svg'/>")
stamper.HorizontalAlignment = HorizontalAlignment.Center
stamper.VerticalAlignment = VerticalAlignment.Bottom
stamper.IsStampBehindContent = False
stamper.Opacity = 30

# Load an existing PDF document and apply the stamp to it
pdf = PdfDocument.FromFile("Sample.pdf")
pdf.ApplyStamp(stamper).SaveAs("stampedimage.pdf")
PYTHON

PDFにウォーターマークを追加する

IronPDF for Pythonを使用すると、PDFドキュメントにウォーターマークを追加できます。 これは、無断コピーを防ぐため、またはPDFドキュメントをよりプロフェッショナルに見せるために役立ちます。 テキスト、フォント、サイズ、カラーを選択して透かしを設定できます。 透かしの不透明度も設定できます。

from ironpdf import *

# Instantiate the Renderer and create PdfDocument from URL
renderer = ChromePdfRenderer()
pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")

# Apply watermark
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, VerticalAlignment.Middle, HorizontalAlignment.Center)

# Save your new PDF
pdf.SaveAs("Watermarked.pdf")
PYTHON

PDFでフォームを使用する

IronPDF Python を使用して、PDF ドキュメント内のフォームを作成および編集できます。 これはユーザーからデータを収集するため、または単にPDFドキュメントをよりインタラクティブにするために役立ちます。テキストボックス、チェックボックス、ラジオボタンなどのフォームフィールドを追加できます。 また、ユーザーからフォームデータを収集することもできます。

フォームを作成および編集

from ironpdf import *

# Step 1.  Creating a PDF with editable forms from HTML using form and input tags
# Radio Button and Checkbox can also be implemented with input type 'radio' and 'checkbox'
form_html = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <form>
            First name: <br> <input type='text' name='firstname' value=''> <br>
            Last name: <br> <input type='text' name='lastname' value=''> <br>
            <br>
            <p>Please specify your gender:</p>
            <input type='radio' id='female' name='gender' value= 'Female'>
            <label for='female'>Female</label> <br>
            <br>
            <input type='radio' id='male' name='gender' value='Male'>
            <label for='male'>Male</label> <br>
            <br>
            <input type='radio' id='non-binary/other' name='gender' value='Non-Binary / Other'>
            <label for='non-binary/other'>Non-Binary / Other</label>
            <br>

            <p>Please select all medical conditions that apply:</p>
            <input type='checkbox' id='condition1' name='Hypertension' value='Hypertension'>
            <label for='condition1'> Hypertension</label><br>
            <input type='checkbox' id='condition2' name='Heart Disease' value='Heart Disease'>
            <label for='condition2'> Heart Disease</label><br>
            <input type='checkbox' id='condition3' name='Stoke' value='Stoke'>
            <label for='condition3'> Stoke</label><br>
            <input type='checkbox' id='condition4' name='Diabetes' value='Diabetes'>
            <label for='condition4'> Diabetes</label><br>
            <input type='checkbox' id='condition5' name='Kidney Disease' value='Kidney Disease'>
            <label for='condition5'> Kidney Disease</label><br>
        </form>
    </body>
</html>
"""

# Instantiate Renderer
renderer = ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
renderer.RenderHtmlAsPdf(form_html).SaveAs("BasicForm.pdf")

# Step 2. Reading and Writing PDF form values.
form_document = PdfDocument.FromFile("BasicForm.pdf")

# Set and read the value of the "firstname" field
first_name_field = form_document.Form.GetFieldByName("firstname")
first_name_field.Value = "Minnie"
print("FirstNameField value: {}".format(first_name_field.Value))

# Set and read the value of the "lastname" field
last_name_field = form_document.Form.GetFieldByName("lastname")
last_name_field.Value = "Mouse"
print("LastNameField value: {}".format(last_name_field.Value))

form_document.SaveAs("FilledForm.pdf")
PYTHON

結論

IronPDF Pythonは、PythonからPDFドキュメントを作成、操作、編集することを可能にする強力なPython PDFライブラリです。 このライブラリを使用すると、PDFドキュメントの操作が非常に簡単になりました。 さまざまな機能があり、ドキュメント構造の編集、ページの操作、PDFの結合および分割、ドキュメントのプロパティの編集、PDFメタデータの追加と使用が可能です。

IronPDF Pythonはユーザーフレンドリーで、どのようなPythonプロジェクトにもシームレスに統合できます。 これは、PythonでPDFドキュメントを操作する必要があるすべての人にとって貴重なツールです。 IronPDF for Pythonのライセンスは$749からスタートします。 以下で詳細情報をご覧いただけます: IronPDFのウェブサイト.

< 以前
PythonでPDFフォームを生成する方法
次へ >
PythonでPDFから特定のテキストを抽出する方法

準備はできましたか? バージョン: 2024.9 新発売

無料 pip インストール View Licenses >