Spaces:
Sleeping
Sleeping
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
/docs
にアクセスしてSwagger UIを使用/convert
エンドポイントにHTMLコンテンツをPOST- 返された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生成のために最適化されています。