כיצד לעבוד עם הרחבות JavaScript ב-.NET
Aspose.PDF FOSS for .NET כולל מימושים בצד השרת של פונקציות ה‑JavaScript של PDF AF_Date_Format, AF_Number_Format, ו‑AF_Percent_Format דרך המחלקות FieldDateTimeFormatter, FieldNumberCurrencyFormatter, ו‑FieldNumberPercentFormatter. התקן את החבילה עם dotnet add package Aspose.Pdf.Foss --version 0.1.0-alpha והשתמש במחלקות אלו לעיצוב ערכי שדות AcroForm בצד השרת ללא צורך במנוע JavaScript.
מדריך שלב‑אחר‑שלב
שלב 1: התקן את החבילה
הוסף Aspose.PDF FOSS לפרויקט שלך:
dotnet add package Aspose.Pdf.Foss --version 0.1.0-alphaשלב 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 שונים ממחרוזות פורמט DateTime של .NET.
FieldNumberCurrencyFormatter מייצר מפריד עשרוני שגוי
הפרמטר sepStyle שולט במפריד אלפים. כדי להשתמש בנקודה כמפריד אלפים, העבר sepStyle: 1.
FieldNumberPercentFormatter output is 100x too large
המתאם מכפיל את ערך הקלט ב‑100. אם ה‑fieldValue שלך כבר מייצג אחוז (למשל, “87.5” במקום “0.875”), חלק ב‑100 לפני קריאה ל‑Format.
המרחב שם לא נמצא לאחר התקנת החבילה
ודא שאתה ממקד ב‑net8.0 או גרסה מאוחרת יותר. מרחב השם JavascriptExtensions זמין רק בחבילה Aspose.Pdf.Foss.
NullReferenceException על fieldValue ריק
העברת 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.