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-alphaLangkah 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 desimalsepStyle- gaya pemisah ribuan (0 = koma, 1 = titik, 2 = tidak ada)negStyle- gaya angka negatif (0 = tanda kurung, 1 = awalan minus)currencySymbol- string simbol mata uangisPrependCurrency- true untuk menempatkan simbol sebelum angkafieldValue- 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 desimalsepStyle- gaya pemisah ribuan (0 = koma, 1 = titik, 2 = tidak ada)isPrependPercent- true untuk menambahkan simbol % di depan, false untuk menambahkan di belakangfieldValue- 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.