散在する画像のコレクションを単一の検索可能なPDFに変換することは、レポートツール、請求書ジェネレーター、アーカイブシステムで頻繁に求められる要件です。Aspose.PDF for Python via .NETは、Python アプリケーションでこの変換を高速かつ信頼性の高いものにする強力な SDK です。このガイドでは、SDK のインストール、Python Imaging Library を使用した画像の読み込み、ページ単位での PDF の構築、圧縮設定の調整、そして最終的な保存までを、明確なコード例とともに順を追って説明します。
開始する前に: 前提条件とインストール
このチュートリアルを実行するには、次のものが必要です:
- 開発マシンに Python 3.8 以上がインストールされていること。
- お好みの IDE またはエディタ (VS Code、PyCharm など)。
- SDK パッケージをダウンロードするためのインターネット接続。
pip を使用して Aspose.PDF SDK と Pillow ライブラリ(事実上の Python Imaging Library)をインストールします:
pip install aspose-pdf pillow
公式リリースページから SDK を手動でダウンロードすることもできます: Aspose.PDF for Python via .NET Download。インストール後、スクリプトで必要な名前空間をインポートします。
環境の準備ができたので、実装に取り掛かりましょう。
Pythonで画像からPDFを生成する: ステップバイステップのウォークスルー
ステップ 1: ソース画像を読み込む
まず、Pillow を使用して各画像ファイルを開き、リストに保持します。これにより、PDF ビルダー用の画像データが準備されます。
from PIL import Image
import os
image_folder = "input_images"
image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder)
if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]
images = [Image.open(p) for p in image_paths]
ステップ 2: 新しい PDF ドキュメントを作成する
ページを保持する Aspose.PDF Document オブジェクトをインスタンス化します。
import aspose.pdf as ap
pdf_doc = ap.Document()
Document クラスの詳細については、API リファレンスをご覧ください。
ステップ 3: 各画像を別々のページとして追加
ロードされた画像をループ処理し、ページを作成して画像を埋め込みます。SDKは画像を自動的にスケーリングしてページサイズに合わせます。
for img in images:
page = pdf_doc.pages.add()
# Convert Pillow image to a byte stream compatible with Aspose.PDF
with io.BytesIO() as img_stream:
img.save(img_stream, format='PNG')
img_stream.seek(0)
page.resources.images.add(ap.Image(img_stream))
# Fit the image to the page dimensions
page.page_info.width = img.width
page.page_info.height = img.height
ステップ 4: 圧縮オプションの設定
画像圧縮レベルを調整して、品質を犠牲にせずに最終的な PDF のサイズを削減します。
# Set JPEG compression for all images (if using JPEG format)
for img_res in pdf_doc.resources.images:
img_res.compression = ap.ImageCompression.JPEG
img_res.jpeg_quality = 80 # Quality range: 0‑100
ステップ 5: PDF ファイルを保存
最後に、組み立てたドキュメントをディスクに書き込みます。
output_path = "output/result.pdf"
pdf_doc.save(output_path)
print(f"PDF generated successfully at {output_path}")
これらの手順に従うことで、Python で画像から PDF を生成するという完全に機能するワークフローが得られます。
Python で画像コレクションから PDF を作成 - 完全なコード例
次のスクリプトは、すべてのパーツを 1 つの実行可能なプログラムにまとめます。
import os
import io
from PIL import Image
import aspose.pdf as ap
# -------------------- Configuration --------------------
image_folder = "input_images" # Folder containing source images
output_pdf = "output/result.pdf" # Destination PDF file
jpeg_quality = 80 # Compression quality (0‑100)
# -------------------- Load Images --------------------
image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder)
if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]
images = [Image.open(p) for p in image_paths]
# -------------------- Create PDF Document --------------------
pdf_doc = ap.Document()
for img in images:
page = pdf_doc.pages.add()
with io.BytesIO() as img_stream:
img.save(img_stream, format='PNG')
img_stream.seek(0)
pdf_image = page.resources.images.add(ap.Image(img_stream))
page.page_info.width = img.width
page.page_info.height = img.height
# Apply compression if the original is JPEG
if img.format == 'JPEG':
pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = jpeg_quality
# -------------------- Save PDF --------------------
pdf_doc.save(output_pdf)
print(f"PDF generated successfully at {output_pdf}")
注: このコード例はコア機能を示しています。プロジェクトで使用する前に、ファイルパス(
input_images、output/result.pdf)を更新し、すべての必須依存関係が正しくインストールされていることを確認し、開発環境で徹底的にテストしてください。問題が発生した場合は、公式ドキュメントをご参照いただくか、サポートチームにお問い合わせください。
高度な PDF 生成設定: オプションと構成
基本的なワークフローを超えて、Aspose.PDF は出力を微調整するためのいくつかのプロパティを提供します。
画像圧縮レベル
品質とファイルサイズのトレードオフを制御します。
pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = 70 # Lower value = smaller file, lower quality
ページサイズと余白
均一なレイアウトが必要な場合は、カスタムページサイズを設定してください。
page.page_info.width = 595 # A4 width in points
page.page_info.height = 842 # A4 height in points
page.page_info.margin = ap.MarginInfo(10, 10, 10, 10)
解像度 (DPI)
高い DPI は、より鮮明な画像を提供しますが、PDF のサイズが大きくなります。
pdf_doc.page_info.dpi = 300
構成可能なプロパティの完全なリストについては、API リファレンスをご参照ください。
結論
今、Pythonで画像からPDFを生成するための完全なプログラム的ソリューションが手に入ります。 Aspose.PDF for Python via .NET を使用します。 SDKは画像の読み込み、ページ作成、圧縮、保存を数行のコードで処理し、低レベルのPDF操作ではなくビジネスロジックに集中できるようにします。 本番環境に移行する際は、適切なライセンスを取得することを忘れないでください。詳細はpricing pageにあり、評価用にtemporary licenseで開始できます。 コーディングを楽しんで、画像コレクションを洗練されたPDFに変換するシンプルさを体験してください!
よくある質問
PythonでAspose.PDFを使用して画像からPDFを生成するにはどうすればよいですか?
Aspose.PDF SDKを使用してDocumentを作成し、Pillowで読み込んだ各画像に対してページを追加し、必要に応じて圧縮を設定し、save()を呼び出してPDFを書き出します。完全な例は上記に含まれています。PDF生成でサポートされている画像フォーマットは何ですか?
SDKはPNG、JPG、JPEG、BMP、GIF、およびTIFF を直接受け付けます。Pillow はサポートされていないフォーマットをこれらのいずれかに変換してから PDF に追加することもできます。商用利用にライセンスは必要ですか?
はい。製品の本番展開のために、一時ライセンスページから一時評価ライセンスを取得し、価格ページでフルライセンスを購入してください。PDFページサイズと解像度を調整できますか?
もちろんです。page.page_info.width、page.page_info.height、およびpdf_doc.page_info.dpiを使用して、寸法と DPI を制御できます。構成 / オプションセクションに示されています。
