Cara Bekerja dengan Ekstensi JavaScript di .NET

Cara Bekerja dengan Ekstensi JavaScript di .NET

Aspose.PDF FOSS for .NET mencakup implementasi sisi server dari fungsi PDF JavaScript AF_Date_Format, AF_Number_Format, dan AF_Percent_Format melalui kelas FieldDateTimeFormatter, FieldNumberCurrencyFormatter, dan FieldNumberPercentFormatter. Instal paket dengan dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha dan gunakan kelas‑kelas ini untuk memformat nilai bidang AcroForm di server tanpa memerlukan mesin JavaScript.

Panduan Langkah-demi-Langkah

Langkah 1: Instal Paket

Tambahkan Aspose.PDF FOSS ke proyek Anda:

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

Langkah 2: Impor Kelas yang Diperlukan

using Aspose.Pdf.Annotations.JavascriptExtensions;

Langkah 3: Format Nilai Bidang Tanggal/Waktu

FieldDateTimeFormatter.Format(dateFormat, dateValue) mengonversi string tanggal mentah sesuai pola format tanggal gaya Acrobat. Ini sesuai dengan fungsi PDF JavaScript AF_Date_Format.

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

Parameter dateFormat menggunakan token format tanggal Acrobat (mis., mm, dd, yyyy, HH, MM). Ketika input dateValue tidak dapat diparse, metode mengembalikan string kosong.


Langkah 4: Format Field Numerik sebagai Mata Uang

FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) memformat string numerik sebagai nilai mata uang. Ini sesuai 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 - jumlah tempat desimal
  • sepStyle - gaya pemisah ribuan (0 = koma, 1 = titik, 2 = tidak ada)
  • negStyle - gaya angka negatif (0 = tanda kurung, 1 = awalan minus)
  • currencySymbol - string simbol mata uang
  • isPrependCurrency - true untuk menempatkan simbol sebelum angka
  • fieldValue - string numerik mentah untuk diformat

Langkah 5: Format Bidang Numerik sebagai Persentase

FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) memformat string numerik sebagai persentase, mengalikan nilai mentah dengan 100 terlebih dahulu. Ini sesuai dengan fungsi PDF JavaScript AF_Percent_Format.

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

Parameter:

  • precision - jumlah tempat desimal setelah titik desimal
  • sepStyle - gaya pemisah ribuan (0 = koma, 1 = titik, 2 = tidak ada)
  • isPrependPercent - true untuk menambahkan simbol % di depan, false untuk menambahkan di belakang
  • fieldValue - string numerik mentah (formatter mengalikan dengan 100)

Masalah Umum dan Solusi

FieldDateTimeFormatter mengembalikan string kosong
Ini terjadi ketika argumen dateValue tidak dapat diparsing oleh pola tanggal di dateFormat. Token tanggal Acrobat berbeda dari string format .NET DateTime.

FieldNumberCurrencyFormatter menghasilkan pemisah desimal yang salah Parameter sepStyle mengontrol pemisah ribuan. Untuk menggunakan titik sebagai pemisah ribuan, berikan sepStyle: 1.

FieldNumberPercentFormatter output terlalu besar 100x
Formatter mengalikan nilai input dengan 100. Jika fieldValue Anda sudah mewakili persentase (misalnya, “87.5” bukan “0.875”), bagi dengan 100 sebelum memanggil Format.

Namespace tidak ditemukan setelah pemasangan paket Pastikan Anda menargetkan net8.0 atau yang lebih baru. Namespace JavascriptExtensions hanya tersedia di paket Aspose.Pdf.Foss.

NullReferenceException pada fieldValue kosong Menyampaikan null atau string kosong sebagai fieldValue akan menyebabkan eksepsi parse. Validasi input sebelum memanggil Format.

Pertanyaan yang Sering Diajukan

Apa arti “corresponds to AF_Date_Format”?

PDF AcroForm JavaScript menggunakan AF_Date_Format sebagai fungsi pemformatan bawaan untuk bidang tanggal. FieldDateTimeFormatter mereplikasi logika pemformatan yang sama dalam kode terkelola .NET sehingga Anda dapat menerapkan string format bidang yang sama tanpa mengeksekusi JavaScript.

Apakah saya dapat menggunakan formatters ini di luar konteks dokumen PDF?

Ya. FieldDateTimeFormatter, FieldNumberCurrencyFormatter, dan FieldNumberPercentFormatter adalah kelas biasa tanpa ketergantungan pada instance Document. Anda dapat menggunakannya dalam konteks .NET 8+ apa pun sebagai formatter utilitas.

Apa perbedaan antara FieldNumberCurrencyFormatter dan FieldNumberPercentFormatter?

FieldNumberCurrencyFormatter memformat angka sebagai jumlah uang tanpa perkalian. FieldNumberPercentFormatter mengalikan input dengan 100 dan menambahkan atau menempatkan simbol persen.

Apakah ada cara untuk menyambungkan beberapa formatter?

Tidak ada chaining bawaan yang disediakan. Terapkan formatter secara berurutan dalam kode.

Apakah saya memerlukan dokumen PDF lengkap untuk menggunakan kelas‑kelas ini?

Tidak. Formatter beroperasi pada string biasa dan mengembalikan string yang diformat. Mereka tidak memerlukan instance Document yang terbuka.

Lihat Juga

 Bahasa Indonesia