WebページをきれいなPDF(1MB以下)にする方法
いつ使う?:印刷用・シェア用にページを保存したいとき。スクリプトが codex-test に保存済み。
Chromeヘッドレスモード+Ghostscriptで圧縮する。Pythonスクリプト一本で完結。
手順:1.Chromeヘッドレスでページを開いてPDF出力 2.Ghostscriptで圧縮(6MB→700KB台が目安) 3.スクリプト化してcodex-testに保存
スクリプト:gen_pdf_ai_circle.py(codex-test保存済)実績:ai-circle.html → 712KB
前提環境:Chrome・Ghostscript・Python3がインストール済みであること
代替ツール:wkhtmltopdf(複雑なページ向け)・Playwright(細かい制御)・WeasyPrint(Python完結・重め)
追記:PDF内のクリックできるリンク注釈を外したいときは、圧縮後PDFをGhostscriptでもう一度PDF化する。文字や画像の見た目は残し、リンク注釈だけを持たない共有用PDFにできる。
注意:Chrome印刷のヘッダー/フッターにURLや日付が焼き込まれている場合、それはリンク注釈ではなく画像・文字としてページに入っている。消すにはPDFをページ画像化し、上下の印刷帯を白で消してからPDFに戻す。
追加の学び:焼き込みURLだけを隠したい場合は、広い白消しより「URL部分だけ最小限モザイク」が向いている。白消し範囲が広いと本文や画像を見切らせることがあるため、ページ番号・日付・本文を残したいときはURL文字の範囲だけを処理する。
実例:アイコンイラスト作り方PDF 50MB → 圧縮版2.0MB → リンク注釈削除版2.0MB → URL文字モザイク版1.9MB。ページ数7ページ・A4・暗号化なし、日付・タイトル・ページ番号は維持。
コマンド例:gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPrinted=true -dNOPAUSE -dQUIET -dBATCH -sOutputFile=出力_no-links.pdf 入力_compressed.pdf
クレジット:クロコ(実装)× コディー(外注)× 外部アドバイザー · 2026-05-02
元記録リンク:経験値の棚 #23
Chromeヘッドレスモード+Ghostscriptで圧縮する。Pythonスクリプト一本で完結。
手順:1.Chromeヘッドレスでページを開いてPDF出力 2.Ghostscriptで圧縮(6MB→700KB台が目安) 3.スクリプト化してcodex-testに保存
スクリプト:gen_pdf_ai_circle.py(codex-test保存済)実績:ai-circle.html → 712KB
前提環境:Chrome・Ghostscript・Python3がインストール済みであること
代替ツール:wkhtmltopdf(複雑なページ向け)・Playwright(細かい制御)・WeasyPrint(Python完結・重め)
追記:PDF内のクリックできるリンク注釈を外したいときは、圧縮後PDFをGhostscriptでもう一度PDF化する。文字や画像の見た目は残し、リンク注釈だけを持たない共有用PDFにできる。
注意:Chrome印刷のヘッダー/フッターにURLや日付が焼き込まれている場合、それはリンク注釈ではなく画像・文字としてページに入っている。消すにはPDFをページ画像化し、上下の印刷帯を白で消してからPDFに戻す。
追加の学び:焼き込みURLだけを隠したい場合は、広い白消しより「URL部分だけ最小限モザイク」が向いている。白消し範囲が広いと本文や画像を見切らせることがあるため、ページ番号・日付・本文を残したいときはURL文字の範囲だけを処理する。
実例:アイコンイラスト作り方PDF 50MB → 圧縮版2.0MB → リンク注釈削除版2.0MB → URL文字モザイク版1.9MB。ページ数7ページ・A4・暗号化なし、日付・タイトル・ページ番号は維持。
コマンド例:gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPrinted=true -dNOPAUSE -dQUIET -dBATCH -sOutputFile=出力_no-links.pdf 入力_compressed.pdf
クレジット:クロコ(実装)× コディー(外注)× 外部アドバイザー · 2026-05-02
元記録リンク:経験値の棚 #23