HTML2PDF_API / README.md
tomo2chin2's picture
Upload README.md
efd39ff verified
metadata
title: HTML to PDF Converter
emoji: 📄
colorFrom: blue
colorTo: purple
sdk: docker
app_file: app.py
app_port: 7860
pinned: false
short_description: Convert HTML content to A4 PDF with Japanese font support
python_version: 3.1
fullWidth: true
header: default

HTML to PDF Converter

日本語対応のHTML→PDF変換APIです。複雑なレイアウトやWebフォントを含むHTMLコンテンツを、正確にA4サイズのPDFに変換します。

🌟 主な機能

  • 日本語完全対応: Noto Sans JP、Noto Serif JPフォントをサポート
  • A4サイズ出力: 210mm × 297mm の正確なサイズ
  • 複雑レイアウト対応: CSSグリッド、フレックスボックス、2カラムレイアウト
  • 外部リソース対応: Google Fonts、FontAwesome、外部CSSの読み込み
  • 印刷メディア最適化: @media print スタイルの適用
  • ページ区切り制御: 明示的なページブレーク機能

🚀 使い方

WebインターフェースAPI

  1. /docs にアクセスしてSwagger UIを使用
  2. /convert エンドポイントにHTMLコンテンツをPOST
  3. 返されたURLからPDFファイルをダウンロード

cURLでの使用例

curl -X POST "https://your-space-url/convert" \
     -H "Content-Type: application/json" \
     -d '{"html_content": "<html><body><h1>テスト</h1></body></html>"}'

ページ区切りの指定

<div class="page">
    <!-- 1ページ目の内容 -->
</div>
<div class="page">
    <!-- 2ページ目の内容 -->
</div>

📋 サポートする機能

  • HTMLタグ: 全てのHTML5タグ
  • CSSスタイル: CSS3全般、フレックスボックス、グリッド
  • フォント: Google Fonts、システムフォント、Webフォント
  • アイコン: FontAwesome、その他アイコンフォント
  • 画像: PNG、JPG、SVG(Base64埋め込み推奨)
  • テーブル: 複雑なテーブルレイアウト
  • レスポンシブ: 印刷メディアクエリ対応

⚡ 技術仕様

  • PDF生成エンジン: Playwright (Chromium)
  • フォントサポート: Noto Sans JP、Noto Serif JP
  • ページサイズ: A4 (210mm × 297mm)
  • マージン: 15mm (上下左右)
  • 解像度: 高品質印刷対応
  • 文字エンコーディング: UTF-8

🔧 API仕様

エンドポイント

  • POST /convert: HTMLをPDFに変換してHugging Faceリポジトリに保存
  • GET /download/{filename}: PDFファイルをダウンロード(HFリポジトリへリダイレクト)
  • GET /docs: Swagger UI APIドキュメント
  • GET /health: ヘルスチェック
  • GET /files: Hugging Faceリポジトリ内のPDFファイル一覧

入力フォーマット

完全なHTMLドキュメントまたはHTMLフラグメントを受け付けます。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>サンプル文書</title>
    <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap" rel="stylesheet">
    <style>
        body { font-family: 'Noto Sans JP', sans-serif; }
        .page { page-break-after: always; }
    </style>
</head>
<body>
    <div class="page">
        <h1>ページ1</h1>
        <p>内容...</p>
    </div>
    <div class="page">
        <h1>ページ2</h1>
        <p>内容...</p>
    </div>
</body>
</html>

出力フォーマット

  • ファイル形式: PDF
  • ファイル名: document_YYYYMMDD_HHMMSS_<UUID>.pdf
  • 保存先: Hugging Face データセットリポジトリ(環境変数で設定)
  • ダウンロード: Hugging Face上の直接URLから即座にダウンロード可能

🎯 使用例

医療レポート

歯科医学論文のサマリーや医療レポートの生成

ビジネス文書

提案書、報告書、プレゼンテーション資料

学術論文

研究レポート、学会発表資料

技術文書

API仕様書、開発ドキュメント

🛠️ 開発者向け情報

このSpaceは以下の技術で構築されています:

  • FastAPI: RESTful API フレームワーク
  • Playwright: ヘッドレスブラウザでのPDF生成
  • Chromium: レンダリングエンジン
  • Uvicorn: ASGI サーバー
  • Python: バックエンド処理

システム要件

  • Python 3.10+
  • Chromium browser dependencies
  • 日本語フォントパッケージ

環境変数

デプロイ時に以下の環境変数を設定してください:

  • HF_DATASET_REPO_ID: 保存先のHugging Faceデータセットリポジトリ名(例: username/pdf-storage
  • HF_TOKEN: Hugging Face API トークン(書き込み権限が必要)

📝 ライセンス

このプロジェクトはMITライセンスの下で公開されています。

🤝 貢献

バグレポートや機能要求は、GitHubのIssuesページでお願いします。


このSpaceは、高品質な日本語PDF生成のために最適化されています。