Cara Bekerja dengan Sambungan JavaScript dalam .NET

Cara Bekerja dengan Sambungan JavaScript dalam .NET

Aspose.PDF FOSS untuk .NET termasuk pelaksanaan sisi pelayan fungsi PDF JavaScript AF_Date_Format, AF_Number_Format, dan AF_Percent_Format melalui kelas FieldDateTimeFormatter, FieldNumberCurrencyFormatter, dan FieldNumberPercentFormatter. Pasang pakej dengan dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha dan gunakan kelas ini untuk memformat nilai medan AcroForm pada pelayan tanpa memerlukan enjin JavaScript.

Panduan Langkah demi Langkah

Langkah 1: Pasang Pakej

Tambah Aspose.PDF FOSS ke projek anda:

dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha

Langkah 2: Import Kelas yang Diperlukan

using Aspose.Pdf.Annotations.JavascriptExtensions;

Langkah 3: Format Nilai Medan Tarikh/Masa

FieldDateTimeFormatter.Format(dateFormat, dateValue) menukar rentetan tarikh mentah mengikut corak format tarikh gaya Acrobat. Ini sepadan dengan fungsi PDF JavaScript AF_Date_Format.

string formatted = FieldDateTimeFormatter.Format("mm/dd/yyyy", "2026-06-11");

Parameter dateFormat menggunakan token format tarikh Acrobat (contohnya, mm, dd, yyyy, HH, MM). Apabila input dateValue tidak dapat diparse, kaedah mengembalikan string kosong.


Langkah 4: Format Medan Numerik sebagai Mata Wang

FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) memformat rentetan nombor sebagai nilai mata wang. Ini sepadan dengan fungsi 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 - bilangan tempat perpuluhan
  • sepStyle - gaya pemisah ribuan (0 = koma, 1 = titik, 2 = tiada)
  • negStyle - gaya nombor negatif (0 = kurungan, 1 = awalan tolak)
  • currencySymbol - rentetan simbol mata wang
  • isPrependCurrency - benar untuk meletakkan simbol sebelum nombor
  • fieldValue - rentetan angka mentah untuk diformat

Langkah 5: Format Medan Numerik sebagai Peratus

FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) memformat rentetan numerik sebagai peratus, dengan mendarab nilai mentah dengan 100 terlebih dahulu. Ini sepadan dengan fungsi PDF JavaScript AF_Percent_Format.

var percentFormatter = new FieldNumberPercentFormatter();
string formatted = percentFormatter.Format(
    precision: 1,
    sepStyle: 0,
    isPrependPercent: false,
    fieldValue: "0.875");

Parameters:

  • precision - bilangan tempat perpuluhan selepas titik perpuluhan
  • sepStyle - gaya pemisah ribuan (0 = koma, 1 = titik, 2 = tiada)
  • isPrependPercent - true untuk menambah simbol % di depan, false untuk menambah di belakang
  • fieldValue - rentetan angka mentah (formatter mendarabkan dengan 100)

Masalah Umum dan Penyelesaian

FieldDateTimeFormatter mengembalikan string kosong
Ini berlaku apabila argumen dateValue tidak dapat diurai oleh pola tarikh dalam dateFormat. Token tarikh Acrobat berbeza daripada rentetan format .NET DateTime.

FieldNumberCurrencyFormatter menghasilkan pemisah perpuluhan yang salah Parameter sepStyle mengawal pemisah ribuan. Untuk menggunakan titik sebagai pemisah ribuan, hantarkan sepStyle: 1.

Output FieldNumberPercentFormatter terlalu besar 100x
Formatter menggandakan nilai input dengan 100. Jika fieldValue anda sudah mewakili peratusan (contohnya, “87.5” bukannya “0.875”), bahagi dengan 100 sebelum memanggil Format.

Namespace not found after package install
Pastikan anda menyasarkan net8.0 atau lebih baru. Ruang nama JavascriptExtensions hanya tersedia dalam pakej Aspose.Pdf.Foss.

NullReferenceException pada fieldValue kosong
Melewatkan null atau rentetan kosong sebagai fieldValue akan menyebabkan pengecualian parse. Sahkan input sebelum memanggil Format.

Soalan Lazim

Apakah maksud “corresponds to AF_Date_Format”?

PDF AcroForm JavaScript menggunakan AF_Date_Format sebagai fungsi pemformatan terbina dalam untuk medan tarikh. FieldDateTimeFormatter meniru logik pemformatan yang sama dalam kod terurus .NET supaya anda boleh menggunakan rentetan format medan yang sama tanpa melaksanakan JavaScript.

Bolehkah saya menggunakan pemformat ini di luar konteks dokumen PDF?

Ya. FieldDateTimeFormatter, FieldNumberCurrencyFormatter, dan FieldNumberPercentFormatter adalah kelas biasa tanpa kebergantungan pada contoh Document. Anda boleh menggunakannya dalam apa-apa konteks .NET 8+ sebagai pemformat utiliti.

Apakah perbezaan antara FieldNumberCurrencyFormatter dan FieldNumberPercentFormatter?

FieldNumberCurrencyFormatter memformat nombor sebagai jumlah wang tanpa pendaraban. FieldNumberPercentFormatter mendarab input dengan 100 dan menambah atau meletakkan simbol peratus di hadapan atau di belakang.

Adakah cara untuk menyambungkan beberapa penformat?

Tiada rantaian terbina dalam disediakan. Gunakan penformat secara berurutan dalam kod.

Adakah saya memerlukan dokumen PDF penuh untuk menggunakan kelas‑kelas ini?

Tidak. Formatter beroperasi pada rentetan biasa dan mengembalikan rentetan yang diformat. Mereka tidak memerlukan contoh Document yang terbuka.

Lihat Juga

 Bahasa Melayu