終了

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

New Here ,
Feb 20, 2023 Feb 20, 2023

リンクをクリップボードにコピー

コピー完了

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帳票を実現する事は可能でしょうか?

キーワード
PDF forms , PDF の編集と変換

表示

330

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines

correct answers 1 件の正解

ファン , Feb 21, 2023 Feb 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 + "日";

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

日付カスタムフォーマット日付カスタムフォーマット

 

投票

翻訳

翻訳
ファン ,
Feb 20, 2023 Feb 20, 2023

リンクをクリップボードにコピー

コピー完了

 

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

 

 

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

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

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

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

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

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

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

参考まで

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
ファン ,
Feb 21, 2023 Feb 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 + "日";

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

日付カスタムフォーマット日付カスタムフォーマット

 

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines
New Here ,
Feb 21, 2023 Feb 21, 2023

リンクをクリップボードにコピー

コピー完了

最新

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

投票

翻訳

翻訳

レポート

レポート
コミュニティガイドライン
他のユーザーへの思いやりを持ち、敬意を払いましょう。コンテンツの出典を明記し、投稿する前に内容が重複していないか検索してください。 さらに詳しく
community guidelines