めちゃくちゃ便利な VSCode の拡張機能 Markdown PDF ですが、特殊な環境(変なグループポリシーが設定されていたりプロキシがあったり)だとうまく動かないことがありました。動くように試行錯誤した結果を残しておきます。
Chromium を x86 版にする
標準の Chromium の代わりに x64 版のChromium を利用します。
ちょうどいいことに x86 版のEdgeが標準で入ってるので、それを使うように設定します。
ユーザー設定の Markdown PDF > Executable Path
の設定を変更します。
C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe
とすればOKです。
拡張機能のソースコードを編集する
プロキシ環境下の場合、「TimeoutError: Navigation timeout of 30000 ms exceeded」というエラーが出ることがあります。
公式に類似の Issue が上がってました。
拡張機能のソースコード %UserProfile%\.vscode\extensions\yzane.markdown-pdf-1.4.4\extension.js
を編集します。
401行目の
args: ['--lang='+vscode.env.language, '--no-sandbox', '--disable-setuid-sandbox']
の末尾に '--proxy-server=http://xxx.co.jp:8080'
を追加します。変更後は
args: ['--lang='+vscode.env.language, '--no-sandbox', '--disable-setuid-sandbox', '--proxy-server=http://xxx.co.jp:8080']
のようになります。私の環境では、ここの http://xxx.co.jp:8080
は実際のプロキシサーバに一致させなくても(xxx.co.jpのままでも)問題ありませんでした。謎。
以上の2つを行ったら無事にPDF変換されるようになりました。