フォルダ内のMarkdown、drawio、HTMLファイルを自動的にPDFに変換し、同じフォルダ構造を保持して出力先に配置します。PDF変換、ドキュメント生成、提出用資料作成、複数ファイルの一括PDF化が必要な時に使用してください。
このスキルは、指定されたフォルダ内のドキュメントファイル(Markdown、drawio、HTML)を自動的にPDF形式に変換し、元のフォルダ構造を保持したまま出力先フォルダに配置します。
このスキルは以下のツールを使用します:
md-to-pdf: Markdown → PDF変換
npm install -g md-to-pdfdrawio: draw.io → PDF変換
brew install drawio (macOS)Google Chrome: HTML → PDF変換
入力フォルダ: <変換元のフォルダパス>
出力フォルダ: <変換先のフォルダパス>
例:
入力フォルダ: docs/01.requirement_definition/04.統合
出力フォルダ: docs/01.requirement_definition/05.提出用
このスキルが起動された時、以下の手順を実行してください:
tree -L 3 "<入力フォルダ>"
find "<入力フォルダ>" -type f \( -name "*.md" -o -name "*.drawio" -o -name "*.html" \)
必要なツールの確認:
which md-to-pdf
which drawio
which node
which npm
ls "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
不足しているツールがあればインストール:
npm install -g md-to-pdfbrew install drawiomkdir -p "<出力フォルダ>/サブフォルダ1" "<出力フォルダ>/サブフォルダ2" ...
cd "<入力フォルダ>"
md-to-pdf file1.md file2.md ... --pdf-options '{"format": "A4", "margin": {"top": "20mm", "right": "20mm", "bottom": "20mm", "left": "20mm"}}'
drawio -x "<入力フォルダ>/サブフォルダ" -o "<出力フォルダ>/サブフォルダ" -f pdf -a --crop
または個別変換:
drawio -x "<入力ファイル.drawio>" -o "<出力ファイル.pdf>" -f pdf -a --crop
オプション説明:
-x: エクスポートモード-o: 出力先-f pdf: PDF形式-a: 全ページ(全タブ)を含む--crop: 図のサイズにトリミング"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--headless \
--disable-gpu \
--print-to-pdf="<出力パス>.pdf" \
--print-to-pdf-no-header \
"file://$(pwd)/<入力パス>.html"
rm "<入力フォルダ>"/*.pdf
rm "<入力フォルダ>/サブフォルダ"/*.pdf
出力フォルダの構造を確認:
tree "<出力フォルダ>"
生成されたPDFファイル数を確認:
find "<出力フォルダ>" -type f -name "*.pdf" | wc -l
ユーザーに結果を報告:
デフォルト設定:
カスタマイズ例:
md-to-pdf file.md --pdf-options '{"format": "Letter", "margin": {"top": "10mm"}}'
デフォルト設定:
追加オプション:
--border <width>: 図の周りにボーダーを追加--scale <scale>: スケール調整--width <width>: 幅を指定原因: npmパッケージがインストールされていない
解決策:
npm install -g md-to-pdf
原因: drawioがインストールされていない
解決策:
brew install drawio
原因: Google Chromeのパスが正しくない
解決策:
ls "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
原因: -a(--all-pages)オプションが指定されていない
解決策: 必ず-aオプションを付けて変換:
drawio -x input.drawio -o output.pdf -f pdf -a
原因: サブフォルダが作成されていない
解決策: 変換前にすべてのサブフォルダを作成:
find "<入力フォルダ>" -type d | sed "s|<入力フォルダ>|<出力フォルダ>|" | xargs mkdir -p
入力: docs/01.requirement_definition/04.統合
出力: docs/01.requirement_definition/05.提出用
入力フォルダ構造:
04.統合/
├── 01.wireframe/ (90個の.drawioファイル)
├── グラフ形式の検討/
│ ├── index.html
│ └── グラフ形式の検討.md
├── 画面遷移図.drawio
├── integration_test_policy.md
└── その他.mdファイル
出力結果:
05.提出用/
├── 01.wireframe/ (90個のPDF)
├── グラフ形式の検討/
│ ├── index.pdf
│ └── グラフ形式の検討.pdf
├── 画面遷移図.pdf
├── integration_test_policy.pdf
└── その他のPDF
入力: project-docs/
出力: project-docs-pdf/
変換対象:
- README.md → README.pdf
- architecture.md → architecture.pdf
- diagrams/system.drawio → diagrams/system.pdf
- presentation.html → presentation.pdf
drawioファイルの変換は比較的時間がかかります。