Python を使用して PDF ファイルを印刷する方法

Pythonを使用してPDFファイルを印刷する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

PythonでのPDFファイルの印刷は、ドキュメント自動化ワークフローで一般的な要件です — 作成時にプリンターに送信される請求書、自動キューイングされる配送ラベル、スケジュールによって配布される監査レポートなど。 IronPDF for Python には、2つの直接的なメソッドが用意されています。pdf.Print() はデフォルトのプリンターへの即時出力用、pdf.GetPrintDocument() はページ範囲、プリンターの選択、部数、並び順を完全に制御するためのものです。

このガイドは、インストール、PDFのロード、デフォルト印刷、カスタム印刷設定について、それぞれの動作コード例を交えて解説します。

クイックスタート: Python で PDF ファイルを印刷する

  1. IronPDFのインストール: pip install ironpdf
  2. ライブラリのインポート: from ironpdf import *
  3. PDFを読み込む: pdf = PdfDocument.FromFile("MyPdf.pdf")
  4. デフォルト設定でPRINT: pdf.Print()
  5. または、まず設定を行う: printer_setting = pdf.GetPrintDocument()
from ironpdf import *

# Apply license key
License.LicenseKey = "YOUR-LICENSE-KEY"

# Load and print immediately
pdf = PdfDocument.FromFile("report.pdf")
pdf.Print()
from ironpdf import *

# Apply license key
License.LicenseKey = "YOUR-LICENSE-KEY"

# Load and print immediately
pdf = PdfDocument.FromFile("report.pdf")
pdf.Print()
PYTHON

IronPDFとは何で、PDF印刷にどう役立ちますか?

IronPDFは開発者がPDFドキュメントを生成、操作、変換できるようにするPythonライブラリです。 このライブラリの印刷機能は、単一のメソッド呼び出しによるデフォルトプリンターへの直接出力と、PrinterSettings へのドキュメントレベルでのアクセスによる完全なプリンター制御という、2つのパターンをサポートしています。

IronPDFを使用すると、プリンター通信の根底にある複雑さはライブラリによって処理されます。 開発者は、OSレベルのプリントスプーラーとのやり取りやsubprocessコマンド、あるいはプラットフォーム固有の印刷ユーティリティを管理する代わりに、高レベルなAPIを使用して作業を行います。 それにより、同じPythonコードがWindows、Linux、macOSで変更なしに動作します。

キースキルはHTML、CSS、JavaScriptをPDFに変換してから印刷する能力です。これは、ソースマテリアルが既存のファイルではなく、ウェブテンプレートや動的レポートである場合に役立ちます。詳細についてはHTMLからPDFのチュートリアルをご覧ください。 ライブラリはまた、印刷前にPDFを結合し、大きなドキュメントのスプール転送時間を減少させるためにPDFを圧縮することをサポートしています。

なぜPythonでのPDF印刷にIronPDFを選ぶのか?

IronPDFは完全な印刷APIを提供し、GhostscriptやAdobe Readerコマンドラインフラグのような外部ツールに依存しません。 ライブラリは内部でドキュメントのレンダリングを処理し、印刷出力が画面表示と正確に一致します。 クロスプラットフォーム対応、一貫した PrinterSettings へのアクセス、およびローカルにインストールされたPDFビューアへの依存がないことは、サブプロセスベースのアプローチに対する主な実用上の利点です。

また、印刷するコンテンツがまだPDFとして存在していない場合にも特に有用です。 開発者はHTMLテンプレートからPDFを作成し、ヘッダーとフッターを追加し、カスタムフォントを使用したページレイアウトを適用し、結果をプリンターに直接送信します — すべて単一 for Pythonスクリプト内で行います。 これにより、IronPDFは既存のファイルを印刷するだけでなく、ドキュメント生成から印刷へ至るパイプラインに適したものとなります。


Python用IronPDFはどのようにインストールしますか?

IronPDFパッケージはPyPIで入手可能で、シングルpipコマンドでインストールできます。

 pip install ironpdf

インストール後、スクリプトの上部にインポート文を追加します:

from ironpdf import *
from ironpdf import *
PYTHON

IronPDFはPython 3.6以降を必要とします。 パッケージは初めて使用されるときに自動的にIronPDFレンダリングエンジンをダウンロードするので、最初のインポートがしばらくかかるかもしれません。 アウトバウンドアクセスが制限された環境のために、オフライン設定オプションはIronPDFエンジン設定ガイドを参照ください。

ライセンスキーを設定する

実運用で使用するにはライセンスキーが必要です。 他のIronPDF呼び出しの前に設定してください:

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"
PYTHON

ライブラリはトライアルモードでキーなしでの開発と評価に利用可能ですが、出力PDFにはトライアル透かしが含まれます。 インストールに関する問題解決については、インストールのトラブルシューティングガイドを参照ください。


PDFファイルを印刷用にロードする方法は?

IronPDF Python PdfDocument.FromFile() ファイルシステムからPDFを読み込み、印刷可能な状態のPdfDocumentオブジェクトを作成

IronPDF for Pythonを使用してファイルシステムからPdfDocumentオブジェクトにPDFをロードします。

IronPDFは、PdfDocument.FromFile()を使用してファイルシステムからPDFファイルを読み込みます。 このメソッドはファイルパスの文字列を受け取り、PRINT、操作、または確認が可能な PdfDocument オブジェクトを返します。

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

# Load from a file path
pdf = PdfDocument.FromFile("MyPdf.pdf")

# Load from bytes (e.g., a file read from a database or HTTP response)
with open("MyPdf.pdf", "rb") as f:
    pdf_bytes = f.read()
pdf_from_bytes = PdfDocument.FromBytes(pdf_bytes)

# Load a password-protected PDF
protected_pdf = PdfDocument.FromFile("SecurePdf.pdf", "password123")
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

# Load from a file path
pdf = PdfDocument.FromFile("MyPdf.pdf")

# Load from bytes (e.g., a file read from a database or HTTP response)
with open("MyPdf.pdf", "rb") as f:
    pdf_bytes = f.read()
pdf_from_bytes = PdfDocument.FromBytes(pdf_bytes)

# Load a password-protected PDF
protected_pdf = PdfDocument.FromFile("SecurePdf.pdf", "password123")
PYTHON

上記のコードは3つのロードパターンを示しています。 FromFile() は、ファイルシステムワークフローにおいて最も一般的なものです。 FromBytes()は、PDFがデータベースクエリやAPIレスポンスからバイナリデータとして取得される場合に役立ちます。 FromFile() のオプションのパスワードパラメータを使用すると、追加の復号化手順を必要とせずに、暗号化された PDF を処理できます。

URLまたはHTMLコンテンツから取得したPDFの場合、IronPDFは印刷前にURLをPDFに変換したり、HTMLファイルをPDFにレンダリングもできます。

サポートされている入力ソース

PDFファイルだけでなく、IronPDFは画像、HTML文字列、ライブURLから印刷可能なドキュメントを作成できます。 これは、ソースデータが既にPDF化されていない印刷ワークフローで役立ちます。例えば、チャート付きのレポートテンプレートをまずPDFに変換してからプリンターに送信できます。


デフォルト設定を使用してPDFを印刷するにはどうすればよいですか?

pdf.PRINT() を呼び出す Python スクリプト。その結果として生成された印刷ジョブが Windows の印刷キューに表示されています

A Python script using IronPDF's `Print()` method sends a PDF job to the system default printer.

Print() メソッドは、デフォルトのページ設定を使用して、ドキュメントをシステムのデフォルトプリンターに送信します。 追加の設定は不要です。

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

# Load the PDF
pdf = PdfDocument.FromFile("invoice.pdf")

# Print to default printer with default settings
pdf.Print()
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

# Load the PDF
pdf = PdfDocument.FromFile("invoice.pdf")

# Print to default printer with default settings
pdf.Print()
PYTHON

デフォルト設定では、システムのデフォルトプリンターを使い、すべてのページを印刷し、プリンター自身のデフォルトの用紙サイズと向きを適用し、1部を送信します。 ユーザーのプリンタ設定がドキュメント要件と既に一致している場合、これはシンプルなワークフローに適しています。

本番コードでは、印刷呼び出しをエラーハンドリングでラップし、プリンターオフラインや許可エラーをキャッチします。

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

try:
    pdf = PdfDocument.FromFile("invoice.pdf")
    pdf.Print()
except Exception as e:
    print(f"Print job failed: {e}")
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

try:
    pdf = PdfDocument.FromFile("invoice.pdf")
    pdf.Print()
except Exception as e:
    print(f"Print job failed: {e}")
PYTHON

例外メッセージは、印刷失敗についてOSレベルの詳細を提供します。例えば、プリンターがオフライン、スプーラーが一時停止中、またはドキュメントがレンダリングに失敗した場合。


印刷前に印刷設定をカスタマイズするにはどうすればよいですか?

IronPDF Pythonスクリプトで設定されたPrinterName、FromPage、ToPage、CopiesなどのPrinterSettingsプロパティを示すIronPDF PythonのGetPrintDocument()

IronPDF's `GetPrintDocument()` method returns a PrintDocument object with full access to PrinterSettings properties.

GetPrintDocument() は、PrintDocument API の全機能を公開する PrinterSettings オブジェクトを返します。 これにより、指定された名前のプリンターの選択、ページ範囲の設定、コピーとコレーションの制御、そしてジョブを送信する前に両面モードを設定できます。

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

pdf = PdfDocument.FromFile("quarterly-report.pdf")

# Access the PrintDocument object
printer_setting = pdf.GetPrintDocument()

# Select a specific printer by name
printer_setting.PrinterSettings.PrinterName = "HP LaserJet Pro"

# Print only pages 2 through 4
printer_setting.PrinterSettings.FromPage = 2
printer_setting.PrinterSettings.ToPage = 4

# Print 2 collated copies
printer_setting.PrinterSettings.Copies = 2
printer_setting.PrinterSettings.Collate = True

# Execute the print job
printer_setting.Print()
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

pdf = PdfDocument.FromFile("quarterly-report.pdf")

# Access the PrintDocument object
printer_setting = pdf.GetPrintDocument()

# Select a specific printer by name
printer_setting.PrinterSettings.PrinterName = "HP LaserJet Pro"

# Print only pages 2 through 4
printer_setting.PrinterSettings.FromPage = 2
printer_setting.PrinterSettings.ToPage = 4

# Print 2 collated copies
printer_setting.PrinterSettings.Copies = 2
printer_setting.PrinterSettings.Collate = True

# Execute the print job
printer_setting.Print()
PYTHON

PrinterSettings.PrinterName プロパティは、OSのプリンター一覧に表示されるプリンターの表示名を受け取ります。Windowsでは、これは"デバイスとプリンター"に表示される名前と一致します。 Linuxでは、CUPSプリンター名に対応します。 無効なプリンター名を設定すると、実行時に印刷ジョブが失敗するので、ユーザー向けの印刷ダイアログを構築する際は、インストール済みのプリンターリストに対して名前を検証します。

[System.Drawing.Printing.PrinterSettings]::InstalledPrintersを使用するか、Pythonのpywin32モジュールであるwin32printを使用して、プログラムからプリンターを列挙してください。

ページの選択とコピーの管理

FromPage および ToPage プロパティは、ページ範囲を包括的に定義します。 ページ番号は1から開始されます。ToPage = 0(デフォルト)を設定すると、すべてのページが印刷されます。 Copies プロパティは整数を受け付けます; Collate = Trueと組み合わせることで、プリンターは次の印刷を開始する前にドキュメントの完全なセットを組み立てます。これは、複数ページのレポートにおいて正しい動作です。

複数のPDFのバッチ印刷

ドキュメントのキューを印刷するワークフローでは、ファイルリストをループ処理し、各ファイルに対して Print() を呼び出します:

from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

def batch_print(file_paths):
    for path in file_paths:
        try:
            pdf = PdfDocument.FromFile(path)
            pdf.Print()
        except Exception as e:
            print(f"Failed to print {path}: {e}")

batch_print(["invoice_001.pdf", "invoice_002.pdf", "shipping_label.pdf"])
from ironpdf import *

License.LicenseKey = "YOUR-LICENSE-KEY"

def batch_print(file_paths):
    for path in file_paths:
        try:
            pdf = PdfDocument.FromFile(path)
            pdf.Print()
        except Exception as e:
            print(f"Failed to print {path}: {e}")

batch_print(["invoice_001.pdf", "invoice_002.pdf", "shipping_label.pdf"])
PYTHON

高ボリュームのバッチジョブの場合、各ジョブのスプール中にメインスレッドをブロックしないために非同期印刷を検討してください。


Python PDF印刷の次のステップは何ですか?

このガイドでは、IronPDF for Pythonにおける2つの主要な印刷パターン、すなわち pdf.Print() を使用したデフォルトプリンター出力と、pdf.GetPrintDocument() を使用したカスタム設定出力について解説しました。 この2つのアプローチは、プラットフォーム固有のコードなしでWindows、Linux、macOS上で動作します。

これらのパターンを本番アプリケーションで拡張するには、次の点を考慮してください。

  • 印刷前にPDFフォームを記入し、テンプレートから完成したドキュメントを作成する
  • 印刷に先立ち、透かしデジタル署名を追加する
  • ウェブテンプレートからの動的レポート印刷用にHTMLをPDFに変換する
  • 印刷したドキュメントからテキストを抽出し、監査ログとして記録する

Start with a free trial license to test printing in your environment. 本番環境での展開向けのライセンスオプションは、$999から利用可能です。

このガイドで使用された完全なソースコードはこちらからダウンロードできます。

よくある質問

PythonでPDFファイルを印刷する最も速い方法は何ですか?

最速の方法はIronPDFのPrint()メソッドです。pip install ironpdfでインストールし、PdfDocument.FromFile('yourfile.pdf')でPDFをロードし、pdf.Print()を呼び出して、デフォルトのページ設定で即座にデフォルトプリンタに送信します。

PythonでのPDF印刷時に特定のプリンタを選択する方法は?

GetPrintDocument()を使用してPrintDocumentオブジェクトにアクセスし、printer_setting.PrinterSettings.PrinterNameをOSのプリンタリストに表示されるターゲットプリンタの名前に設定します。Windowsではデバイスとプリンタの名前と一致し、LinuxではCUPSプリンタ名です。

Pythonで特定のPDFのページのみを印刷するには?

pdf.GetPrintDocument()を呼び出してPrintDocumentオブジェクトを取得し、printer_setting.PrinterSettings.FromPageprinter_setting.PrinterSettings.ToPageに初めと終わりのページ番号(1ベース)を設定します。その設定でprinter_setting.Print()を実行します。

IronPDF for PythonはLinuxとmacOSで動作しますか?

はい。IronPDF for PythonはWindows、Linux、macOSで動作します。同じPythonコードがプラットフォーム固有の修正なしで動作します。Linuxではプリンタ選択にCUPSプリンタ名を使用します。インストールには全プラットフォームでPython 3.6以降が必要です。

IronPDFの印刷機能を使用するにはライセンスキーが必要ですか?

プロダクションで使用するにはライセンスキーが必要です。他のIronPDF呼び出しの前にLicense.LicenseKey = 'YOUR-LICENSE-KEY'を設定します。開発中はキーなしでライブラリが動作しますが、出力ドキュメントにはトライアルウォーターマークが入ります。評価用の無料トライアルライセンスが利用可能です。

Pythonで複数のPDFファイルを一括印刷するには?

ファイルパスのリストをループ処理し、各ファイルにPdfDocument.FromFile(path)pdf.Print()を呼び出します。各反復をtry-exceptブロックでラップし、全バッチを停止せずにファイルごとのエラーをキャッチします。高ボリュームのジョブには、メインスレッドのブロックを避けるために非同期実行を検討してください。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
バージョン: 2026.5 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか?
サンプルを実行するHTML が PDF に変換されるのを確認します。