Documenten laden met LoadOptions
Documenten laden met LoadOptions
Deze gids laat zien hoe je het laden van documenten kunt controleren, verder dan een eenvoudig bestandspad of stream, met behulp van de LoadOptions klasse. Document heeft constructoroverloads die een LoadOptions instantie accepteren — Document(fileName, loadOptions) en Document(stream, loadOptions) — zodat alle hier beschreven instellingen van toepassing zijn op het laadmoment, voordat het documentobject wordt teruggegeven aan je code.
De LoadOptions klasse
LoadOptions bevat de instellingen Aspose.Words die FOSS nodig heeft bij het laden van een document in een Document object. De constructors omvatten een parameterloze LoadOptions(), LoadOptions(password) voor het direct openen van een met wachtwoord beveiligd bestand, en LoadOptions(loadFormat, password, baseUri) voor het expliciet opgeven van het formaat. Naast Password en BaseUri (gebruikt om relatieve verwijzingen zoals gekoppelde bronnen op te lossen), maakt LoadOptions Encoding beschikbaar voor tekstgebaseerde formaten, TempFolder voor verwerking van grote documenten, MswVersion om aan te geven welke Word-versie-formaatconventies van toepassing zijn, en UpdateDirtyFields, IgnoreOleData en UseSystemLcid voor fijnmazigere controle over het laadgedrag. LoadOptions.FontSettings stelt je in staat FontSettings te leveren op het moment van laden in plaats van lettertypen pas na het laden van het document te configureren.
Formaat-specifieke laadopties
Sommige formaten hebben hun eigen LoadOptions-subklasse die instellingen blootlegt die specifiek zijn voor dat formaat. TxtLoadOptions (voor platte tekst) voegt AutoNumberingDetection, DetectNumberingWithWhitespaces, DetectHyperlinks, DocumentDirection toe, en aparte LeadingSpacesOptions/TrailingSpacesOptions van het type TxtLeadingSpacesOptions/TxtTrailingSpacesOptions voor het regelen hoe voorloop- en naloopspaties op elke regel worden behandeld. MarkdownLoadOptions voegt PreserveEmptyLines, ImportUnderlineFormatting en SoftLineBreakCharacter toe om te bepalen hoe de regeleinde-conventies van Markdown worden omgezet naar documentparagrafen en runs. Beide subklassen erven elke algemene LoadOptions-eigenschap, zodat een wachtwoord- of bron-laad-callback die is ingesteld op een TxtLoadOptions- of MarkdownLoadOptions-instantie zich hetzelfde gedraagt als op de basis-klasse.
Callback-functies voor resource-laden
LoadOptions.ResourceLoadingCallback accepteert een implementatie van IResourceLoadingCallback, die wordt geïnformeerd wanneer de loader externe bronnen oplost die door het te laden document worden gerefereerd. De callback ontvangt een ResourceLoadingArgs die de ResourceType van de te laden bron beschrijft, en retourneert een ResourceLoadingAction om de loader te vertellen of de bron normaal moet worden geladen, moet worden overgeslagen, of aangepaste gegevens moet worden gebruikt. Dit is het uitbreidingspunt voor het beheersen of onderscheppen van bronresolutie tijdens het laden, onafhankelijk van welk formaat wordt gelezen.
Taal, Richting en Herstelinstellingen
LoadOptions.LanguagePreferences is een LanguagePreferences object waarvan de DefaultEditingLanguage (een EditingLanguage enum-waarde) de taal Aspose.Words FOSS aanneemt wanneer een document er geen expliciet opgeeft; AddEditingLanguage(language) en AddEditingLanguages(languages) registreren extra talen die het document kan gebruiken. DocumentDirection (ook direct blootgesteld op TxtLoadOptions) is een enum met LeftToRight, RightToLeft en Auto waarden voor het controleren van de tekststroomrichting bij het laden. LoadOptions.RecoveryMode neemt een DocumentRecoveryMode waarde, die bepaalt hoe de loader reageert wanneer hij een misvormd of gedeeltelijk corrupt document tegenkomt.
Voortgangs- en Waarschuwingscallbacks
Naast het laden van bronnen, accepteren LoadOptions.WarningCallback en LoadOptions.ProgressCallback callback-implementaties die respectievelijk op de hoogte worden gesteld van niet-fatale problemen die tijdens het laden worden ondervonden en van de voortgang van het laden — nuttig om herstelbare problemen aan de aanroepende code te melden of om de voortgang van grote documenten te rapporteren zonder te poll’en.
Tips en Best Practices
- Geef
LoadOptions(password)door (of stelLoadOptions.Passwordin) in plaats van een laadexceptie op te vangen en opnieuw te proberen — Aspose.Words FOSS heeft het wachtwoord nodig voordat het het document überhaupt kan parseren. - Stel
LanguagePreferences.DefaultEditingLanguagein bij het laden van documenten waarvan de taalmetadata ontbreekt of onbetrouwbaar is, zodat downstream taal-afhankelijke verwerking voorspelbaar is. - Geef de format-specifieke optiesklasse (
TxtLoadOptions,MarkdownLoadOptions) de voorkeur boven de basisLoadOptionsbij het laden van die formaten, omdat de specifieke subklasse format-relevante instellingen blootlegt die de basis-klasse niet heeft. - Implementeer
IResourceLoadingCallbackwanneer je externe resource-resolutie moet omleiden, cachen of blokkeren tijdens het laden in plaats van nadat het document al in het geheugen staat. - Stel
LoadOptions.RecoveryModebewust in voor pipelines die documenten verwerken afkomstig van onbetrouwbare of externe bronnen, in plaats van te vertrouwen op het standaard herstelgedrag.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| Het laden van een wachtwoordbeveiligd document gooit een uitzondering | Er is geen wachtwoord opgegeven, of het werd opgegeven nadat het laden al was begonnen | Geef LoadOptions(password) door (of stel Password in op een LoadOptions instantie) aan de Document constructoroverload die LoadOptions accepteert |
| Voor- en naloopwitruimte in een geladen tekstbestand wordt niet zoals verwacht behandeld | Standaard TxtLeadingSpacesOptions/TxtTrailingSpacesOptions gedrag komt niet overeen met de witruimteconventies van het bronbestand | Stel TxtLoadOptions.LeadingSpacesOptions / TrailingSpacesOptions expliciet in |
| Markdown-regelafbrekingen komen niet overeen met de verwachte alinea-structuur | MarkdownLoadOptions.PreserveEmptyLines of SoftLineBreakCharacter komt niet overeen met de conventies van de bron-Markdown | Pas de relevante MarkdownLoadOptions-eigenschap aan vóór het laden |
| Het laden van externe bronnen wordt niet waargenomen of beheersbaar | Er is geen IResourceLoadingCallback geregistreerd op LoadOptions.ResourceLoadingCallback | Implementeer IResourceLoadingCallback en wijs het toe vóór het laden |
FAQ
Hoe laad ik een wachtwoordbeveiligd document?
Construeer LoadOptions met het wachtwoord — new LoadOptions(password) — of stel LoadOptions.Password in, en geef het vervolgens door aan new Document(fileName, loadOptions) of new Document(stream, loadOptions).
Heb ik een format-specifieke LoadOptions subklasse nodig, of is de basis-klasse voldoende?
De basisklasse LoadOptions bestrijkt instellingen die gemeenschappelijk zijn voor elk formaat (wachtwoord, codering, callbacks). Gebruik een formaat-specifieke subklasse zoals TxtLoadOptions of MarkdownLoadOptions wanneer je instellingen nodig hebt die specifiek zijn voor dat formaat, zoals spatie-afhandeling voor tekstbestanden of regeleinde-conventies voor Markdown.
Hoe kan ik resources die een document tijdens het laden verwijst onderscheppen of omleiden?
Implementeer IResourceLoadingCallback en wijs het toe aan LoadOptions.ResourceLoadingCallback vóór het laden. De callback ontvangt een ResourceLoadingArgs per resource en retourneert een ResourceLoadingAction die bepaalt hoe de loader verdergaat.
Hoe kan ik bepalen welke taal Aspose.Words FOSS aanneemt voor een geladen document?
Stel LoadOptions.LanguagePreferences.DefaultEditingLanguage in op een EditingLanguage waarde vóór het laden; gebruik AddEditingLanguage/AddEditingLanguages om extra talen te registreren die het document kan bevatten.
Wat gebeurt er als de loader een misvormd document tegenkomt?
Het gedrag wordt gecontroleerd door LoadOptions.RecoveryMode, een DocumentRecoveryMode waarde die bepaalt hoe de loader reageert op structurele problemen in het brondocument.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
LoadOptions | Basisoptiesobject dat bepaalt hoe een document wordt geladen |
Document(fileName, loadOptions) / Document(stream, loadOptions) | Constructor-overloads die LoadOptions toepassen tijdens het laden |
TxtLoadOptions | Laadopties specifiek voor platte-tekstdocumenten |
MarkdownLoadOptions | Laadopties specifiek voor Markdown-documenten |
IResourceLoadingCallback | Callback-interface voor het onderscheppen van externe resource-resolutie tijdens het laden |
ResourceLoadingArgs / ResourceLoadingAction | Per-resource gebeurtenisgegevens en de actie die aan de loader wordt geretourneerd |
LanguagePreferences | Configureert de standaard- en extra bewerkingstalen die bij het laden worden aangenomen |
DocumentDirection | Enum die de tekststroomrichting regelt (LeftToRight, RightToLeft, Auto) |
DocumentRecoveryMode | Beheert het gedrag van de loader wanneer een document onjuist is opgemaakt |