コンテンツへスキップ
製品ページに戻る

Umitake ドキュメントジェネレーター for kintone ユーザーマニュアル

目次

  1. 概要
  2. インストール
  3. プラグイン設定
  4. テンプレートの準備
  5. テンプレートタグ仕様
  6. ドキュメントの生成
  7. 注意事項・制限
  8. トラブルシューティング

概要

ドキュメントジェネレーター プラグインは、kintoneのレコードデータをもとに Word(DOCX)・Excel(XLSX)・PDF ドキュメントを自動生成するプラグインです。

主な機能:

  • レコードのフィールド値をテンプレートに差し込んで出力
  • サブテーブルフィールドのループ展開
  • 関連レコード一覧フィールドのループ展開(DOCX / PDF はネストループも対応)
  • 日付・通貨・数値の書式指定
  • 出力ファイルを同一アプリまたは別アプリの添付フィールドに保存
  • ボタンクリックまたはステータス変更による出力トリガー
  • レコード一覧画面からの一括出力(絞り込み条件に一致するすべてのレコードを処理)

インストール

  1. kintone管理画面(歯車アイコン)を開く
  2. プラグイン をクリック
  3. プラグインの読み込み をクリック
  4. kintone-doc-generator.zip を選択してアップロード
  5. アップロード完了後、対象アプリの設定画面を開く
  6. プラグイン タブから「ドキュメントジェネレーター」を追加
  7. 設定 をクリックしてプラグイン設定画面を開く

プラグイン設定

対象アプリの設定画面で「ドキュメントジェネレーター」の 設定 をクリックすると、プラグイン設定画面が開きます。

画面上部に設定サイズメーターが表示されます。kintoneプラグインの設定は256KBが上限です。PDFのHTMLテンプレートが大きい場合はサイズに注意してください。

ドキュメント設定の追加

「+ ドキュメント設定を追加」 ボタンをクリックして、出力設定を1件追加します。1つのアプリに複数の設定を登録できます(例: 「請求書」「納品書」「注文確認書」を同一アプリに設定)。

各設定カードのヘッダー右側には以下のボタンが表示されます。

ボタン動作
設定を複製(直下に同内容のコピーを作成)
↑ / ↓設定の順序を変更
×設定を削除

テンプレートソース

出力形式に応じてテンプレートの指定方法が異なります。

DOCX / XLSX の場合

テンプレートファイルは別のkintoneアプリ(テンプレート保管アプリ)に添付ファイルとして登録します。

テンプレート保管アプリの準備手順:

  1. 新規kintoneアプリを作成(例: 「テンプレート管理」)
  2. 添付ファイルフィールドを追加(フィールドコード例: template_file
  3. テンプレートファイル(.docx または .xlsx)をレコードに添付して保存
  4. レコードのURLからレコード番号を確認

プラグイン設定での指定例(請求書テンプレートの場合):

項目入力値
アプリID100(テンプレート管理アプリのID)
レコードID1(テンプレートが添付されているレコード番号)
フィールドコードtemplate_file
ファイル名invoice_template.docx

PDF の場合

PDFのテンプレートソースは3種類から選択できます。

方式説明
HTMLから作成設定画面のHTMLエディタに直接HTMLを記述
DOCXから作成DOCXテンプレートをもとに生成し、バックエンドサービスでPDFに変換
XLSXから作成XLSXテンプレートをもとに生成し、バックエンドサービスでPDFに変換

HTMLから作成の場合:

設定画面内のHTMLエディタに直接HTMLを記述します。フィールド一覧からタグを挿入するボタンも利用できます。エディタ右上の「全画面で編集」ボタンで全画面モーダルに拡大できます。

ページ設定:

項目選択肢
ページサイズA4 / A3 / Letter
向き縦(portrait)/ 横(landscape)

注意: DOCX/XLSXからのPDF変換は、バックエンドの変換サービスを使用します。有効なライセンスが必要です。


出力先

生成したファイルの保存先を指定します。

同一アプリ(添付フィールド)

項目説明
フィールドコード保存先の添付ファイルフィールドコード
追記モードON: 既存ファイルを残して追加 / OFF: 上書き

設定例: フィールドコード generated_docs、追記モード ON

別アプリ

項目説明
アプリID出力先アプリのID
添付ファイルフィールドコード出力先の添付ファイルフィールド
レコード特定クエリ保存先レコードを絞り込むkintoneクエリ(タグ使用可)customer_code = "${顧客コード}"
アプリIDを格納するフィールド新規作成時に出力元アプリIDを書き込むフィールド(任意)
レコードIDを格納するフィールド新規作成時に出力元レコードIDを書き込むフィールド(任意)
追記モードON: 既存ファイルを残して追加 / OFF: 上書き

クエリにはフィールドタグ(${フィールドコード})を使用できます。クエリが空またはマッチしない場合は、出力先アプリに新規レコードを作成してファイルを保存します。


ファイル名テンプレート

生成するファイルのファイル名を指定します。フィールドタグや生成日時タグを使って動的なファイル名にできます。

請求書_${顧客名}_${作成日 format="YYYYMMDD"}
報告書_${@date format="YYYYMMDD"}

拡張子(.docx.xlsx.pdf)は指定不要です。プラグインが自動で付与します。

ヒント: ファイル名に使えないOS特殊文字(/\:*?"<>|)はアンダースコアに自動変換されます。


出力トリガー

ドキュメント生成のきっかけを指定します。

ボタン

レコード詳細画面にボタンを表示します。

項目説明
ボタンラベルレコード詳細画面のボタンに表示するテキスト(例: 請求書を作成
表示位置ヘッダーメニュー / 画面下部
一覧画面で一括出力を有効にするONにするとレコード一覧画面にも一括出力ボタンが表示される
一括出力ボタンのラベル一覧画面の一括出力ボタンのテキスト(未入力の場合はボタンラベルを使用)

ステータス変更

プロセス管理のステータスが変わったときに実行します。

項目説明
対象ステータス変更後のステータス名(例: 承認済み
自動実行ON: 確認なしで即実行 / OFF: 確認ダイアログを表示

テンプレートの準備

DOCXテンプレート

WordでDOCXファイルを作成し、差し込みたい箇所にタグを記述します。

ポイント:

  • タグは ${フィールドコード} の形式
  • Wordの「フィールド」機能ではなく、通常のテキストとして入力
  • フォント・サイズ・色などの書式はタグに適用したものが出力に反映される
  • サブテーブルのループは表(テーブル)の行に記述

作成例(請求書):

請求書

請求先: ${顧客名}
請求日: ${請求日 format="YYYY年MM月DD日"}
お支払期限: ${期限 format="YYYY年MM月DD日"}

| 商品名 | 数量 | 単価 | 金額 |
|--------|------|------|------|
| ${#明細} ${商品名} | ${数量} | ${単価 currency="JPY"} | ${合計 currency="JPY"} ${/明細} |

合計金額: ${合計金額 currency="JPY"}

XLSXテンプレート

Excelでxlsxファイルを作成し、タグを各セルに記述します。

基本ルール:

  • 1セルに1タグを記述
  • セルの書式(フォント・背景色・罫線・数値書式など)はそのまま保持される

サブテーブルのループ(マーカー行方式):

A列B列C列D列
10${#明細}
11${商品名}${数量}${単価 currency="JPY"}${合計 currency="JPY"}
12${/明細}
  • マーカー行${#〜} / ${/〜} のみの行)は出力に含まれません
  • テンプレート行はサブテーブルの行数分だけ複製されます
  • テンプレート行を複数行にすると、1サブテーブル行につき複数行を展開できます

PDFテンプレート

HTMLから作成

プラグイン設定画面のHTMLエディタでHTMLを作成します。フォント・レイアウトはCSSで調整します。

サブテーブルのループ(HTMLコメントで範囲指定):

<table>
  <tr>
    <th>商品名</th>
    <th>数量</th>
    <th>単価</th>
  </tr>
  <!-- ${#明細} -->
  <tr>
    <td>${商品名}</td>
    <td>${数量}</td>
    <td>${単価 currency="JPY"}</td>
  </tr>
  <!-- ${/明細} -->
</table>

ヒント: 複雑なCSSレイアウト(flexbox、gridなど)はPDF変換時に再現されない場合があります。テーブルレイアウトの使用を推奨します。

DOCXから作成 / XLSXから作成

DOCXまたはXLSXのテンプレートをそれぞれのテンプレート形式で作成し、テンプレート保管アプリに添付します。生成されたDOCX/XLSXはバックエンドの変換サービスでPDFに変換されます。


テンプレートタグ仕様

オプション一覧

タグには オプション名="値" の形式でオプションを付加できます。フラグ型オプション(imageqrcodebarcodeallOptions)は値なしで記述します。

${フィールドコード オプション名="値" 別オプション="値"}
${フィールドコード image}
${フィールドコード allOptions checked="☑" unchecked="☐"}

全オプション一覧:

オプションデフォルト主な対象フィールド説明
formatDay.js書式文字列日付・日時・@date@datetime日付・日時の出力書式を指定(例: "YYYY年MM月DD日"
timezoneタイムゾーン名ブラウザのTZ日付・日時・@date@datetime出力タイムゾーン(例: "Asia/Tokyo"
currency通貨コード数値通貨記号付き桁区切りフォーマット(JPYUSDEURGBP 等)
number"true" / 桁数数値通貨記号なし桁区切り("2" = 小数2桁固定、"true" = 整数)
separator任意文字列", "チェックボックス・複数選択・ユーザー/組織/グループ選択配列フィールドの区切り文字("\n" で改行区切り)
prefix任意文字列全フィールド値が空でない場合のみ先頭に付加する文字列
suffix任意文字列全フィールド値が空でない場合のみ末尾に付加する文字列
keyプロパティ名nameユーザー選択・組織選択・グループ選択取得するオブジェクトプロパティ("name""code" 等)
allOptions(フラグ)チェックボックス・複数選択全選択肢を選択状態付きで出力する
checked任意文字列"☑"allOptions 使用時選択済み項目の先頭に付けるマーク
unchecked任意文字列"☐"allOptions 使用時未選択項目の先頭に付けるマーク
image(フラグ)添付ファイル添付画像をドキュメントに埋め込む
index整数0添付ファイル(image 使用時)複数添付時に取得するファイルのインデックス(0始まり)
widthピクセル数200imageqrcodebarcode挿入する画像の横幅(px)
heightピクセル数150imagebarcode挿入する画像の縦幅(px)
qrcode(フラグ)任意フィールドフィールド値からQRコードを生成して挿入
barcode(フラグ)任意フィールドフィールド値からバーコードを生成して挿入
typeバーコード形式"CODE128"barcode 使用時バーコードの形式

基本タグ

${フィールドコード}

kintoneのフィールドコードをそのまま記述します。フィールドコードはkintoneのフォーム設定で確認できます。

対応フィールド種別:

フィールド種別出力内容
文字列(1行)/ 文字列(複数行)入力テキスト
数値数値(文字列として)
日付 / 日時 / 時刻ISO形式(例: 2024-01-15) ※ format オプションで書式変換
リンクURL文字列
ラジオボタン / ドロップダウン選択値
チェックボックス / 複数選択選択値をカンマ区切りで結合
ユーザー選択 / 組織選択 / グループ選択名前をカンマ区切りで結合
ルックアップ参照元の値
計算計算結果
添付ファイルimage オプションで画像を差し込み
サブテーブルループタグで展開
関連レコード一覧ループタグで展開

日付フォーマット

${フィールドコード format="書式文字列"}
書式記号意味
YYYY西暦4桁2024
YY西暦2桁24
MM月(2桁)01
M1
DD日(2桁)05
D5
HH時(24時間)14
mm30
ss00

記述例:

${作成日 format="YYYY年MM月DD日"}       → 2024年01月15日
${作成日 format="YYYY/MM/DD"}          → 2024/01/15
${更新日時 format="YYYY-MM-DD HH:mm"} → 2024-01-15 14:30

timezone オプションと組み合わせることで、任意のタイムゾーンで出力できます。

${更新日時 format="YYYY-MM-DD HH:mm" timezone="America/New_York"}

通貨フォーマット

${フィールドコード currency="通貨コード"}
通貨コード出力例
JPY¥1,000
USD$1,000.00
EUR€1,000.00
GBP£1,000.00
${金額 currency="JPY"}     → ¥1,234,567
${amount currency="USD"}   → $1,234.56

数値フォーマット

${フィールドコード number="オプション値"}
オプション値出力例説明
"true" または "0"1,234,567整数として桁区切り
"1"1,234.6小数1桁固定
"2"1,234,567.89小数2桁固定
${在庫数 number="true"}  → 1,234
${単価 number="2"}       → 1,234.00
${達成率 number="1"}     → 98.5

生成日付・日時タグ

ドキュメント生成を実行した時点の日付・日時を出力します。kintoneのフィールドではなくシステムタグです。

${@date}
${@datetime}
タグデフォルト出力例説明
${@date}2024-01-15生成日付
${@datetime}2024-01-15 09:30:00生成日時

format オプションと timezone オプションを組み合わせられます。

${@date format="YYYY年MM月DD日"}               → 2024年01月15日
${@datetime format="MM/DD/YYYY HH:mm"}        → 01/15/2024 09:30
${@datetime format="HH:mm" timezone="Asia/Tokyo"} → 18:30

ファイル名での活用例:

請求書_${顧客名}_${@date format="YYYYMMDD"}

条件付きプレフィックス・サフィックス

${フィールドコード prefix="前置文字列"}
${フィールドコード suffix="後置文字列"}

フィールドに値がある場合のみ前後に文字を付加します。フィールドが空の場合はタグ全体が空文字になります。

使用例(住所の結合):

${住所}${市区町村 prefix="、"}${都道府県 prefix="、"}
住所市区町村都道府県出力結果
港区東京都日本港区、東京都、日本
港区(空)日本港区、日本
港区(空)(空)港区
${備考 prefix="【" suffix="】"}

備考フィールドに値があれば 【...】 で囲んで出力、空なら何も出力しません。


配列フィールドの出力

チェックボックス・複数選択・ユーザー選択などの配列フィールドは、デフォルトで , 区切りで出力されます。

separator — 区切り文字の指定

${チェックボックス separator=" / "}     → 選択肢A / 選択肢B / 選択肢C
${ユーザー選択 separator="・"}          → 山田太郎・鈴木花子
${複数選択 separator="\n"}              → 改行区切り

key — オブジェクト配列のプロパティ指定

ユーザー選択・組織選択・グループ選択フィールドで取得するプロパティを指定します。

フィールド種別key の値出力内容
ユーザー選択name(デフォルト)ユーザー表示名
ユーザー選択codeユーザーコード(ログインID)
組織選択name(デフォルト)組織名
組織選択code組織コード
${担当者 key="code" separator=","}     → user1,user2,user3

allOptions — チェックボックスの全選択肢表示

チェックボックス・複数選択フィールドの全選択肢を、選択状態(☑/☐)付きで出力します。

${チェックボックス allOptions}
→
☑ 選択肢A
☐ 選択肢B
☑ 選択肢C
${チェックボックス allOptions checked="✅" unchecked="⬜" separator=", "}
→ ✅ 選択肢A, ⬜ 選択肢B, ✅ 選択肢C

画像差し込み

kintoneの添付ファイルフィールドに添付された画像をドキュメントに埋め込みます。

${フィールドコード image}
${フィールドコード image index="1" width="300" height="200"}
オプションデフォルト説明
index0複数ファイルが添付されている場合のインデックス(0始まり)
width200画像の横幅(ピクセル)
height150画像の縦幅(ピクセル)

フォーマット別の注意事項:

形式注意点
PDF(HTML)対応画像形式: JPEG・PNG・GIF・WebP
DOCXタグが単一のテキストランに存在する必要あり。画像タグには書式(太字・色など)を設定しないことを推奨
XLSXセルがinlineStr形式(直接入力)のみ対応

QRコード・バーコード

フィールドの値からQRコードまたはバーコードを生成して、ドキュメントに挿入します。

QRコード

${フィールドコード qrcode}
${URL qrcode width="200"}

バーコード

${商品コード barcode}
${JANコード barcode type="EAN13" width="250"}

対応バーコード形式:

type形式名用途・特徴
CODE128Code 128英数字・記号対応の汎用バーコード(デフォルト)
EAN13EAN-13商品バーコード(13桁数字)
EAN8EAN-8コンパクト商品バーコード(8桁数字)
UPCUPC-A北米向け商品バーコード(12桁数字)
CODE39Code 39英数字対応、医療・工業用途
ITF14ITF-14物流用バーコード

条件分岐ブロック(IF/IFEXIST)

フィールドの値に応じてドキュメントの一部を表示・非表示にします。

構文

${#if フィールドコード}
表示するコンテンツ
${/if}

${#if フィールドコード = "値"}...${/if}
${#if フィールドコード != "値"}...${/if}
${#if フィールドコード > 100}...${/if}

${#if フィールドコード = "承認済み"}
承認済みです
${#else}
未承認です
${/if}

${#ifexist フィールドコード}
フィールドが存在し空でない場合に表示
${/ifexist}

条件の動作

構文true になる条件
${#if FIELD}フィールドの値が空でなく、かつ "0" でない
${#ifexist FIELD}フィールドが存在し、値が空でない("0" でも true)
${#if FIELD = "値"}文字列として完全一致
${#if FIELD > 数値}数値として比較

フォーマット別の記述方法

DOCX: 段落単位でブロックを記述します。${#if ...}${/if} は別の段落に置きます。

XLSX: 行単位でブロックを制御します。${#if ...}${/if} を別の行のセルに記述します。

PDF(HTML): HTMLコメントでブロックを囲みます。

<!-- ${#if ステータス = "承認済み"} -->
<p style="color:green">承認済み</p>
<!-- ${#else} -->
<p style="color:gray">審査中</p>
<!-- ${/if} -->

<!-- ${#ifexist 備考} -->
<p><strong>備考:</strong> ${備考}</p>
<!-- ${/ifexist} -->

注意: 条件ブロックのネストには対応していません。


サブテーブルのループ展開

DOCX

表の1行に開始タグ・フィールドタグ・終了タグをまとめて記述します。

| ${#明細} | ${商品名} | ${数量} | ${単価 currency="JPY"} | ${/明細} |

XLSX

マーカー行(開始・終了)とテンプレート行(データ行)を別行に分けて記述します。

A列B列C列
N${#明細}
N+1${商品名}${数量}${単価 currency="JPY"}
N+2${/明細}

PDF(HTML)

HTMLコメントでループ範囲を囲みます。

<!-- ${#明細} -->
<tr>
  <td>${商品名}</td>
  <td>${数量}</td>
  <td>${単価 currency="JPY"}</td>
</tr>
<!-- ${/明細} -->

関連レコードのループ展開

関連レコード一覧フィールドの各レコードを繰り返し出力します。サブテーブルと同じ構文を使用します。

DOCXでのネストループ

関連レコード内にサブテーブルがある場合、ネストしたループも使用できます。

${#関連案件}
  ${案件名}
  | ${#明細} | ${商品名} | ${数量} | ${/明細} |
${/関連案件}

PDF(HTML)でのネストループ

<!-- ${#関連案件} -->
<tr><td>${案件名}</td><td>${担当者}</td></tr>
  <!-- ${#明細} -->
  <tr><td colspan="2" style="padding-left:2em">${商品名}(${数量}個)</td></tr>
  <!-- ${/明細} -->
<!-- ${/関連案件} -->

注意: XLSXでは関連レコード内のサブテーブルループ(ネストループ)には対応していません。


ドキュメントの生成

ボタンで生成する場合

  1. レコード詳細画面を開く
  2. 設定したボタン(例: 「請求書を作成」)をクリック
  3. 生成処理が実行されます(数秒〜数十秒かかる場合があります)
  4. 完了後、指定した添付フィールドにファイルが保存されます

ステータス変更で生成する場合

  1. レコード詳細画面でプロセス管理のステータスを変更
  2. 対象ステータスへの変更時に自動でドキュメント生成が実行されます
  3. 自動実行がOFFの場合: 確認ダイアログが表示されます。「OK」で生成、「キャンセル」でスキップします

一覧画面から一括生成する場合

「一覧画面で一括出力を有効にする」をONにすると、レコード一覧画面に一括出力ボタンが表示されます。

手順:

  1. レコード一覧画面で絞り込み条件を設定する(任意)
  2. 一括出力ボタンをクリック
  3. 対象件数が確認ダイアログに表示されます。「OK」で処理を開始します
  4. 処理中は進捗(一括生成中: X / Y 件)がオーバーレイ表示されます
  5. 完了後に成功・失敗件数のトースト通知が表示されます

注意事項:

  • 絞り込みを適用していない場合はアプリの全レコードが対象になります
  • 一度に処理できる最大件数は 10,000件 です
  • 処理中はページを離れないでください

注意事項・制限

設定サイズ制限

kintoneプラグインの設定データは 256KB が上限です。PDFのHTMLテンプレートが大きい場合は、設定画面上部のサイズメーターで確認してください。

PDF日本語フォント

html2pdf.jsはブラウザのフォントをそのまま使用します。印刷環境によっては埋め込みフォントが必要になる場合があります。

表示言語

設定画面はログインユーザーの言語設定に従って自動的に日本語または英語で表示されます。


トラブルシューティング

ドキュメントが生成されない

確認事項:

  • プラグイン設定が保存されているか(設定画面で「保存」を押したか)
  • テンプレート保管アプリのアプリID・レコードID・フィールドコード・ファイル名が正しいか
  • 出力先の添付フィールドのフィールドコードが正しいか

フィールドの値が出力されない(タグが残る)

確認事項:

  • フィールドコードが正確に一致しているか(大文字・小文字・スペースに注意)
  • フィールドコードはkintoneのフォーム設定で確認できます

DOCX / XLSX でタグが変換されずそのまま出力される

確認事項:

  • ${ の間にスペースが入っていないか($ {フィールドコード} は無効)
  • Word/Excelの自動修正が ${ を変換していないか(${ を別々に入力してみる)
  • タグ内のフィールドコードに全角スペースが混入していないか

Excelテンプレートで出力が空白になる

確認事項:

  • ループのマーカー行(${#〜} / ${/〜})が正しく対応しているか
  • マーカーに使用したフィールドコードが実際のサブテーブルフィールドのコードと一致しているか

PDFのレイアウトが崩れる

確認事項:

  • ページサイズと向き(縦/横)の設定が適切か
  • HTMLテンプレート内のCSSで page-break-* プロパティを使って改ページ位置を制御できます
  • 複雑なCSSレイアウト(flexbox、gridなど)はPDF変換時に再現されない場合があります。テーブルレイアウトの使用を推奨します

日付が正しいフォーマットで出力されない

確認事項:

  • format オプションの書式文字列が正しいか(Day.js フォーマット文字列に準拠)
  • フィールドの値が有効な日付形式か(kintoneの日付フィールド以外の文字列フィールドの場合、ISO形式 YYYY-MM-DD でないとフォーマットできません)