リンクをクリップボードにコピー
コピー完了
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帳票を実現する事は可能でしょうか?
自己レス
ちなみに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 + "日";
とか?すれば良いと思います
日付データが無い場合の処理はしないとアレだけど
日付カスタムフォーマット
リンクをクリップボードにコピー
コピー完了
データのマージ方法にもよりますが
日付のフォームフォーマットはマージ時にエラーになる場合もあります。
フォームのフォーマットについてですね
フォームの入力は2種類考え方があって
A:PDFを開いて入力する場合
B:データを入れる(差し込む場合や計算結果を入れる場合)
▼A:入力する場合は、数値も日付もフォーマットが反映されますし
フォーマット指定する事で
他の形式で入力出来ないようにする事も可能ですので
問題ありません
▼B:データを入れる
データの代入方法にもよりますが
数値の3桁カンマはテキストフィールドのフォーマットが反映されます。
が
日付は別で
フォーマットで指定した以外の値が来るとエラーになると思います
(少なくともAcrobat上でデータをマージする場合は)
Javaascript表記のフォーマットを使用する必要があるか?と思います。
フォームにデータをマージした後にフラット(フォームを統合)しないで
配布等する場合には
これが面倒で
Javaascript表記のフォーマットを使用した場合
Adobe独自の拡張もありますので
ブラウザで表示した場合に意図しない表記になったりする(場合もある)
わけで
留意が必要です。
可能なら
yyyyMMdd をyyyy年MM月dd日 に変換してから
流し込んだ方が良いかなぁ?と思います。
Javascriptのフォームのフォーマットを使用する場合は
フォームの統合(フラット)が必須かな
データが無しの場合の処理とか面倒だし…
商用でデータ件数が多いならPDFlibとか使った方が良いかもしれません。
参考まで
リンクをクリップボードにコピー
コピー完了
自己レス
ちなみに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 + "日";
とか?すれば良いと思います
日付データが無い場合の処理はしないとアレだけど
日付カスタムフォーマット
リンクをクリップボードにコピー
コピー完了
@Quick Timer さん
ご丁寧にコード記載(画面キャプチャを含む)まで回答して頂き、感謝しております。
ご回答の例を考慮して、実装してみます。
有り難うございました。