テンプレートを作る

REPOTEN-API を使って PDF を生成するには、まず テンプレートファイル を用意する必要があります。 このページではその手順について説明します。

前提

テンプレートを作成するには以下の環境が必要です。

ThinReports について

ThinReports は 株式会社マツケイ がオープンソースソフトウェアとして 開発・提供している Ruby 向け帳票ツールです。全てのソースコードは GitHub で公開されており、ライセンスの範囲内であればどなたでも自由に利用することができます。

主に以下の特徴を持っています。

詳しくは 公式サイト をご覧下さい。
REPOTEN-API は、この ThinReports をベースとしたサービスです。

環境を整える

テンプレートを作成するには、まずお使いの端末に ThinReports Editor をインストールし利用できる状態にセットアップする必要があります。

ダウンロード

公式サイト より、お使いの環境に適したファイルをダウンロードして下さい。

インストール

ダウンロード完了後、以下のリンクを参考にインストールを行って下さい。

専用デザイナの使い方

クィックスタート

以下のようなテンプレートを作成する手順を説明します。

完成イメージ

まず、インストールした ThinReports Editor を起動し、ツールバーの「新規作成」ボタンをクリックして 新規レポートの準備を行います。

新規イメージを作成

必要に応じて、用紙サイズや向き、余白を設定して下さい。ここではデフォルトのまま「OK」ボタンをクリックして作成します。なお、ページタイトルを設定すると以下の箇所に反映されますが、あまり気にする必要はありません。

白紙のキャンバスが作成されたら、画面左にあるツールボックスから「静的テキストツール(矢印の指すボタン)」を 選択し、キャンバスの任意の箇所をクリックします。

タイトルテキストを描画

テキストの入力ダイアログが表示されたら、任意のテキストを入力します。ここでは “○○イベント参加証” とし「OK」ボタンをクリックすると指定した箇所にテキストが表示されます。

その状態で、ツールバーの「フォント」「フォントサイズ」「上下/左右の位置」を設定してスタイルを整え、マウスでドラッグして以下のように位置も変更します。ここでは以下のように設定します。

テキストのスタイルを整える

同様にして以下のように、”お名前” というテキストを貼付けます。

ラベルテキストの描画

続いて、WebAPI から動的に名前を埋め込むエリアを作成します。

値を埋め込む箇所の作成には「テキストブロックツール」を使用し、作成されるエリアを「テキストブロック」と呼びます。以下のように、画面左のツールボックスよりテキストブロックツールを選択し、 “お名前” テキストの右横周辺からドラッグして下さい。

テキストブロックの描画

すると、オレンジ色のブロックが作成され「text」という文字が表示されています。 この「text」がテキストブロックの ID であり、WebAPI でデータを送信する場合に埋め込む箇所を 指定するために必要となります。

では、この ID を「 name 」に変更してみましょう。 以下のように、画面右下にある ID プロパティに「name」を上書き入力して Enter を押下すると、 テキストブロック上の ID も「name」に変更されます。

ID を変更

そして、テキスト同様フォントやフォントサイズ等のスタイルを変更して、位置を揃えればテンプレートは完成です。

テキストブロックのスタイルを整える

最後に、テンプレートを .tlf ファイルとして保存します。 以下のように、ツールバーの「保存」ボタンを押下すると保存先とファイル名を指定するダイアログが表示されます。ここでは certificates.tlf という名前で保存しています。

ファイルを保存

参考ページ

Editor の使い方については、以下のページも参考にして下さい。

サポートする機能について

REPOTEN-API は ThinReports をベースとしていますが、現時点ではそのごく一部の機能のみサポートしています。サポート状況は以下の通りです。

機能 サポート状況
動的なテキストデータの埋め込み(テキストブロック) Yes
動的な画像データの埋め込み(イメージブロック) No
リストの基本機能(行の追加/自動改頁/ヘッダー) Yes
リストのフッター/ページフッター機能 No
動的なスタイル操作 No
動的な表示/非表示の切り替え No

なお、静的画像やテキストブロックの書式設定など、Editor で設定できる静的な機能は全て対応しています。

未サポートの機能については今後順次対応していきますので、ぜひ 公式ブログ公式 Twitter をチェックして下さい。