Adobe ExtendScript で mm単位の新規Illustratorドキュメント作成

## 目的

mm単位のillustratorデータを自動で作成したい。

データの雛形をExtendScriptで自動作成する際、サンプルコードなどで頻出の`documents.add()`をそのまま用いると、pt単位のデータとなる。

* そのあとの手作業で、mm単位で作業したい
* 新規ドキュメントダイアログに余計な履歴が残る

## 新規ドキュメント作成方法の確認

どのような方法があるか、[公式リファレンス](https://www.adobe.com/content/dam/acom/en/devnet/illustrator/pdf/Illustrator_JavaScript_Scripting_Reference_2017.pdf)を見たところ下記方法が確認できた。

### Documents methods

[公式リファレンス 45ページ](https://www.adobe.com/content/dam/acom/en/devnet/illustrator/pdf/Illustrator_JavaScript_Scripting_Reference_2017.pdf)

| Method | What it does |
| :-: | :-: |
| add <br />([documentColorSpace]<br />[, width]<br />[, height]<br />[, numArtBoards]<br />[, artboardLayout]<br />[, artboardSpacing]<br />[, artboardRowsOrCols]) |  Creates a new document using optional parameters and returns a reference to the new document. |
| addDocument<br />(startupPreset<br />[, presetSettings]<br />[, showOptionsDialog]) | Creates a document from the preset, replacing any provided setting values, and returns a reference to the new document. |
| addDocumentNoUI<br />(startupPreset) | Creates a document without showing in UI |

<!-- | Method | Parameter type | Returns | What it does |
| - | - | - | - |
| add <br />([documentColorSpace]<br />[, width]<br />[, height]<br />[, numArtBoards]<br />[, artboardLayout]<br />[, artboardSpacing]<br />[, artboardRowsOrCols]) | DocumentColorSpace<br />number (double)<br />number (double)<br />number (long)<br />DocumentArtboardLayout<br />number (double)<br />number (long) | Document | Creates a new document using optional parameters and returns a reference to the new document. |
| addDocument<br />(startupPreset<br />[, presetSettings]<br />[, showOptionsDialog]) | string<br />DocumentPreset<br />boolean | Document | Creates a document<br />from the preset,<br />replacing any provided<br />setting values, and<br />returns a reference to the<br />new document. |
| addDocumentNoUI<br />(startupPreset) | string | Document | Creates a document<br />without showing in UI | -->

※新規ドキュメント作成サンプルコード

```JavaScript
// Creates a new document with an RGB color space
app.documents.add( DocumentColorSpace.RGB );
```

## documents.add の場合

設定するパラメータがない。作成後の変更は不可？未確認。

※`document.rulerUnit`は読み取り専用のため後からいじれない。

## documents.addDocument の検討

[公式リファレンス 44ページ](https://www.adobe.com/content/dam/acom/en/devnet/illustrator/pdf/Illustrator_JavaScript_Scripting_Reference_2017.pdf)

設定項目が下記のように多く`units`で単位も設定できる。

* artboardLayout
* artboardRowsOrCols
* artboardSpacing
* colorMode
* documentBleedLink
* documentBleedOffsetRect
* height
* numArtboards
* previewMode
* rasterResolution
* title
* transparencyGrid
* typename
* units
* width

<!-- | Property | Value type | What it is |
| - | - | - |
| artboardLayout | DocumentArtboardLayout | The layout of artboards in the new document. Default: GridByRow |
| artboardRowsOrCols | number (long) | The number of rows (for rows layout) or columns (for column layout) of artboards.<br />Range: 1 to (numArtboards - 1) or 1 for single row or column layouts. Default: 1 |
| artboardSpacing | number (double) | The spacing between artboards in the new document. Default: 20.0 |
| colorMode | DocumentColorSpace | The color space for the new document. |
| documentBleedLink | Boolean | The document link for bleed values.
| documentBleedOffsetRect | rectangle | The document bleed offset rectangle. |
| height | number (double) | The height in document points. Default: 792.0 |
| numArtboards | number (long) | The number of artboards for the new document. Range: 1 to 100. Default: 1 |
| previewMode | DocumentPreviewMode | The preview mode for the new document. |
| rasterResolution | DocumentRasterResolution | The raster resolution for the new document.
| title | string | The document title. |
| transparencyGrid | DocumentTransparencyGrid | The transparency grid color for the new document. |
| typename | string | Read-only. The class name of the referenced object. |
| units | RulerUnits | The ruler units for the new document. |
| width | number (double) | The width in document points. Default: 612.0 | -->

```JavaScript
var doc = app.documents.addDocument("プリント"); // A4 CMYKで良ければプリセットにあるのを指定するのが手っ取り早い

var documentPreset = new DocumentPreset();
documentPreset.units = RulerUnits.Millimeters; // mm単位の設定
var doc = app.documents.addDocument("", documentPreset); // DocumentPresetを第二引数に加えるとmm単位のドキュメントが作成できる

var doc = app.documents.addDocument("プリント", documentPreset); // DocumentPresetを引数に加えると、プリントの中身は反映されない
```

## 参考

* [Illustrator Scripting | Adobe Developer Connection](https://www.adobe.com/devnet/illustrator/scripting.html)
* [Adobe Illustrator CC 2015 Scripting Reference: JavaScript](https://www.adobe.com/content/dam/acom/en/devnet/illustrator/pdf/Illustrator_JavaScript_Scripting_Reference_2017.pdf)
* [Illustrator CC 2015 Scripting Guide](https://www.adobe.com/content/dam/acom/en/devnet/illustrator/pdf/AI_ScriptGd_2017.pdf)