.NET で JavaScript 拡張機能を使用する方法
Aspose.PDF FOSS for .NET は、PDF JavaScript AF_Date_Format、AF_Number_Format、および AF_Percent_Format 機能を、FieldDateTimeFormatter、FieldNumberCurrencyFormatter、FieldNumberPercentFormatter クラスを介してサーバー側で実装しています。
dotnet add package Aspose.PDF.FOSSこれらのクラスを使用して、JavaScript エンジンを必要とせずにサーバー上で AcroForm フィールド値をフォーマットします。
ステップバイステップガイド
ステップ 1: パッケージをインストールする
プロジェクトに Aspose.PDF FOSS を追加する:
dotnet add package Aspose.PDF.FOSSステップ 2: 必要なクラスをインポートする
using Aspose.Pdf.Annotations.JavascriptExtensions;ステップ 3: 日付/時刻フィールドの値をフォーマットする
FieldDateTimeFormatter.Format(dateFormat, dateValue) は、Acrobat スタイルの日付フォーマットパターンに従って生の日付文字列を変換します。これは PDF の JavaScript AF_Date_Format 関数に対応しています。
string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");dateFormat パラメータは Acrobat の日付フォーマットトークンを使用します(例: mm, dd, yyyy, HH, MM)。入力 dateValue が解析できない場合、メソッドは空文字列を返します。
ステップ 4: 数値フィールドを通貨としてフォーマットする
FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) は数値文字列を通貨値としてフォーマットします。これは PDF の JavaScript AF_Number_Format 関数に対応しています。
var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
precision: 2,
sepStyle: 0,
negStyle: 0,
currencySymbol: "$",
isPrependCurrency: true,
fieldValue: "1234.5");パラメータ:
precision- 小数点以下の桁数sepStyle- 桁区切り記号の形式 (0 = カンマ, 1 = ピリオド, 2 = なし)negStyle- 負の数の表示形式 (0 = 括弧, 1 = マイナス接頭辞)currencySymbol- 通貨記号文字列isPrependCurrency- true の場合はシンボルを数値の前に置くfieldValue- フォーマットする生の数値文字列
ステップ5: 数値フィールドをパーセンテージとして書式設定
FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) は数値文字列をパーセンテージとしてフォーマットし、最初に生の値に 100 を掛けます。これは PDF の JavaScript AF_Percent_Format 関数に対応します。
var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
precision: 1,
sepStyle: 0,
isPrependPercent: false,
fieldValue: "0.875");パラメータ:
precision- 小数点以下の桁数sepStyle- 千位区切りのスタイル (0 = カンマ, 1 = ピリオド, 2 = なし)isPrependPercent- true の場合は % 記号を前に付け、false の場合は後ろに付けるfieldValue- 生の数値文字列(フォーマッタは 100 倍します)
一般的な問題と対処法
FieldDateTimeFormatter は空文字列を返します これは次の場合に発生します dateValue 引数は日付パターンで解析できません dateFormat. Acrobat の日付トークンは .NET DateTime の書式文字列と異なります。
FieldNumberCurrencyFormatter は誤った小数点区切り文字を生成します この sepStyle パラメータは千位区切り文字を制御します。千位区切り文字としてピリオドを使用するには、次を渡します sepStyle: 1.
FieldNumberPercentFormatter の出力は 100 倍に大きすぎます フォーマッタは入力値に 100 を掛けます。もしあなたの fieldValue すでにパーセンテージを表している場合(例: “87.5” の代わりに “0.875”)、Format を呼び出す前に 100 で除算してください。
パッケージインストール後に名前空間が見つかりません net8.0 以降を対象としていることを確認してください。JavascriptExtensions 名前空間は Aspose.Pdf.Foss パッケージでのみ利用可能です。
空の fieldValue に対する NullReferenceException null または空文字列を渡すと fieldValue パース例外が発生します。Format を呼び出す前に入力を検証してください。
よくある質問
“corresponds to AF_Date_Format” は何を意味しますか?
PDF AcroForm JavaScript は日付フィールドの組み込みフォーマット関数として AF_Date_Format を使用します。FieldDateTimeFormatter は .NET マネージドコードで同じフォーマットロジックを再現するため、JavaScript を実行せずに同じフィールドフォーマット文字列を適用できます。
これらのフォーマッタを PDF 文書のコンテキスト外で使用できますか?
はい。FieldDateTimeFormatter、FieldNumberCurrencyFormatter、およびFieldNumberPercentFormatterは、Documentインスタンスに依存しないプレーンなクラスです。.NET 8+ の任意のコンテキストでユーティリティフォーマッタとして使用できます。
FieldNumberCurrencyFormatter と FieldNumberPercentFormatter の違いは何ですか?
FieldNumberCurrencyFormatter は数値を乗算せずに金額としてフォーマットします。FieldNumberPercentFormatter は入力を 100 倍し、パーセント記号を付加(または前置)します。
複数のフォーマッタをチェーンする方法はありますか?
組み込みのチェーン機能は提供されていません。コード内でフォーマッタを順番に適用してください。
これらのクラスを使用するために完全な PDF ドキュメントが必要ですか?
いいえ。フォーマッタはプレーンな文字列上で動作し、フォーマットされた文字列を返します。Document のオープンインスタンスは必要ありません。