טעינת מסמכים עם LoadOptions
טעינת מסמכים עם LoadOptions
מדריך זה מראה כיצד לשלוט בטעינת מסמכים מעבר לנתיב קובץ פשוט או זרם, באמצעות מחלקת LoadOptions. ל-Document יש עומסי בנאים המקבלים מופע של LoadOptions — Document(fileName, loadOptions) ו-Document(stream, loadOptions) — כך שכל ההגדרות המתוארות כאן חלות בזמן הטעינה, לפני שמופיע אובייקט המסמך מוחזר לקוד שלך.
מחלקת LoadOptions
LoadOptions נושא את ההגדרות Aspose.Words ש-FOSS זקוקה להן בזמן טעינת מסמך לתוך אובייקט Document. הבונים שלו כוללים LoadOptions() ללא פרמטרים, LoadOptions(password) לפתיחה ישירה של קובץ מוגן בסיסמה, ו-LoadOptions(loadFormat, password, baseUri) לציון הפורמט במפורש. מעבר ל-Password ו-BaseUri (משמשים לפתרון הפניות יחסיות כגון משאבים מקושרים), LoadOptions חושף Encoding עבור פורמטים מבוססי טקסט, TempFolder לעיבוד מסמכים גדולים, MswVersion לציון איזו גרסת Word חלה על קונבנציות הפורמט, ו-UpdateDirtyFields, IgnoreOleData ו-UseSystemLcid לבקרה מדויקת יותר על התנהגות הטעינה. LoadOptions.FontSettings מאפשר לך לספק FontSettings בזמן הטעינה במקום להגדיר פונטים רק לאחר שהמסמך נטען.
אפשרויות טעינה ספציפיות לפורמט
לחלק מהפורמטים יש תת-מחלקה משלהם של LoadOptions החושפת הגדרות ספציפיות לאותו פורמט. TxtLoadOptions (לטקסט פשוט) מוסיף AutoNumberingDetection, DetectNumberingWithWhitespaces, DetectHyperlinks, DocumentDirection, וכן LeadingSpacesOptions/TrailingSpacesOptions נפרדים מסוג TxtLeadingSpacesOptions/TxtTrailingSpacesOptions לשליטה באופן שבו רווחים מובילים ונסגרים בכל שורה מטופלים. MarkdownLoadOptions מוסיף PreserveEmptyLines, ImportUnderlineFormatting ו-SoftLineBreakCharacter לשליטה כיצד קונבנציות שבירת השורה של Markdown ממופות לפסקאות ורצפים במסמך. שני התתי-מחלקות יורשות כל תכונה כללית של LoadOptions, ולכן סיסמה או קריאת משוב לטעינת משאבים המוגדרת על מופע של TxtLoadOptions או MarkdownLoadOptions פועלת בדיוק כמו במחלקה הבסיסית.
קריאות משוב לטעינת משאבים
LoadOptions.ResourceLoadingCallback מקבל מימוש של IResourceLoadingCallback, שמקבל הודעה כאשר הטוען פותר משאבים חיצוניים שמופנים במסמך הטעון. הקריאה חוזרת מקבלת ResourceLoadingArgs המתארת את ResourceType של המשאב הטעון, ומחזירה ResourceLoadingAction כדי ליידע את הטוען האם לטעון את המשאב כרגיל, לדלג עליו, או להחליף בנתונים מותאמים. זהו נקודת ההרחבה לשליטה או חטיפת פתרון משאבים במהלך הטעינה, ללא תלות בפורמט הנקרא.
הגדרות שפה, כיוון והתאוששות
LoadOptions.LanguagePreferences הוא עצם LanguagePreferences שבו DefaultEditingLanguage (ערך enum של EditingLanguage) קובע את השפה Aspose.Words ש-FOSS מניח כאשר מסמך אינו מציין אותה במפורש; AddEditingLanguage(language) ו-AddEditingLanguages(languages) רושמים שפות נוספות שהמסמך עשוי להשתמש בהן. DocumentDirection (המוצג גם ישירות ב-TxtLoadOptions) הוא enum עם ערכי LeftToRight, RightToLeft ו-Auto לשליטה בכיוון זרימת הטקסט בעת הטעינה. LoadOptions.RecoveryMode מקבל ערך DocumentRecoveryMode, השולט כיצד הטוען מגיב כאשר הוא נתקל במסמך פגום או חלקית מושחת.
קריאות חוזרות להתקדמות ואזהרות
מעבר לטעינת משאבים, LoadOptions.WarningCallback ו-LoadOptions.ProgressCallback מקבלים מימושי קריאות חוזרות שמודיעים על בעיות לא קריטיות שנתקלו בהן בזמן הטעינה ועל התקדמות הטעינה, בהתאמה — שימושי להצגת בעיות ניתנות לשחזור לקוד הקורא או לדיווח על התקדמות במסמכים גדולים ללא שאילתות.
טיפים והמלצות מומלצות
- העבר
LoadOptions(password)(או הגדרLoadOptions.Password) במקום לתפוס חריגת טעינה ולנסות שוב — Aspose.Words FOSS זקוק לסיסמה לפני שהוא יכול לנתח את המסמך בכלל. - הגדר
LanguagePreferences.DefaultEditingLanguageבעת טעינת מסמכים שהמטא-נתונים של השפה שלהם חסרים או לא מהימנים, כך שהעיבוד התלוי בשפה במ downstream יתנהג באופן צפוי. - העדיף את מחלקת אפשרויות הפורמט-ספציפיות (
TxtLoadOptions,MarkdownLoadOptions) על פני המחלקה הבסיסיתLoadOptionsבעת טעינת הפורמטים האלה, מכיוון שהמחלקה המשנית הספציפית חושפת הגדרות רלוונטיות לפורמט שהמחלקה הבסיסית אינה מציגה. - הטמע את
IResourceLoadingCallbackכאשר אתה צריך להפנות מחדש, לשמור במטמון, או לחסום את פתרון המשאבים החיצוניים בזמן הטעינה במקום לאחר שהמסמך כבר בזיכרון. - הגדר את
LoadOptions.RecoveryModeבמכוון עבור צינורות שמעבדים מסמכים ממקורות לא מהימנים או צד שלישי, במקום להסתמך על התנהגות השחזור הסטנדרטית.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
| טעינת מסמך מוגן בסיסמה גורמת לחריגה | לא סופקה סיסמה, או שהיא סופקה לאחר שהטעינה כבר החלה | העבר LoadOptions(password) (או הגדר Password על מופע של LoadOptions) למעמסה של הבונה Document שמקבלת LoadOptions |
| רווחים מובילים/בסוף בקובץ טקסט שנטען אינם מטופלים כצפוי | התנהגות ברירת המחדל של TxtLeadingSpacesOptions/TxtTrailingSpacesOptions אינה תואמת את קונבנציות הרווחים של קובץ המקור | הגדר את TxtLoadOptions.LeadingSpacesOptions / TrailingSpacesOptions במפורש |
| מעברי שורה ב-Markdown אינם ממופים למבנה הפסקאות הצפוי | MarkdownLoadOptions.PreserveEmptyLines או SoftLineBreakCharacter אינו תואם את הקונבנציות של Markdown המקור | התאם את המאפיין MarkdownLoadOptions הרלוונטי לפני הטעינה |
| טעינת משאבים חיצוניים אינה נצפית או ניתנת לשליטה | לא נרשם IResourceLoadingCallback על LoadOptions.ResourceLoadingCallback | ממש את IResourceLoadingCallback והקצה אותו לפני הטעינה |
FAQ
איך אני טוען מסמך מוגן בסיסמה?
בנה את LoadOptions עם הסיסמה — new LoadOptions(password) — או הגדר את LoadOptions.Password, ואז העבר אותו ל-new Document(fileName, loadOptions) או ל-new Document(stream, loadOptions).
האם אני צריך תת-מחלקה LoadOptions ספציפית לפורמט, או שהמחלקה הבסיסית מספיקה?
מחלקת הבסיס LoadOptions מכסה הגדרות משותפות לכל פורמט (password, encoding, callbacks). השתמש במחלקת-תת-מחלקה ספציפית לפורמט כגון TxtLoadOptions או MarkdownLoadOptions כאשר אתה צריך הגדרות ייחודיות לאותו פורמט, כגון טיפול ברווחים בקבצי טקסט או קונבנציות של שבירת שורות עבור Markdown.
איך אני יכול ליירט או להפנות מחדש משאבים שהמסמך מתייחס אליהם בזמן הטעינה?
מימוש IResourceLoadingCallback והקצאתו ל-LoadOptions.ResourceLoadingCallback לפני הטעינה. ה-callback מקבל ResourceLoadingArgs לכל משאב ומחזיר ResourceLoadingAction שמחליט איך הטעען ממשיך.
איך אני שולט באיזו שפה Aspose.Words FOSS מניח עבור מסמך טעון?
הגדר את LoadOptions.LanguagePreferences.DefaultEditingLanguage לערך EditingLanguage לפני הטעינה; השתמש ב-AddEditingLanguage/AddEditingLanguages כדי לרשום שפות נוספות שהמסמך עשוי להכיל.
מה קורה אם הטעען נתקל במסמך פגום?
ההתנהגות נשלטת על ידי LoadOptions.RecoveryMode, ערך DocumentRecoveryMode שמחליט איך הטעען מגיב לבעיות מבניות במסמך המקור.
API Reference סיכום
| מחלקה/שיטה | תיאור |
|---|---|
LoadOptions | אובייקט אפשרויות בסיסי השולט באופן שבו מסמך נטען |
Document(fileName, loadOptions) / Document(stream, loadOptions) | גרסאות עומס של הקונסטרקטור שמיישמות LoadOptions בזמן הטעינה |
TxtLoadOptions | אפשרויות טעינה ספציפיות למסמכי טקסט פשוט |
MarkdownLoadOptions | אפשרויות טעינה ספציפיות למסמכי Markdown |
IResourceLoadingCallback | ממשק Callback ליירוט פתרון משאבים חיצוניים במהלך הטעינה |
ResourceLoadingArgs / ResourceLoadingAction | נתוני אירוע לכל משאב והפעולה המוחזרת למטען |
LanguagePreferences | מגדיר את שפות העריכה ברירת המחדל והנוספות המשוערות בעת הטעינה |
DocumentDirection | Enum השולט בכיוון זרימת הטקסט (LeftToRight, RightToLeft, Auto) |
DocumentRecoveryMode | שולט בהתנהגות הטעינה כאשר מסמך פגום |