convert-pdf-to-png について
convert-pdf-to-pngは、PDFの各ページをPNG画像に変換するスキルです。利用可能なシステムツールを先に試し、JavaScriptの代替手段も備えています。ページ、倍率、出力先、パスワードを指定できます。
主な機能
- 01PDFページをPNGに変換
- 02システムバックエンドを先に試しJSへ切り替え
- 03ページと出力先を指定
- 04レンダリング倍率を設定
- 05パスワード保護されたPDFに対応
活用シーン
- 01指定したPDFページの画像を作成
- 02システムツールで複雑なPDF図版を描画
- 03文字を読みやすくするため解像度を上げる
- 04パスワードを使って暗号化PDFを変換
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ yrom/ arxiv-paper-translator --skill convert-pdf-to-pngインストール後、Claude Code で/convert-pdf-to-pngを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/.gitignoreconvert-pdf-to-png.mjspackage.json詳細
PDF を PNG に変換
PDF ファイルの各ページを PNG 画像に変換します。
バックエンドの選択
まずシステムツールを試してください(複雑な PDF のレンダリングに優れています)。その後、JS スクリプトにフォールバックします。
試用できるバックエンド:
- magick(ImageMagick)- Linux/MacOS
- mutool(MuPDF)- Linux/MacOS
- pdftoppm(Poppler)- Linux/MacOS
- sips(Scriptable Image Processing System)- MacOS のみ
- JS フォールバック(pdfjs)-
<CURRENT_SKILL_DIR>/scripts/ディレクトリ内
注意:すべてのバックエンドで、出力先ディレクトリに <pdf-name>_page_<N>.png が出力されるようにしてください。
システムバックエンドの使用例
# magick (ImageMagick) — density 144 ≈ scale 2x (72 * 2)
magick -density 144 paper.pdf -quality 90 paper_page_%d.png
# Note: magick outputs 0-based index; rename if 1-based is needed
# mutool (MuPDF) — resolution 144 ≈ scale 2x
mutool convert -o paper_page_%d.png -O resolution=144 paper.pdf
# pdftoppm (Poppler) — -r sets DPI
pdftoppm -png -r 144 paper.pdf paper_page
# Outputs paper_page-1.png, paper_page-2.png, etc.
# sips (macOS only) — convert a single-page PDF
sips -s format png paper.pdf --out paper_page_1.png
バックエンドによって、ファイル名のパターン(0 始まりか 1 始まりか、桁数の埋め方、区切り文字)が多少異なります。 後続の処理で厳密な
<pdf-name>_page_<N>.png形式が必要な場合は、変換後に名前を変更してください。
JS スクリプトの前提条件
依存関係は <CURRENT_SKILL_DIR>/scripts/package.json に記載されています。初回使用時にインストールしてください:
cd skills/convert-pdf-to-png/scripts && bun install
# or npm install
JS スクリプトのクイックスタート
SCRIPT_DIR=skills/convert-pdf-to-png/scripts
# Convert all pages (default scale: 2.0x)
bun $SCRIPT_DIR/convert-pdf-to-png.mjs paper.pdf
# Specify output directory
bun $SCRIPT_DIR/convert-pdf-to-png.mjs paper.pdf --output-dir ./output
# Convert specific pages with higher resolution
bun $SCRIPT_DIR/convert-pdf-to-png.mjs paper.pdf --pages 1,3,5 --scale 3
# Encrypted PDF
bun $SCRIPT_DIR/convert-pdf-to-png.mjs protected.pdf --password "secret"
JS スクリプトの CLI オプション
| オプション | デフォルト | 説明 |
|---|---|---|
--output-dir <dir> | PDF と同じ場所 | PNG ファイルの出力ディレクトリ |
--scale <number> | 2.0 | ビューポートの拡大率(値が大きいほど品質が上がり、ファイルサイズも大きくなります) |
--pages <list> | すべて | ページ番号(1 始まり)をカンマ区切りで指定 |
--password <string> | - | 暗号化された PDF のパスワード |
出力
ファイル名は次のパターンに従います:<pdf-name>_page_<N>.png
よくある問題
| 問題 | 解決策 |
|---|---|
| 複雑な図が空白としてレンダリングされる(pdfjs) | 代わりに magick(ImageMagick)または mutool(MuPDF)を使用してください |
Cannot find module 'pdf-to-png-converter' | cd skills/convert-pdf-to-png/scripts && bun install |
| テキストの品質が低い | --scale / DPI を上げてください(3.0 / 216 を試してください) |
| 大きな PDF で OOM が発生する | すべてのページではなく、--pages で特定のページを変換してください |
| 暗号化された PDF の変換に失敗する | --password(JS)、または -p(mutool)/ -upw(pdftoppm)を指定してください |
コメント
Markdown 対応