Rubyなし VSCode Asciidoc extensionsでPDFを生成

## Ruby要らない

VSCodeのAsciidoc ExtensionsでPDFを生成します。

下記のものは要らない。

- Ruby
- rbenv
- Asciidoctor
- Asciidoctor-pdf

VSCodeのAsciidoc extensionはAsciidoctor.jsを使ってプレビュー表示、PDF出力を行う。
Rubyなんて要らない。

## 環境

環境は下記のようになります。

- Windows10 Pro x64 build 1909
- Visual Studio Code v1.40.2
- Asciidoc extensions v2.7.7
- wkhtmltopdf 0.12.4.0

RubyなしでPDFを生成するにはwkhtmltopdfを使います。

## 設定方法

1. [wkhtmltopdfを取得](https://wkhtmltopdf.org/downloads.html)
2. Asciidoc extension > Manage > 拡張設定の構成
    - ![adoc00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/96a55296-48c1-d7cf-c1b2-ee8dadfc4823.png)
    - ![adoc01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/df08c82c-08e0-2ee2-39f1-cbcf7412b0b0.png)
3. ユーザーを選択
5. Asciidoc: Use_asciidoctor_jsにチェックが入っていることを確認
6. Asciidoc: Use_asciidoctor-pdfのチェックが外れていることを確認
7. 最後のAsciidoc: Wkhtmltopdf_path に wkhtmltopdf.exeの場所を指定する。
    8.  ![adoc02_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/0e5d69b9-1c8f-3043-0c64-397f783de744.jpeg)


これだけでOK。


## 使い方

1. VSCode内でAsciidocで書かれたテキストを選択
2. コマンドパレット
3. AsciiDoc: Export document as PDF を選択
    4. ![adoc04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/f7766661-3b05-f00e-0d73-6b9bdf272236.png)
4. PDFを保存する場所を選択
    5. ![adoc05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/bf426e9a-3034-96e0-04e5-658a74603352.png)
5. PDFが出力されます。
 ![adoc06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/d00453c0-7634-861a-7ccd-b4072d9fc591.png)


## wkhtmltopdfを指定せずに動かす

whtmltopdfをインストールして設定しない場合、
export時にwkhtmltopdfをダウンロードしてくれます。


1. VSCode内でAsciidocで書かれたテキストを選択
2. コマンドパレット
3. AsciiDoc: Export document as PDF を選択
    4. ![adoc04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/f7766661-3b05-f00e-0d73-6b9bdf272236.png)
4. This feature requires wkhtmltopdf. do you want to download? と出てくるので
    5. ![adoc07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/6b1a1b10-973d-065e-2d8b-3d0e6f710598.png)
5. Downloadを選択
6. Downloading wkhtmltopdf
    7. ![adoc08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/18d7e134-1528-878e-a049-bccc79a6b7d4.png)　
7. PDFを保存する場所を選択
    8. ![adoc05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/bf426e9a-3034-96e0-04e5-658a74603352.png)
8. PDFが出力されます。
 ![adoc06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24550/d00453c0-7634-861a-7ccd-b4072d9fc591.png)


## 解説

設定でwkhtmltopdfが指定されていない場合は、
下記の場所に勝手にダウンロードされて展開されます。

- Windowsの場合
    - %USERPROFILE%\.vscode\extensions\joaompinto.asciidoctor-vscode-2.7.7\out\src\commands
- Macの場合
    - /Users/ユーザー名/.vscode/extensions/joaompinto.asciidoctor-vscode-2.7.7/out/src/commands
- Linuxの場合
    - 多分下記の場所
    - ~/.vscode/extensions/joaompinto.asciidoctor-vscode-2.7.7/out/src/commands

そこにDownloadされたwkhtmltopdfを使ってPDFに変換するようです。
extensionに埋め込まずにダウンロードするようになっているのは、wkhtmltopdfのライセンスがLGPLだからと思われます。

wkhtmltopdfを使うせいなのか生成されるPDFは少し味気ないものになっている。
[asciidoctor-pdf.js](https://github.com/Mogztter/asciidoctor-pdf.js) が最近開発されているようです。
もしasciidoc extensionsに組み込めたら少しマシになるかもしれません。