様々な形式の画像をPDFに変換するPythonライブラリ
Project description
Image to PDF Converter (pdfforge)
様々な形式の画像を高品質なPDFに変換するPythonライブラリです。バッチ変換やメタデータ付与、コマンドライン操作、設定ファイルによるカスタマイズなど、実用的な機能を多数搭載しています。
特徴
- 複数の画像を1つのPDFに結合
- 様々な画像形式に対応(PNG, JPEG, BMP, GIF, TIFF, WebP, HEIC)
- 画像の前処理機能
- リサイズ
- 回転
- フィルター適用(ぼかし、シャープ化、エッジ検出など)
- 色空間変換
- 進捗表示
- エラーハンドリング
- 設定ファイルによるカスタマイズ
- コマンドラインインターフェース
インストール
pip install pdfforge
基本的な使い方
コマンドラインから
# 基本的な使用方法
pdfforge input/*.jpg output.pdf
# 画像のリサイズを指定
pdfforge input/*.jpg output.pdf --width 800 --height 600
# 画像の回転を指定
pdfforge input/*.jpg output.pdf --rotate 90
# フィルターを適用
pdfforge input/*.jpg output.pdf --filter blur
# 複数のオプションを組み合わせ
pdfforge input/*.jpg output.pdf --width 800 --rotate 90 --filter sharpen
Pythonコードから
from pdfforge import ImageToPDF
# 基本的な使用方法
converter = ImageToPDF()
converter.convert("input/*.jpg", "output.pdf")
# 画像のリサイズを指定
converter = ImageToPDF(width=800, height=600)
converter.convert("input/*.jpg", "output.pdf")
# 画像の回転を指定
converter = ImageToPDF(rotate=90)
converter.convert("input/*.jpg", "output.pdf")
# フィルターを適用
from PIL import ImageFilter
converter = ImageToPDF(filter=ImageFilter.BLUR)
converter.convert("input/*.jpg", "output.pdf")
# 複数のオプションを組み合わせ
converter = ImageToPDF(
width=800,
height=600,
rotate=90,
filter=ImageFilter.SHARPEN
)
converter.convert("input/*.jpg", "output.pdf")
高度な使い方
設定ファイルの使用
~/.pdfforge/config.jsonに設定ファイルを作成することで、デフォルトの設定をカスタマイズできます:
{
"width": 800,
"height": 600,
"rotate": 0,
"filter": "none",
"output_format": "PDF",
"compression_quality": 85
}
エラーハンドリング
from pdfforge import ImageToPDF, ConversionError
try:
converter = ImageToPDF()
converter.convert("input/*.jpg", "output.pdf")
except ConversionError as e:
print(f"変換エラー: {e}")
進捗表示のカスタマイズ
from pdfforge import ImageToPDF
from tqdm import tqdm
converter = ImageToPDF(progress_bar=tqdm)
converter.convert("input/*.jpg", "output.pdf")
サポートされている画像形式
- PNG
- JPEG
- BMP
- GIF
- TIFF
- WebP
- HEIC
サポートされているフィルター
- ぼかし(Blur)
- シャープ化(Sharpen)
- エッジ検出(Edge Detection)
- 輪郭検出(Contour)
- エンボス(Emboss)
- スムージング(Smooth)
ライセンス
MITライセンスの下で公開されています。詳細はLICENSEファイルを参照してください。
貢献
- このリポジトリをフォーク
- 新しいブランチを作成 (
git checkout -b feature/amazing-feature) - 変更をコミット (
git commit -m 'Add some amazing feature') - ブランチにプッシュ (
git push origin feature/amazing-feature) - プルリクエストを作成
作者
- tikisan - 初期開発者
謝辞
注意事項
- 大量の画像を処理する場合は、メモリ使用量に注意してください
- HEIC形式の画像を処理するには、追加のライブラリが必要な場合があります
- 一部の画像形式は、Pillowのインストール時に追加の依存関係が必要な場合があります
トラブルシューティング
一般的な問題
-
メモリエラー
- 画像のサイズを小さくする
- バッチ処理を使用する
- システムのメモリを増やす
-
画像形式のサポート
- Pillowが正しくインストールされているか確認
- 必要な追加ライブラリをインストール
-
パフォーマンスの問題
- 画像の前処理を最適化
- マルチスレッド処理を検討
- バッチサイズを調整
よくある質問
-
Q: 大量の画像を処理するには? A: バッチ処理を使用し、適切なバッチサイズを設定してください。
-
Q: 特定の画像形式がサポートされていない場合は? A: Pillowのドキュメントを確認し、必要な追加ライブラリをインストールしてください。
-
Q: メモリ使用量を最適化するには? A: 画像のサイズを小さくし、バッチ処理を使用してください。
開発者向け情報
テスト
# すべてのテストを実行
pytest
# 特定のテストを実行
pytest tests/test_core.py
# カバレッジレポートを生成
pytest --cov=pdfforge tests/
コードスタイル
このプロジェクトはPEP 8に従っています。
ドキュメント
# ドキュメントを生成
cd docs
make html
更新履歴
0.1.0 (2024-03-XX)
- 初期リリース
- 基本的な画像からPDFへの変換機能
- 画像の前処理機能
- コマンドラインインターフェース
- 設定ファイルサポート
ロードマップ
- マルチスレッド処理のサポート
- より多くの画像形式のサポート
- PDFの暗号化機能
- 画像の自動最適化
- バッチ処理の改善
- より詳細な進捗表示
- エラーログの強化
- ユニットテストの追加
- ドキュメントの拡充
- パフォーマンスの最適化
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pdfforge-1.0.0.tar.gz.
File metadata
- Download URL: pdfforge-1.0.0.tar.gz
- Upload date:
- Size: 17.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7bb6cbb48be6a7115b00da937200c128dc88b95e6babdb0159583fa59043793d
|
|
| MD5 |
a5eeb37ce8032ab1e3c2421c6e929771
|
|
| BLAKE2b-256 |
25a22bfe847ea9e68e6857fba6a8506ec124f2e6c9d6a74097ece090da272e9b
|
File details
Details for the file pdfforge-1.0.0-py3-none-any.whl.
File metadata
- Download URL: pdfforge-1.0.0-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2225c6d478a996f6e61913669a87f91248978a2ab1df97f257a60e7d85a364a5
|
|
| MD5 |
eaddf74e164d2015bbc80a112e4eb28c
|
|
| BLAKE2b-256 |
34e048923800a0a517743c5a9214123373ca302f933bd6e75a7f5f8e10ee331b
|