本記事では、Office File CreatorでPDF出力時のWordテンプレート作成のコツをご紹介します。
ページ番号/総ページ数を出力
ページ番号、総ページ数は、以下の差し込み項目をフッターまたはヘッダーに使用してください。Wordのフィールドコードはサポートされません。
ページ番号・・・{!pagenumber()}
総ページ数・・・{!pagecount()}
行間の設定
Wordテンプレートの「段落」>「インデントと行間隔」の「1ページの行数を指定時に文字をグリッド線に合わせる」をチェックオフにしてください。チェックオンのとき、行間がかなり広く出力されます。チェックオフ時、Wordテンプレートの行間よりPDFは少し狭く出力されます。
- 既存のテンプレートの内容を「Ctrl+A」ですべて選択し、段落よりチェックオフにします。
- 標準スタイルなど、使用するスタイルの段落よりチェックオフにします。
表内の文字位置(中央揃え・下揃え)
セル内の文字の垂直方向位置を設定時、表プロパティと段落を設定してください。表プロパティのみの設定の場合、意図した位置で出力されない場合があります。
セル内の文字を中央揃え(垂直方向)
- 表プロパティ>セルタブより、垂直方向の配置を中央揃えに設定
- 段落>インデントと行間隔タブより、行間を1行に設定
セル内の文字を下揃え
- 表プロパティ>セルタブより、垂直方向の配置を下揃えに設定
- 段落>インデントと行間隔タブより、行間を固定値にし、間隔の数値を適宜調整
表内の差し込み項目設定
表のプロパティ>表タブ内のオプションより、「自動的にセルのサイズを変更する」をチェックオフにしてください。
「自動的にセルのサイズを変更する」がチェックオン
差し込み項目が横に伸びて、正しい列幅が表示されません。
「自動的にセルのサイズを変更する」がチェックオフ
設定した列幅が正しく表示されます。
左右で異なるレイアウト
左右で異なるレイアウトの場合、一つの表を作成し、セル分割、表罫線の表示/非表示により設定してください。表を左右に並べたり、表の横に文字を表示することはできません。
レイアウト例(セル分割・罫線表示/非表示)
出力結果
縞模様レイアウト
子オブジェクトの表を縞模様で出力する場合、子オブジェクト行を2行設定してください。例えば、1行目の背景が青、2行目の背景が白の場合、奇数行は青、偶数行は白の背景で出力されます。または、テーブルデザインより書式を設定します。
画像 (会社ロゴ・印影など)
テンプレートファイルに会社ロゴなどの画像を含めることができます。画像の考慮事項を以下に示します。
オブジェクトは不可
図形やテキストボックスなどのオブジェクトは対応していません。オブジェクトが出力されない、背景色が正しく出力されない、出力に時間がかかるなどの問題があります。オブジェクトを右クリックし、「図として保存」より画像に保存し、オブジェクトを画像に差し替えてください。
文字の上に画像は不可
文字の上に画像を重ねて出力することはできません。以下の手順により、文字+画像のキャプチャ画像をテンプレートに設定してください。
- 手動でWordテンプレートファイルをPDFで保存
- PDFを開き、対象の文字と画像を200~400%に拡大し、スクリーンキャプチャを画像で保存
- 画像をテンプレートに挿入
*キャプチャ取得時、原寸では文字や画像がぼやけるため拡大して取得します。但し、画像サイズが大きすぎると出力エラーになるため、適宜拡大率を調整してください。
トラブルシューティング
行間が広くPDFに出力されます。
Wordテンプレートの「段落」>「インデントと行間隔」の「1ページの行数を指定時に文字をグリッド線に合わせる」をチェックオフにしてください。チェックオンのとき、行間がかなり広く出力されます。チェックオフ時、Wordテンプレートの行間よりPDFは少し狭く出力されます。
1ページのテンプレートが、2ページのPDFで出力されます。
Wordテンプレートの「段落」>「インデントと行間隔」の「1ページの行数を指定時に文字をグリッド線に合わせる」をチェックオフにしてください。チェックオンのとき、行間がかなり広く出力されます。チェックオフ時、Wordテンプレートの行間よりPDFは少し狭く出力されます。
レイアウトが崩れてPDFに出力されます。
PDF出力には対応していないパターンが考えられます。以下をご確認ください。
- Wordのタブによる空白スペースはサポートされません。
- 表を左右に並べたり、表の横に文字を表示することはできません。左右で異なるレイアウトの場合、一つの表を作成し、セル分割、表罫線の表示・非表示により設定してください。
- 他のアプリケーションからコピーして貼り付けた表は、出力時にレイアウトが崩れる場合があります。コピーしたレイアウトが崩れる場合、テンプレートファイルより新規で表を作成してください。
- 図形やテキストボックスなどのオブジェクトはサポートされません。
- 文字の上に画像を重ねて出力することはできません。手動でWordテンプレートファイルをPDFで保存後、対象の文字と画像を200~400%に拡大し、スクリーンキャプチャを保存します。保存した画像をテンプレートに設定してください。
表に余分な罫線がPDFに表示されます。
該当の罫線の色を白に設定してください。アプリケーションでは、SalesforceのVisualforceのPDF生成機能を利用してHtml→PDF化しており、Html上では正しく表示されるものの、VisualforceでPDF変換時、期待通りならない場合があります。Visualforceの仕様上によるものとなりますので、対応不可となります。
表の罫線が改ページの区切りで切れてPDF出力されます。
こちらは仕様となります。SalesforceのVisualforceのPDF生成機能によりPDF出力しており、改ページ位置はVisualforceの機能で自動判定されます。自動判定時、改ページ間の表の罫線出力はアプリケーションでの調整は不可となります。
Office File Creator Proでは、設定により罫線が切れることなく出力されます。
表の行の高さが低くPDFに出力されます。
テンプレートの表のプロパティを設定してください。
- 表のプロパティより行の高さを指定してください。行高さが指定されていない場合、大幅に異なる高さで出力される場合があります。
- 表のプロパティより行の高さの数値を大きくしてください。テンプレートと実際の出力は全く同じになるものではないため、出力結果を確認し、数値を調整してください。
- セルが空白行で、表のプロパティの行の高さで変更されない場合、改行を入力してください。
表の文字が中央揃え(垂直方向)にならず、下揃えでPDF出力されます。
テンプレートの表のプロパティと段落を設定してください。
- 表のプロパティ>セルタブより、垂直方向の配置を中央揃えに設定
- 段落>インデントと行間隔タブより、行間を1行に設定
表の文字が下揃えにならず、中央揃え(垂直方向)でPDF出力されます。
テンプレートの表のプロパティと段落を設定してください。
- 表のプロパティ>セルタブより、垂直方向の配置を下揃えに設定
- 段落>インデントと行間隔タブより、行間を固定値にし、間隔の数値を適宜調整
表内の差し込み項目が折り返されず、列が横に伸びてしまいます。
表のプロパティ>表タブ内のオプションより、「自動的にセルのサイズを変更する」をチェックオフにしてください。
文字が下の表の罫線に重なってPDF出力されます。
段落>インデントと行間隔タブより、行間を1行に設定してください。
文字がずれてPDF出力されます。
PDF出力には対応していないパターンが考えられます。以下をご確認ください。
- Wordのタブによる空白スペースはサポートされません。文字の開始位置を設定する場合、表に文字を配置し、表罫線を非表示にしてください。
- 表を左右に並べたり、表の横に文字を表示することはできません。左右で異なるレイアウトの場合、一つの表を作成し、セル分割、表罫線の表示・非表示により設定してください。
- 他のアプリケーションからコピーして貼り付けた表は、出力時にレイアウトが崩れる場合があります。コピーしたレイアウトが崩れる場合、テンプレートファイルより新規で表を作成してください。
- 図形やテキストボックスなどのオブジェクトはサポートされません。
- 文字の上に画像を重ねて出力することはできません。手動でWordテンプレートファイルをPDFで保存後、対象の文字と画像を200~400%に拡大し、スクリーンキャプチャを保存します。保存した画像をテンプレートに設定してください。
文字の上に重ねた印影画像が、PDFではずれて出力されます。
文字の上に画像を重ねて出力することはできません。以下の手順により、文字+画像のキャプチャ画像をテンプレートに設定してください。
- 手動でWordテンプレートファイルをPDFで保存
- PDFを開き、対象の文字と画像を200~400%に拡大し、スクリーンキャプチャを画像で保存
- 画像をテンプレートに挿入
*キャプチャ取得時、原寸では文字や画像がぼやけるため拡大して取得します。但し、画像サイズが大きすぎると出力エラーになるため、適宜拡大率を調整してください。
会社のロゴ画像がPDFに出力されません。
画像ではなく、オブジェクトの可能性があります。図形やテキストボックスなどのオブジェクトはサポートされません。オブジェクトを右クリックし、「図として保存」より画像に保存し、オブジェクトを画像に置き換えてください。
テキストボックス・図形がPDFに出力されません。
図形やテキストボックスなどのオブジェクトは、PDF出力に対応していません。
透かし文字がPDFに出力されません。
Wordテンプレートの透かし文字は、PDF出力に対応していません。
日本語の文字がPDFに出力されません。
OFC_Templateレコードの「PDFに全角文字を含む」、「PDFデフォルトフォント」項目を確認してください。日本語の出力は、「PDFに全角文字を含む」が"含む"、「PDFデフォルトフォント」が"Arial Unicode MS"が選択されている必要があります。または、出力文字が外字であることが考えられます。外字の出力は対応していません。
「内部サーバーエラーが発生しました。」が表示されます。
OFC_Templateレコードページの「PDFプレビュー」ボタンよりプレビュー画面のエラーメッセージをご確認ください。プレビューの場合、より詳細なエラーメッセージが表示されます。
Ver.2では、PDFのエラー発生時、「内部サーバーエラーが発生しました。」のエラーメッセージは表示されません。プレビューを表示しなくともエラーの詳細が表示されますので、Ver.2のご利用をご検討ください。
「common.apex.runtime.impl.ExecutionException: id:xxxx Attempt to de-reference a null object: execute=write:curElem=r row=4」が表示されます。
アプリケーションでは対応していないテンプレートパターンが考えられます。対応方法としては以下があげられます。
テキストのフォントを「標準」に変更する
レイアウトの複雑な個所をシンプルなもの変更にする
図形を削除する
「common.apex.runtime.impl.ExecutionException: id: xxxxx Invalid integer: 0.99999..」が表示されます。
テンプレートファイルがMicrosoft Officeデスクトップ版以外で作成されている可能性があります。テンプレートファイルはMicrosoft Officeデスクトップ版で作成してください。Googleドキュメント等、他のアプリケーションで作成されたテンプレートファイルは、対応していません。
参考