~/utility/web-printer
Universal Web Printer — URL・HTMLをPDF/画像に変換
スマートスクロールスティッチ、要素抽出、PDF暗号化、透かし機能を備え、あらゆるURLやHTMLをPDF、PNG、JPEG、WebPに変換します。
メディア
TypeScriptPlaywrightPDF-libSharp
グローバル
カテゴリutility / メディア
言語TypeScript
スタックTypeScript, Playwright, PDF-lib, Sharp
マーケットグローバル
出力クリーンでRAG対応のJSON
主な機能
マルチフォーマット出力 — PDF、PNG、JPEG、WebP
複数の表示モード — ビューポート、フルページ、CSSセレクタ、リーダビリティ
正確なフルページキャプチャのためのスマートスクロールスティッチ
CSSセレクタによる要素レベルの抽出
ページ操作 — 要素の削除、ボタンのクリック、CSSの注入、固定ヘッダーの非表示
PDF暗号化(RC4 128ビット)と透かし
複数ページ文書のPDF結合
カスタムビューポートとスケールファクターの設定
活用例
- Webダッシュボードからの自動レポート生成
- Webサイトのアーカイブとドキュメント化
- ビジュアルリグレッションテスト用スナップショット
- カタログ向けのEC商品ページスクリーンショット
- 法令順守 — Webコンテンツを証拠として保存
- WebアプリケーションからのPDF生成
入力パラメータ
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
sourceType | string | 任意 | url(デフォルト)またはhtml — startUrlsまたはhtmlContentのどちらをレンダリングするか |
startUrls | array | 任意 | レンダリング対象のURL |
htmlContent | string | 任意 | レンダリングする生のHTML |
outputFormat | string | 任意 | pdf、png、jpeg、webpのいずれか(デフォルト:pdf) |
viewMode | string | 任意 | viewport、fullPage、selector、readabilityのいずれか |
targetSelector | string | 任意 | 要素レベルキャプチャ用のCSSセレクタ |
viewportWidth | number | 任意 | ブラウザのビューポート幅(デフォルト:1280) |
viewportHeight | number | 任意 | ブラウザのビューポート高さ(デフォルト:720) |
scaleFactor | number | 任意 | スクリーンショットをより鮮明にするデバイススケールファクター(デフォルト:2) |
removeSelectors | array | 任意 | キャプチャ前に削除する要素のCSSセレクタ |
clickSelectors | array | 任意 | キャプチャ前にクリックする要素のCSSセレクタ(例:「もっと見る」ボタンなど) |
hideFixedElements | boolean | 任意 | キャプチャ中、ナビバーなどの固定/スティッキー要素を非表示にする(デフォルト:true) |
customCss | string | 任意 | レンダリング前に注入するカスタムCSS |
pdfPassword | string | 任意 | RC4 128ビット暗号化でPDFを暗号化 |
mergePdfs | boolean | 任意 | 生成されたすべてのPDFを1つのファイルに結合する |
watermark | object | 任意 | 出力ファイルに追加するテキストまたは画像の透かし |
Output Example
このツールは選択したフォーマット(PDF、PNG、JPEG、WebP)でファイルを生成し、Apifyデータセットに保存します。各出力にはメタデータが含まれます。
1{
2 "url": "https://example.com",
3 "sourceType": "url",
4 "outputFormat": "pdf",
5 "viewMode": "full-page",
6 "fileName": "example_com_2025-12-11T16-06-29-849Z.pdf",
7 "fileUrl": "https://api.apify.com/v2/key-value-stores/abc123DEF456ghi78/records/example_com_2025-12-11T16-06-29-849Z.pdf",
8 "fileSize": 41613,
9 "pageCount": 1,
10 "capturedAt": "2025-12-11T16:06:29.852Z"
11}
よくある質問
ページ内の特定の要素だけをキャプチャできますか?
はい、targetSelectorパラメータにCSSセレクタを指定すれば、特定の要素だけをキャプチャできます。例えば'#main-content'を指定すれば、メインコンテンツ領域のみをキャプチャできます。
スマートスクロールスティッチはどのように機能しますか?
フルページキャプチャの場合、このツールはページを段階的にスクロールしながら各ビューポート分のスライスをキャプチャし、それらを結合します。これにより、遅延読み込みされるコンテンツやアニメーションも確実にキャプチャされます。
キャプチャ前にCookieバナーや広告を削除できますか?
はい、removeSelectorsで削除したい要素のCSSセレクタを指定してください。hideFixedElementsを使えば、固定ヘッダーやフローティング要素を非表示にすることもできます。