Skip to content
プロジェクト

oomol-lab/pdf-craft has 6,493 GitHub stars and 475 forks. GitHot measured +2 stars in 24 hours. Last checked 2026-11-07 10:38 UTC. Last push 2026-11-02.

この数値の測り方

PDF craft can convert PDF files into various other formats. This project will focus on processing PDF files of scanned books.

できること

  • Edit scanned books - PDF → Markdown, with text and image assets
  • Read in an ebook reader - PDF → EPUB, with book metadata and table of contents
  • Read books in another language - Translate during conversion or translate an existing EPUB; translation-only and bilingual output modes
  • Create a translated PDF - Translate extracted text and write it back onto the source pages

計測したスター増加

24時間
+2
7日間
履歴を収集中
15日間
履歴を収集中
1か月
履歴を収集中

期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。

docs/readmes/README-ja.md

オリジナル

PDF Craft は、スキャンした書籍や論文、技術文書を扱う Python ライブラリです。スキャン PDF を編集しやすい Markdown や読書に適した EPUB に変換できます。PDF や EPUB の内容を別の言語に翻訳し、訳文のみ、または原文と訳文を併記した EPUB を作成することも、訳文を元の PDF ページに書き戻すこともできます。本文、章、目次、脚注、表、数式、画像を認識し、画像のままだったページを検索・編集・読書に使える形にします。

インストール不要。ブラウザーでそのまま変換

手元のスキャン PDF を、編集できる Markdown や読みやすい EPUB にしたい方は、PDF Craft Online · pdfcraft.ai をご利用ください。ブラウザーでファイルをアップロードして変換を開始し、完了後に結果をダウンロードできます。Python のインストールや CUDA の設定、OCR サービスの契約・API キーの設定は不要です。

PDF Craft Online は、このオープンソースプロジェクトの公式オンラインサービスです。ファイルを変換するならオンライン版を、自作アプリへの組み込みや手元のマシンでの OCR 実行には下記の Python ライブラリをお使いください。

PDF をアップロードして、オンラインで変換する →

PDF Craft オンライン版の変換画面(英語)。クリックして PDF をアップロード

変換例

Markdown:編集、検索、後続のコンテンツ処理に。

PDF から Markdown への変換例(英語)

EPUB:電子書籍リーダーでの読書に。

PDF から EPUB への変換例(英語)

結果はスキャン品質、レイアウト、OCR モデルによって変わります。大量のファイルを処理する前に、代表的な文書で出力を確認してください。

自分の PDF でも変換結果を確認してみませんか?PDF をアップロードして Markdown や EPUB に変換する →

できること

目的 機能
スキャンした本を編集する PDF → Markdown。テキストと画像ファイルを出力
電子書籍リーダーで読む PDF → EPUB。書籍情報や目次に対応
別の言語で本を読む 変換時の翻訳、既存 EPUB の翻訳。訳文のみ・対訳の出力に対応
翻訳済み PDF を作る 抽出した文字を翻訳し、元のページに書き戻す
アプリに組み込む Python API と、後から再利用できる抽出結果ファイル

使い方を選ぶ

方法 対象 必要なもの
オンライン変換 ファイルをアップロードして Markdown や EPUB をダウンロード ブラウザーのみ。Python のインストールや OCR サービスの設定は不要
Python + リモート OCR ローカルでモデルを実行しない開発者 Python、Poppler、対応サービスの URL と認証情報
Python + ローカル OCR NVIDIA GPU を使う開発者 Python、Poppler、CUDA、十分な VRAM、モデルファイル

リモート OCR は設定したサービスにページを送信し、ローカルの CUDA は不要です。ローカル OCR は手元のマシンで動きますが、翻訳や目次解析にリモート LLM を使う場合、その内容はサービスに送信されます。

Python クイックスタート

リモート OCR で PDF を Markdown に変換します。Python 3.11–3.13、Poppler、利用可能な DeepSeek OCR 対応サービスの設定を用意してください。インストールガイドに設定手順があります。このページからリンクする詳細ガイドは英語です。

ファイルを変換するだけなら、開発環境や OCR サービスの準備は不要です。PDF Craft Online で、ブラウザーから PDF をアップロードできます。

1. インストール

python -m pip install pdf-craft

2. PDF を変換

スクリプトを実行するディレクトリに input.pdf を置き、URL、API キー、モデル名を置き換えて実行します。

from pdf_craft import DeepSeekOCRVendorConfig, PDFCraft, PDFOptions

craft = PDFCraft(
    pdf=PDFOptions(
        ocr=DeepSeekOCRVendorConfig(
            base_url="https://example.com/v1",
            api_key="your-api-key",
            model="deepseek-ocr",
        ),
    ),
)

craft.convert_pdf_to_markdown("input.pdf", "output.md")

https://example.com/v1 はプレースホルダーです。実際に該当 OCR モデルを提供する対応サービスを指定してください。他のモデルについては OCR 設定を参照してください。 OCR サービスをまだ用意していない場合は、PDF Craft Online でファイルを変換できます。

完了後に output.md を開きます。画像のある文書では画像などのリソースファイルも生成されます。移動・共有時には Markdown と一緒に保持してください。

3. EPUB を作成

設定済みの craft を使い、最後の行を次に置き換えます。

craft.convert_pdf_to_epub("input.pdf", "output.epub")

output.epub を EPUB リーダーで開けます。書名、著者、出力設定は PDF の変換と翻訳、実行時の問題はトラブルシューティングを参照してください。

EPUB に書誌情報を付けたい場合は、冒頭ページの OCR によるメタデータ抽出を有効にし、専用の metadata LLM を指定してください。PDF Craft は OCR の内容で裏付けられる値だけを採用します。PDF ファイルのプロパティは欠けた項目の補完にのみ使い、書籍に印刷された情報を上書きしません。

翻訳と抽出結果の再利用

本を翻訳する。 PDF から Markdown / EPUB への変換には XMLTranslator を渡せます。既存 EPUB の直接翻訳も可能です。翻訳には独立したテキスト LLM を使い、OCR と別に設定します。EPUB では原文を訳文で置換するか、訳文を追加して対訳にできます。

翻訳済み PDF を作る。 抽出・翻訳した文字を元のページに書き戻します。適切なローカルフォントも必要です。原稿と訳文に応じて出力レイアウトを確認してください。

抽出結果を保存する。 .pcex ファイルを保存すると、後のレンダリング、翻訳、別のマシンでの処理に再利用できます。設定済みの craft を使います。

craft.convert_pdf_to_markdown(
    "input.pdf",
    "output.md",
    extraction_path="book.pcex",
)

詳しくは PDF の変換と翻訳、EPUB 翻訳、.pcex 形式を参照してください。

OCR と実行環境

DeepSeek OCR、DeepSeek OCR 2、Unlimited OCR に対応し、それぞれローカル・リモート設定を提供します。リモート OCR は通常のインストールで利用できます。ローカル OCR 用の追加依存関係は次で導入します。

python -m pip install "pdf-craft[local]"

ローカル実行には対応する CUDA 版 PyTorch、十分な VRAM、モデルファイルも必要です。モデルは既定で Hugging Face からダウンロードされます。事前にダウンロードしてローカルから読み込むことも可能です。モデル別のプリセットと要件は OCR 設定を参照してください。

対応言語は処理段階によって異なります。 README の言語は文書の提供言語です。認識は OCR モデル、翻訳は翻訳器とテキスト LLM に依存します。EPUB の label_language は固定ラベルだけを選択します(zh / en)。既定値と未対応の値には英語を使い、本文や翻訳の言語は制限しません。API リファレンスを参照してください。

ドキュメント

以下の詳細ガイドは英語です。

目的 ガイド
依存関係と GPU の設定 インストール
モデル、リモートサービス、キャッシュ OCR 設定
PDF 変換、EPUB 生成、PDF への訳文出力 PDF の変換と翻訳
既存 EPUB の翻訳と対訳 EPUB 翻訳
引数、型、メソッド API リファレンス
抽出結果の保存と交換 .pcex 形式
インストールや変換の問題 トラブルシューティング

フィードバックと貢献

不具合や提案は Issues にお寄せください。変換の問題にはバージョン、OCR 設定の種類、エラーログ、公開可能な最小の再現ファイルを添えてください。認証情報や私的な内容は取り除いてください。

コード、文書、翻訳の Pull Request を歓迎します。各言語版は簡体字中国語の README を内容の基準とし、オンライン変換や翻訳機能の要点を、その言語の読者に自然に伝わる表現で説明してください。API の例は正確に保ってください。役に立ったら Star でプロジェクトを応援してください。

関連プロジェクト

Wiki Graph は、変換後の EPUB や Markdown から構造化された要約、章の構造、ナレッジグラフを生成します。

ライセンスと謝辞

PDF Craft は MIT ライセンスです。第三者の依存関係と OCR モデルにはそれぞれのライセンスが適用されます。

DeepSeek OCR, DeepSeek OCR 2, Unlimited OCR, doc-page-extractor, pyahocorasick をはじめとするオープンソースプロジェクトに感謝します。

コントリビューター

PDF Craft に貢献してくださった皆さんに感謝します。コード、ドキュメント、翻訳への貢献を歓迎します。

Star History

関連プロジェクトを探す