Skip to content

cbz2pdf.py

CBZ 漫画アーカイブを PDF に変換するツール。単一ファイルまたはバッチ変換に対応、クロスプラットフォーム互換。現在のバージョン v1.0

機能特徴

  • CBZ → PDF 変換 — CBZ(ZIP 圧縮画像アーカイブ)を PDF ファイルに変換
  • 単一/バッチ変換 — 単一 CBZ ファイル、またはフォルダ全体(サブディレクトリ含む)のバッチ処理に対応
  • 対話/非対話 デュアルモード — 対話モードはガイド付き設定、非対話モードはパラメータ直接指定で即実行
  • 自動依存関係インストール — 不足している Pillow 依存関係を検出し、自動インストールを案内
  • カスタム命名形式{name} {index} {date} 変数の自由な組み合わせに対応
  • 並列変換 — 複数 CBZ ファイルのマルチスレッド並列処理でバッチ変換を高速化
  • 既存ファイルスキップ — 出力 PDF が既に存在する場合は自動スキップ、重複変換しません
  • クロスプラットフォーム互換 — Windows / macOS / Linux で動作。Windows ターミナルの UTF-8 を自動検出

依存関係

依存関係用途インストール
Python 3.6+実行環境
Pillow画像読み取りと PDF 生成pip install Pillow

スクリプト起動時に自動検出します。不足している場合は案内に従ってインストールされます — 手動操作は不要です。

使用方法

スクリプトのダウンロード

CNB:

bash
wget https://cnb.cool/SDCOM/shit/-/git/raw/main/script/cbz2pdf.py

GitHub:

bash
wget https://github.com/SDCOM-0415/shit/raw/refs/heads/main/script/cbz2pdf.py

対話モード

スクリプトを直接実行し、プロンプトに従って入力:

bash
python cbz2pdf.py

処理の流れ:

  1. CBZ ファイルのパス、または CBZ を含むフォルダのパスを入力
  2. PDF 出力ディレクトリを入力
  3. カスタム命名形式を使用するか選択(デフォルトは元のファイル名を保持)
  4. 並列変換数を設定(1-8、デフォルト 4)
  5. 確認して変換開始

非対話モード

-i-o パラメータを指定すると、すべての対話プロンプトをスキップして即座に変換開始:

bash
# 単一 CBZ ファイルを変換
python cbz2pdf.py -i "/path/to/Chapter101.cbz" -o "/path/to/PDF"

# フォルダ全体をバッチ変換
python cbz2pdf.py -i "/path/to/Comics" -o "/path/to/PDF"

# 元のファイル名を保持(デフォルト動作、省略可)
python cbz2pdf.py -i "/path/to/Comics" -o "/path/to/PDF" --keep-name

# カスタム命名形式
python cbz2pdf.py -i "/path/to/Comics" -o "/path/to/PDF" --name-format "{index:03d}_{name}"

# 確認をスキップして即座に開始
python cbz2pdf.py -i "/path/to/Comics" -o "/path/to/PDF" -y

コマンドラインパラメータ

パラメータ短縮形説明
--input PATH-i入力:CBZ ファイル、または CBZ を含むフォルダ(非対話モードでは必須)
--output DIR-o出力ディレクトリ(非対話モードでは必須)
--keep-name元のファイル名を保持(デフォルト動作)
--name-format FMTカスタムファイル名形式。利用可能な変数:{name} {index} {date}
--jobs N-j並列変換数、範囲 1-8、デフォルト 4
--yes-y確認をスキップし、即座に変換開始

命名形式変数

変数説明
{name}元のファイル名(拡張子なし)Chapter101
{index}ファイル番号(1から開始)1 2 ...
{date}現在の日付20260504

形式例:

{name}.pdf              →  Chapter101.pdf
{index:03d}_{name}.pdf  →  001_Chapter101.pdf
{date}_{name}.pdf       →  20260504_Chapter101.pdf

処理の流れ

対話モード

========================================================
   CBZ → PDF 変換ツール
========================================================

【入力パス】
   CBZ ファイルパス、または CBZ を含むフォルダパスを入力
   入力パス: /path/to/Comics
   5 個の CBZ ファイルを検出(サブディレクトリ含む)

【出力ディレクトリ】
   PDF ファイルの保存先ディレクトリを入力
   出力ディレクトリ: /path/to/PDF
   ✓ 出力ディレクトリ: /path/to/PDF

【ファイル命名】
   デフォルト:元のファイル名を保持(例:Chapter101.cbz → Chapter101.pdf)
   カスタム命名形式を使用しますか? (y/N): n
   ✓ 元のファイル名を保持

【並列変換】
   現在:4 ファイル同時変換
   並列数を設定(1-8、Enter でデフォルト維持): 4
   ✓ 4 並列変換に設定

========================================================
   入力: /path/to/Comics
   ファイル数: 5 個の CBZ
   出力先: /path/to/PDF
   命名: 元のファイル名を保持
   並列: 4

   変換を開始しますか? (Y/n): Y

========================================================
   変換開始...(並列:4)
========================================================
   ✓ Chapter101.pdf (2.3 MB)
   ✓ Chapter102.pdf (1.8 MB)
   ⊙ Chapter103.pdf は既に存在します、スキップ
   ✗ Chapter104.cbz - 変換失敗:CBZ 内に画像が見つかりません

========================================================
   変換完了!
   成功:2  スキップ:1  失敗:1
   ファイル保存先:/path/to/PDF
========================================================

非対話モード

bash
python cbz2pdf.py -i "/path/to/Comics" -o "/path/to/PDF" -j 4 -y
========================================================
   CBZ → PDF 変換ツール
========================================================

   ✓ 入力: /path/to/Comics
   ✓ 出力先: /path/to/PDF
   ✓ 命名形式: {name}
   ✓ 並列変換: 4

========================================================
   変換開始...(並列:4)
========================================================
   ✓ Chapter101.pdf (2.3 MB)
   ✓ Chapter102.pdf (1.8 MB)
   変換完了!

注意事項

  • 画像形式対応:CBZ 内の JPG、PNG、WebP、GIF、BMP はすべて認識・変換可能
  • PDF 互換性:すべての画像は RGB モードに変換され、最大互換性を確保
  • PDF 解像度:デフォルト 150 DPI、鮮明さとファイルサイズのバランス
  • 並列安全性:並列変換数は 8 以内を推奨。それ以上はメモリ不足の可能性
  • スキップ機構:出力 PDF が既に存在する場合は自動スキップ、再実行しても重複変換されません
  • Windows ターミナル:スクリプトは UTF-8 エンコーディングを自動検出・設定。日本語ファイル名が正しく表示されます

プロジェクトリポジトリ

CNB: https://cnb.cool/SDCOM/shit/-/blob/main/script/cbz2pdf.py

GitHub: https://github.com/SDCOM-0415/shit/blob/main/script/cbz2pdf.py

© 作者

SDCOM

文档支持多语言