Spaces:
Paused
Paused
File size: 5,095 Bytes
ae4e5fc efd39ff ae4e5fc efd39ff ae4e5fc efd39ff ae4e5fc efd39ff |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
---
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生成のために最適化されています。* |