HTML2PDF_API / README.md
tomo2chin2's picture
Upload README.md
efd39ff verified
---
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.10
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での使用例
```bash
curl -X POST "https://your-space-url/convert" \
-H "Content-Type: application/json" \
-d '{"html_content": "<html><body><h1>テスト</h1></body></html>"}'
```
### ページ区切りの指定
```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フラグメントを受け付けます。
```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生成のために最適化されています。*