Skip to main content
The Laughing Man
Participant
February 21, 2023
Answered

差し込み値に書式を反映させてPDF帳票を実現する事は可能でしょうか?

  • February 21, 2023
  • 1 reply
  • 910 views

Adobe Acrobat Document (.pdf) で作成した指定したPDFファイルの指定したフォームフィールドに値を差し込む処理を考えています。
PDF フォームフィールドのプロパティを参照すると「数値」の説明では「桁区切りのスタイル」でコンマやピリオドの配置を設定が可能に思えました。
差し込み値(hoge)=123456(数字型)を差し込みで、PDFのフォームフィールド(フィールド名=fuga)の書式に「3桁カンマ区切り」を設定した場合、PDF帳票は「123,456」と表示される認識です。
同様に日付項目も、差し込み値(piyo)=2023年2月21日(Date型)を差し込みで、PDFのフォームフィールド(フィールド名=hogera)の書式に「日付(yyyy年mm月dd日)」を設定した場合、PDF帳票は「2023年02月21日」と表示される認識です。
上記の手法で差し込み値に書式を反映させてPDF帳票を実現する事は可能でしょうか?

This topic has been closed for replies.
Correct answer Quick Timer

自己レス

ちなみにJavascriptのカスタム日付フォーマットを使う場合は

var strDateNo = event.value;
var strYear = strDateNo.substr( 0, 4 );
var strMon = strDateNo.substr( 4, 2 );
var strDay = strDateNo.substr( 6, 2 );
event.value = "西暦" + strYear + "年" + strMon + "月" + strDay + "日";

とか?すれば良いと思います
日付データが無い場合の処理はしないとアレだけど

 

1 reply

Quick Timer
Inspiring
February 21, 2023

 

データのマージ方法にもよりますが
日付のフォームフォーマットはマージ時にエラーになる場合もあります。

 

 

フォームのフォーマットについてですね
フォームの入力は2種類考え方があって
A:PDFを開いて入力する場合
B:データを入れる(差し込む場合や計算結果を入れる場合)

▼A:入力する場合は、数値も日付もフォーマットが反映されますし
フォーマット指定する事で
他の形式で入力出来ないようにする事も可能ですので
問題ありません

▼B:データを入れる
データの代入方法にもよりますが
数値の3桁カンマはテキストフィールドのフォーマットが反映されます。

日付は別で
フォーマットで指定した以外の値が来るとエラーになると思います
(少なくともAcrobat上でデータをマージする場合は)
Javaascript表記のフォーマットを使用する必要があるか?と思います。
フォームにデータをマージした後にフラット(フォームを統合)しないで
配布等する場合には
これが面倒で

Javaascript表記のフォーマットを使用した場合
Adobe独自の拡張もありますので
ブラウザで表示した場合に意図しない表記になったりする(場合もある)
わけで
留意が必要です。

可能なら
yyyyMMdd をyyyy年MM月dd日 に変換してから
流し込んだ方が良いかなぁ?と思います。
Javascriptのフォームのフォーマットを使用する場合は
フォームの統合(フラット)が必須かな
データが無しの場合の処理とか面倒だし…

商用でデータ件数が多いならPDFlibとか使った方が良いかもしれません。

参考まで

Quick Timer
Quick TimerCorrect answer
Inspiring
February 21, 2023

自己レス

ちなみにJavascriptのカスタム日付フォーマットを使う場合は

var strDateNo = event.value;
var strYear = strDateNo.substr( 0, 4 );
var strMon = strDateNo.substr( 4, 2 );
var strDay = strDateNo.substr( 6, 2 );
event.value = "西暦" + strYear + "年" + strMon + "月" + strDay + "日";

とか?すれば良いと思います
日付データが無い場合の処理はしないとアレだけど

 

The Laughing Man
Participant
February 22, 2023

@Quick Timer  さん
ご丁寧にコード記載(画面キャプチャを含む)まで回答して頂き、感謝しております。
ご回答の例を考慮して、実装してみます。
有り難うございました。