Thinreports Templete CLIというコマンドラインツールをつくりました。
コマンドラインでThinreportsの帳簿レイアウトからPDFを生成するツールです。Wordで手入力したりするのがつらい人々向けのツールです。
Step 0: 分かる人向けのお試しコマンド
$ wget https://raw.githubusercontent.com/mh61503891/thinreports-template-cli/master/test/fixtures/card.tlf
$ gem install thinreports-template-cli
$ thinreports-template-cli ./card.tlf --help
thinreports-template-cli tlf [options]
Basic Options
--format=table|csv|json|pdf
Thinreports Layout File Options
--name=[NAME] 本名またはハンドルネームを記載してください。
--twitter=[TWITTER] Twitterのアカウントをお持ちのかたはIDを記載してください。
--desc=[DESC] 自己紹介の説明文を記入してください。
$ thinreports-template-cli ./card.tlf --name="M. Higashino" --twitter=61503891 --desc="猫です。" --format=pdf > ./card.pdf && open ./card.pdf
完🎉
Step 1: 帳簿レイアウトの作成
ここから少し詳しい説明です。例として、Thinreports Editorで下図のような帳簿レイアウトを作成して card.tlf
として保存します。
このファイルは card.tlf からダウンロードできます。必要な方は以下のコマンドでダウンロードしてください。
$ wget https://raw.githubusercontent.com/mh61503891/thinreports-template-cli/master/test/fixtures/card.tlf
Step 2: Thinreports Templete CLIのインストール
以下のコマンドでインストールします。
$ gem install thinreports-template-cli
Step 3: テキストブロックをコマンドラインオプションで見る。
thinreports-template-cli
コマンドに、先ほど作成した帳簿レイアウトのファイル(card.tlf
)を指定して --help
を指定するとテキストブロックのIDがコマンドラインオプションにマッピングされて表示されます。
$ thinreports-template-cli ./card.tlf --help
thinreports-template-cli tlf [options]
Basic Options
--format=table|csv|json|pdf
Thinreports Layout File Options
--name=[NAME] 本名またはハンドルネームを記載してください。
--twitter=[TWITTER] Twitterのアカウントをお持ちのかたはIDを記載してください。
--desc=[DESC] 自己紹介の説明文を記入してください。
Step 4: テキストブロックのテーブル表示
こんな感じでテキストブロックが一覧表示されます。
$ thinreports-template-cli ./card.tlf
+-------+------+-------+--------+-------------+------------+----------+--------+--------+---------+---------------------------------------------------------+
|id |ref_id|display|multiple|default_value|option_value|real_value|fmt_base|fmt_type|fmt_value|desc |
+-------+------+-------+--------+-------------+------------+----------+--------+--------+---------+---------------------------------------------------------+
|name | |true |true | | | | | | |本名またはハンドルネームを記載してください。 |
|twitter| |true |false | | | |@{value}| | |Twitterのアカウントをお持ちのかたはIDを記載してください。|
|desc | |true |true | | | | | | |自己紹介の説明文を記入してください。 |
+-------+------+-------+--------+-------------+------------+----------+--------+--------+---------+---------------------------------------------------------+
Step 5: オプションの指定
テキストブロックのIDはコマンドラインオプションになっているので適当に指定してあげます。値に関する項目の意味は下記の通りです。
- default_value: 帳簿レイアウトで指定されているデフォルト値
- option_value: コマンドラインオプションで指定した値
- real_value : 実際に出力される値
$ thinreports-template-cli ./card.tlf --name="M. Higashino" --twitter=61503891 --desc="猫です。"
+-------+------+-------+--------+-------------+--------------------+--------------------+--------+--------+---------+---------------------------------------------------------+
|id |ref_id|display|multiple|default_value|option_value |real_value |fmt_base|fmt_type|fmt_value|desc |
+-------+------+-------+--------+-------------+--------------------+--------------------+--------+--------+---------+---------------------------------------------------------+
|name | |true |true | |M. Higashino |M. Higashino | | | |本名またはハンドルネームを記載してください。 |
|twitter| |true |false | |61503891 |@61503891 |@{value}| | |Twitterのアカウントをお持ちのかたはIDを記載してください。|
|desc | |true |true | |猫です。|猫です。| | | |自己紹介の説明文を記入してください。 |
+-------+------+-------+--------+-------------+--------------------+--------------------+--------+--------+---------+---------------------------------------------------------+
Step 6: PDFファイルの生成
--format=pdf
とオプションを指定してあげれば標準出力にPDFファイルが出力されますのであとはリダイレクトするなりパイプでつないで lpr
でプリンタへ投げるなりします。
$ thinreports-template-cli ./card.tlf --name="M. Higashino" --twitter=61503891 --desc="猫です。" --format=pdf > ./card.pdf && open ./card.pdf
まぁまぁこれで元気がでてきました。