Laddar dokument med LoadOptions
Läser in dokument med LoadOptions
Denna guide visar hur man styr dokumentinläsning utöver en enkel filsökväg eller ström, med hjälp av LoadOptions-klassen. Document har konstruktörsöverladdningar som accepterar en LoadOptions-instans — Document(fileName, loadOptions) och Document(stream, loadOptions) — så att alla inställningar som beskrivs här tillämpas vid inläsning, innan dokumentobjektet returneras till din kod.
Klassen LoadOptions
LoadOptions bär de inställningar Aspose.Words FOSS behöver när ett dokument laddas in i ett Document-objekt. Dess konstruktorer inkluderar en parameterlös LoadOptions(), LoadOptions(password) för att öppna en lösenordsskyddad fil direkt, och LoadOptions(loadFormat, password, baseUri) för att specificera formatet explicit. Utöver Password och BaseUri (används för att lösa relativa referenser såsom länkade resurser), exponerar LoadOptions Encoding för textbaserade format, TempFolder för bearbetning av stora dokument, MswVersion för att ange vilken Word-versionens formatkonventioner som gäller, samt UpdateDirtyFields, IgnoreOleData och UseSystemLcid för finare kontroll över laddningsbeteendet. LoadOptions.FontSettings låter dig ange FontSettings vid laddningstid snarare än att konfigurera typsnitt endast efter att dokumentet har laddats.
Format-specifika inläsningsalternativ
Vissa format har sin egen LoadOptions-subklass som exponerar inställningar specifika för det formatet. TxtLoadOptions (för vanlig text) lägger till AutoNumberingDetection, DetectNumberingWithWhitespaces, DetectHyperlinks, DocumentDirection och separata LeadingSpacesOptions/TrailingSpacesOptions av typen TxtLeadingSpacesOptions/TxtTrailingSpacesOptions för att styra hur inledande och avslutande blanksteg på varje rad hanteras. MarkdownLoadOptions lägger till PreserveEmptyLines, ImportUnderlineFormatting och SoftLineBreakCharacter för att kontrollera hur Markdowns radbrytningskonventioner mappas till dokumentparagrafer och -körningar. Båda subklasserna ärver varje allmän LoadOptions-egenskap, så ett lösenord eller en resursinläsningsåteruppringning som sätts på en TxtLoadOptions eller MarkdownLoadOptions-instans beter sig på samma sätt som på basklassen.
Resursinläsningsåteruppringningar
LoadOptions.ResourceLoadingCallback accepterar en implementation av IResourceLoadingCallback, som meddelas när laddaren löser externa resurser som refereras av dokumentet som laddas. Återuppringningen får en ResourceLoadingArgs som beskriver ResourceType för den resurs som laddas, och returnerar en ResourceLoadingAction för att tala om för laddaren om den ska ladda resursen normalt, hoppa över den, eller ersätta med anpassad data. Detta är utökningspunkten för att styra eller avbryta resursupplösning under laddning, oberoende av vilket format som läses.
Språk, riktning och återhämtningsinställningar
LoadOptions.LanguagePreferences är ett LanguagePreferences-objekt vars DefaultEditingLanguage (ett EditingLanguage-enumvärde) anger det språk Aspose.Words FOSS antar när ett dokument inte specificerar ett explicit; AddEditingLanguage(language) och AddEditingLanguages(languages) registrerar ytterligare språk som dokumentet kan använda. DocumentDirection (även exponerat direkt på TxtLoadOptions) är ett enum med värdena LeftToRight, RightToLeft och Auto för att styra textriktning vid laddning. LoadOptions.RecoveryMode tar ett DocumentRecoveryMode-värde, vilket styr hur laddaren svarar när den stöter på ett felformaterat eller delvis korrupt dokument.
Progress- och varningsåteruppringningar
Utöver resursladdning accepterar LoadOptions.WarningCallback och LoadOptions.ProgressCallback callback-implementationer som meddelas om icke-fatala problem som uppstår under laddning respektive om laddningsprogression — användbart för att exponera återhämtningsbara problem för anroparens kod eller rapportera framsteg i stora dokument utan att pollera.
Tips och bästa praxis
- Skicka
LoadOptions(password)(eller angeLoadOptions.Password) snarare än att fånga ett laddningsundantag och försöka igen — Aspose.Words FOSS behöver lösenordet innan det kan parsa dokumentet alls. - Ange
LanguagePreferences.DefaultEditingLanguagenär du laddar dokument vars språkmetadata saknas eller är opålitlig, så att efterföljande språkberoende bearbetning beter sig förutsägbart. - Föredra den format-specifika alternativklassen (
TxtLoadOptions,MarkdownLoadOptions) framför den grundläggandeLoadOptionsnär du laddar dessa format, eftersom den specifika underklassen exponerar formatrelevanta inställningar som bas-klassen inte gör. - Implementera
IResourceLoadingCallbacknär du behöver omdirigera, cache-lagra eller blockera extern resursupplösning under laddning snarare än efter att dokumentet redan finns i minnet. - Ställ in
LoadOptions.RecoveryModemedvetet för pipelines som bearbetar dokument från opålitliga eller tredjeparts-källor, snarare än att förlita sig på standardåterställningsbeteende.
Vanliga problem
| Problem | Orsak | Åtgärd |
|---|---|---|
| Att ladda ett lösenordsskyddat dokument kastar ett undantag | Inget lösenord angavs, eller så angavs det efter att inläsningen redan hade börjat | Skicka LoadOptions(password) (eller sätt Password på en LoadOptions-instans) till Document-konstruktörsöverladdning som accepterar LoadOptions |
| Inledande/slutande blanksteg i en inläst textfil hanteras inte som förväntat | Standardbeteendet för TxtLeadingSpacesOptions/TxtTrailingSpacesOptions matchar inte källfilens blankstegskonventioner | Ställ in TxtLoadOptions.LeadingSpacesOptions / TrailingSpacesOptions explicit |
| Markdown-radbrytningar motsvarar inte den förväntade styckestrukturen | MarkdownLoadOptions.PreserveEmptyLines eller SoftLineBreakCharacter matchar inte käll-Markdownens konventioner | Justera den relevanta MarkdownLoadOptions-egenskapen innan inläsning |
| Laddning av extern resurs observeras inte eller kan inte kontrolleras | Ingen IResourceLoadingCallback registrerades på LoadOptions.ResourceLoadingCallback | Implementera IResourceLoadingCallback och tilldela den innan inläsning |
FAQ
Hur laddar jag ett lösenordsskyddat dokument?
Konstruera LoadOptions med lösenordet — new LoadOptions(password) — eller sätt LoadOptions.Password, och skicka sedan den till new Document(fileName, loadOptions) eller new Document(stream, loadOptions).
Behöver jag en format-specifik LoadOptions-underklass, eller räcker bas-klassen?
Den grundläggande LoadOptions-klassen omfattar inställningar som är gemensamma för alla format (password, encoding, callbacks). Använd en format-specifik subklass såsom TxtLoadOptions eller MarkdownLoadOptions när du behöver inställningar som är specifika för det formatet, exempelvis hantering av blanksteg för textfiler eller radbrytningskonventioner för Markdown.
Hur kan jag avlyssna eller omdirigera resurser som ett dokument refererar till under inläsning?
Implementera IResourceLoadingCallback och tilldela den till LoadOptions.ResourceLoadingCallback innan inläsning. Återuppringningen får en ResourceLoadingArgs per resurs och returnerar en ResourceLoadingAction som bestämmer hur laddaren fortsätter.
Hur styr jag vilket språk Aspose.Words FOSS antar för ett inläst dokument?
Ställ in LoadOptions.LanguagePreferences.DefaultEditingLanguage till ett EditingLanguage-värde innan inläsning; använd AddEditingLanguage/AddEditingLanguages för att registrera ytterligare språk som dokumentet kan innehålla.
Vad händer om laddaren stöter på ett felaktigt formaterat dokument?
Beteendet styrs av LoadOptions.RecoveryMode, ett DocumentRecoveryMode-värde som bestämmer hur laddaren svarar på strukturella problem i källdokumentet.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
LoadOptions | Basalternativobjekt som styr hur ett dokument laddas |
Document(fileName, loadOptions) / Document(stream, loadOptions) | Konstruktörsöverladdningar som tillämpar LoadOptions under laddning |
TxtLoadOptions | Laddningsalternativ specifika för vanlig textdokument |
MarkdownLoadOptions | Laddningsalternativ specifika för Markdown-dokument |
IResourceLoadingCallback | Callback-gränssnitt för att avlyssna upplösning av externa resurser under laddning |
ResourceLoadingArgs / ResourceLoadingAction | Per-resurs händelsedata och den åtgärd som returneras till laddaren |
LanguagePreferences | Konfigurerar standard- och ytterligare redigeringsspråk som antas vid laddning |
DocumentDirection | Enum som styr textriktning (LeftToRight, RightToLeft, Auto) |
DocumentRecoveryMode | Styr laddarens beteende när ett dokument är felaktigt formaterat |