PDF出力時のテンプレート作成のコツ

本記事では、Office File CreatorPDF出力時のWordテンプレート作成のコツをご紹介します。

ページ番号/総ページ数を出力

ページ番号、総ページ数は、以下の差し込み項目をフッターまたはヘッダーに使用してください。Wordのフィールドコードはサポートされません。

ページ番号・・・{!pagenumber()}

総ページ数・・・{!pagecount()}

 

行間の設定

Wordテンプレートの「段落」>「インデントと行間隔」の「1ページの行数を指定時に文字をグリッド線に合わせる」をチェックオフにしてください。チェックオンのとき、行間がかなり広く出力されます。チェックオフ時、Wordテンプレートの行間よりPDFは少し狭く出力されます。

  • 既存のテンプレートの内容を「Ctrl+A」ですべて選択し、段落よりチェックオフにします。
  • 標準スタイルなど、使用するスタイルの段落よりチェックオフにします。

 

表内の文字位置(中央揃え・下揃え)

セル内の文字の垂直方向位置を設定時、表プロパティと段落を設定してください。表プロパティのみの設定の場合、意図した位置で出力されない場合があります。

 

セル内の文字を中央揃え(垂直方向)

  • 表プロパティ>セルタブより、垂直方向の配置を中央揃えに設定
  • 段落>インデントと行間隔タブより、行間を1行に設定

 

セル内の文字を下揃え

  • 表プロパティ>セルタブより、垂直方向の配置を下揃えに設定
  • 段落>インデントと行間隔タブより、行間を固定値にし、間隔の数値を適宜調整

 

表内の差し込み項目設定

表のプロパティ>表タブ内のオプションより、「自動的にセルのサイズを変更する」をチェックオフにしてください。

 

「自動的にセルのサイズを変更する」がチェックオン

差し込み項目が横に伸びて、正しい列幅が表示されません。

 

「自動的にセルのサイズを変更する」がチェックオフ

設定した列幅が正しく表示されます。

 

左右で異なるレイアウト

左右で異なるレイアウトの場合、一つの表を作成し、セル分割、表罫線の表示/非表示により設定してください。表を左右に並べたり、表の横に文字を表示することはできません。

 

レイアウト例(セル分割・罫線表示/非表示)

 

出力結果

 

縞模様レイアウト

子オブジェクトの表を縞模様で出力する場合、子オブジェクト行を2行設定してください。例えば、1行目の背景が青、2行目の背景が白の場合、奇数行は青、偶数行は白の背景で出力されます。または、テーブルデザインより書式を設定します。

 

画像 (会社ロゴ・印影など)

テンプレートファイルに会社ロゴなどの画像を含めることができます。画像の考慮事項を以下に示します。

 

オブジェクトは不可

図形やテキストボックスなどのオブジェクトは対応していません。オブジェクトが出力されない、背景色が正しく出力されない、出力に時間がかかるなどの問題があります。オブジェクトを右クリックし、「図として保存」より画像に保存し、オブジェクトを画像に差し替えてください。

 

文字の上に画像は不可

文字の上に画像を重ねて出力することはできません。以下の手順により、文字+画像のキャプチャ画像をテンプレートに設定してください。

  1. 手動でWordテンプレートファイルをPDFで保存
  2. PDFを開き、対象の文字と画像を200400%に拡大し、スクリーンキャプチャを画像で保存
  3. 画像をテンプレートに挿入

*キャプチャ取得時、原寸では文字や画像がぼやけるため拡大して取得します。但し、画像サイズが大きすぎると出力エラーになるため、適宜拡大率を調整してください。

 

トラブルシューティング

行間が広くPDFに出力されます。

Wordテンプレートの「段落」>「インデントと行間隔」の「1ページの行数を指定時に文字をグリッド線に合わせる」をチェックオフにしてください。チェックオンのとき、行間がかなり広く出力されます。チェックオフ時、Wordテンプレートの行間よりPDFは少し狭く出力されます。

 

1ページのテンプレートが、2ページのPDFで出力されます。

Wordテンプレートの「段落」>「インデントと行間隔」の「1ページの行数を指定時に文字をグリッド線に合わせる」をチェックオフにしてください。チェックオンのとき、行間がかなり広く出力されます。チェックオフ時、Wordテンプレートの行間よりPDFは少し狭く出力されます。

 

レイアウトが崩れてPDFに出力されます。

PDF出力には対応していないパターンが考えられます。以下をご確認ください。

  • Wordのタブによる空白スペースはサポートされません。
  • 表を左右に並べたり、表の横に文字を表示することはできません。左右で異なるレイアウトの場合、一つの表を作成し、セル分割、表罫線の表示・非表示により設定してください。
  • 他のアプリケーションからコピーして貼り付けた表は、出力時にレイアウトが崩れる場合があります。コピーしたレイアウトが崩れる場合、テンプレートファイルより新規で表を作成してください。
  • 図形やテキストボックスなどのオブジェクトはサポートされません。
  • 文字の上に画像を重ねて出力することはできません。手動でWordテンプレートファイルをPDFで保存後、対象の文字と画像を200400%に拡大し、スクリーンキャプチャを保存します。保存した画像をテンプレートに設定してください。

 

表に余分な罫線がPDFに表示されます。

該当の罫線の色を白に設定してください。アプリケーションでは、SalesforceVisualforcePDF生成機能を利用してHtmlPDF化しており、Html上では正しく表示されるものの、VisualforcePDF変換時、期待通りならない場合があります。Visualforceの仕様上によるものとなりますので、対応不可となります。

 

表の罫線が改ページの区切りで切れてPDF出力されます。

こちらは仕様となります。SalesforceVisualforcePDF生成機能によりPDF出力しており、改ページ位置はVisualforceの機能で自動判定されます。自動判定時、改ページ間の表の罫線出力はアプリケーションでの調整は不可となります。

Office File Creator Proでは、設定により罫線が切れることなく出力されます。

PDFの改ページ設定

 

表の行の高さが低くPDFに出力されます。

テンプレートの表のプロパティを設定してください。

  • 表のプロパティより行の高さを指定してください。行高さが指定されていない場合、大幅に異なる高さで出力される場合があります。
  • 表のプロパティより行の高さの数値を大きくしてください。テンプレートと実際の出力は全く同じになるものではないため、出力結果を確認し、数値を調整してください。
  • セルが空白行で、表のプロパティの行の高さで変更されない場合、改行を入力してください。

 

表の文字が中央揃え(垂直方向)にならず、下揃えでPDF出力されます。

テンプレートの表のプロパティと段落を設定してください。

  • 表のプロパティ>セルタブより、垂直方向の配置を中央揃えに設定
  • 段落>インデントと行間隔タブより、行間を1行に設定

 

表の文字が下揃えにならず、中央揃え(垂直方向)PDF出力されます。

テンプレートの表のプロパティと段落を設定してください。

  • 表のプロパティ>セルタブより、垂直方向の配置を下揃えに設定
  • 段落>インデントと行間隔タブより、行間を固定値にし、間隔の数値を適宜調整

 

表内の差し込み項目が折り返されず、列が横に伸びてしまいます。

表のプロパティ>表タブ内のオプションより、「自動的にセルのサイズを変更する」をチェックオフにしてください。

 

文字が下の表の罫線に重なってPDF出力されます。

段落>インデントと行間隔タブより、行間を1行に設定してください。

 

文字がずれてPDF出力されます。

PDF出力には対応していないパターンが考えられます。以下をご確認ください。

  • Wordのタブによる空白スペースはサポートされません。文字の開始位置を設定する場合、表に文字を配置し、表罫線を非表示にしてください。
  • 表を左右に並べたり、表の横に文字を表示することはできません。左右で異なるレイアウトの場合、一つの表を作成し、セル分割、表罫線の表示・非表示により設定してください。
  • 他のアプリケーションからコピーして貼り付けた表は、出力時にレイアウトが崩れる場合があります。コピーしたレイアウトが崩れる場合、テンプレートファイルより新規で表を作成してください。
  • 図形やテキストボックスなどのオブジェクトはサポートされません。
  • 文字の上に画像を重ねて出力することはできません。手動でWordテンプレートファイルをPDFで保存後、対象の文字と画像を200400%に拡大し、スクリーンキャプチャを保存します。保存した画像をテンプレートに設定してください。

 

文字の上に重ねた印影画像が、PDFではずれて出力されます。

文字の上に画像を重ねて出力することはできません。以下の手順により、文字+画像のキャプチャ画像をテンプレートに設定してください。

  1. 手動でWordテンプレートファイルをPDFで保存
  2. PDFを開き、対象の文字と画像を200400%に拡大し、スクリーンキャプチャを画像で保存
  3. 画像をテンプレートに挿入

*キャプチャ取得時、原寸では文字や画像がぼやけるため拡大して取得します。但し、画像サイズが大きすぎると出力エラーになるため、適宜拡大率を調整してください。

 

会社のロゴ画像が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ドキュメント等、他のアプリケーションで作成されたテンプレートファイルは、対応していません。

 

参考

PDF出力

 

 

タイトルとURLをコピーしました