アンセケターメンはてなエディション

いつどこで誰に見られても恥ずかしいコードが置かれています

Markdown PDFでPDF変換されない問題を解決する

めちゃくちゃ便利な VSCode拡張機能 Markdown PDF ですが、特殊な環境(変なグループポリシーが設定されていたりプロキシがあったり)だとうまく動かないことがありました。動くように試行錯誤した結果を残しておきます。

Chromiumx86 版にする

標準の 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 が上がってました。

github.com

拡張機能ソースコード %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変換されるようになりました。