.NET'te JavaScript Uzantılarıyla Nasıl Çalışılır

.NET'te JavaScript Uzantılarıyla Nasıl Çalışılır

Aspose.PDF FOSS for .NET, PDF JavaScript AF_Date_Format, AF_Number_Format ve AF_Percent_Format işlevlerinin sunucu tarafı uygulamalarını FieldDateTimeFormatter, FieldNumberCurrencyFormatter ve FieldNumberPercentFormatter sınıfları aracılığıyla içerir. Paketi dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha ile kurun ve bu sınıfları JavaScript motoru gerektirmeden sunucuda AcroForm alan değerlerini biçimlendirmek için kullanın.

Adım Adım Kılavuz

Adım 1: Paketi Yükleyin

Aspose.PDF FOSS’yi projenize ekleyin:

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

Adım 2: Gerekli Sınıfları İçe Aktarın

using Aspose.Pdf.Annotations.JavascriptExtensions;

Adım 3: Tarih/Saat Alanı Değerini Biçimlendir

FieldDateTimeFormatter.Format(dateFormat, dateValue) ham bir tarih dizesini Acrobat tarzı tarih biçim kalıbına göre dönüştürür. Bu, PDF JavaScript AF_Date_Format işlevine karşılık gelir.

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

dateFormat parametresi Acrobat tarih formatı belirteçlerini (ör. mm, dd, yyyy, HH, MM) kullanır. Girdi dateValue ayrıştırılamadığında, yöntem boş bir dize döndürür.


Adım 4: Sayısal Alanı Para Birimi Olarak Biçimlendir

FieldNumberCurrencyFormatter.Format(precision, sepStyle, negStyle, currencySymbol, isPrependCurrency, fieldValue) sayısal bir dizeyi para birimi değeri olarak biçimlendirir. Bu, PDF JavaScript AF_Number_Format işlevine karşılık gelir.

var currencyFormatter = new FieldNumberCurrencyFormatter();
string formatted = currencyFormatter.Format(
    precision: 2,
    sepStyle: 0,
    negStyle: 0,
    currencySymbol: "$",
    isPrependCurrency: true,
    fieldValue: "1234.5");
  • precision - ondalık basamak sayısı
  • sepStyle - binlik ayırıcı stili (0 = virgül, 1 = nokta, 2 = yok)
  • negStyle - negatif sayı stili (0 = parantez, 1 = eksi ön ek)
  • currencySymbol - para birimi simgesi dizesi
  • isPrependCurrency - sembolü sayının önüne koymak için true
  • fieldValue - biçimlendirilecek ham sayısal dize

Adım 5: Sayısal Alanı Yüzde Olarak Biçimlendir

FieldNumberPercentFormatter.Format(precision, sepStyle, isPrependPercent, fieldValue) sayısal bir dizeyi yüzde olarak biçimlendirir, ham değeri önce 100 ile çarpar. Bu, PDF JavaScript AF_Percent_Format işlevine karşılık gelir.

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

Parametreler:

  • precision - ondalık nokta sonrası ondalık basamak sayısı
  • sepStyle - binlik ayırıcı stili (0 = virgül, 1 = nokta, 2 = yok)
  • isPrependPercent - % simgesini başa eklemek için true, sona eklemek için false
  • fieldValue - ham sayısal dize (formatlayıcı 100 ile çarpar)

Yaygın Sorunlar ve Çözümler

FieldDateTimeFormatter boş dize döndürür
Bu, dateValue argümanının dateFormat içindeki tarih desenine göre ayrıştırılamadığı durumlarda meydana gelir. Acrobat tarih belirteçleri .NET DateTime biçim dizesinden farklıdır.

FieldNumberCurrencyFormatter yanlış ondalık ayırıcı üretiyor
sepStyle parametresi binlik ayırıcıyı kontrol eder. Binlik ayırıcı olarak nokta kullanmak için sepStyle: 1 gönderin.

FieldNumberPercentFormatter çıktısı 100 kat fazla
Biçimlendirici, giriş değerini 100 ile çarpar.
Eğer fieldValue zaten bir yüzdeyi temsil ediyorsa (ör. “87.5” yerine “0.875”), Format çağrısı yapmadan önce 100 ile bölün.

Paket kurulumundan sonra ad alanı bulunamadı
net8.0 veya daha yeni bir sürümü hedeflediğinizden emin olun. JavascriptExtensions ad alanı yalnızca Aspose.Pdf.Foss paketinde mevcuttur.

Boş fieldValue üzerinde NullReferenceException
null veya boş bir dizeyi fieldValue olarak geçirmek bir ayrıştırma hatasına neden olur. Format’ı çağırmadan önce girişi doğrulayın.

Sıkça Sorulan Sorular

“corresponds to AF_Date_Format” ne anlama geliyor?

PDF AcroForm JavaScript, tarih alanları için yerleşik biçimlendirme işlevi olarak AF_Date_Format’i kullanır. FieldDateTimeFormatter aynı biçimlendirme mantığını .NET yönetilen kodda yeniden üretir, böylece JavaScript çalıştırmadan aynı alan biçim dizesini uygulayabilirsiniz.

Bu biçimlendiricileri bir PDF belgesi bağlamı dışında kullanabilir miyim?

Evet. FieldDateTimeFormatter, FieldNumberCurrencyFormatter ve FieldNumberPercentFormatter, Document örneğine bağımlılığı olmayan basit sınıflardır. Onları herhangi bir .NET 8+ bağlamında yardımcı biçimlendiriciler olarak kullanabilirsiniz.

FieldNumberCurrencyFormatter ile FieldNumberPercentFormatter arasındaki fark nedir?

FieldNumberCurrencyFormatter bir sayıyı çarpma yapmadan para miktarı olarak biçimlendirir. FieldNumberPercentFormatter girdiyi 100 ile çarpar ve yüzde işareti ekler ya da başına ekler.

Birden fazla biçimlendiriciyi zincirleme bir yol var mı?

Yerleşik zincirleme sağlanmaz. Biçimlendiricileri kod içinde sıralı olarak uygulayın.

Bu sınıfları kullanmak için tam PDF belgesine ihtiyacım var mı?

Hayır. Biçimlendiriciler düz dizeler üzerinde çalışırlar ve biçimlendirilmiş dizeler döndürürler. Açık bir Document örneği gerektirmezler.

Ayrıca Bakınız

 Türkçe