Načítání dokumentů s LoadOptions
Načítání dokumentů pomocí LoadOptions
Tento průvodce ukazuje, jak kontrolovat načítání dokumentů nad rámec pouhého souborového cesty nebo proudu, pomocí třídy LoadOptions. Document má přetížené konstruktory, které přijímají instanci LoadOptions — Document(fileName, loadOptions) a Document(stream, loadOptions) — takže všechna zde popsaná nastavení se aplikují při načítání, ještě předtím, než je objekt dokumentu vrácen vašemu kódu.
Třída LoadOptions
LoadOptions nese nastavení Aspose.Words, která FOSS potřebuje při načítání dokumentu do objektu Document. Jeho konstruktory zahrnují parametrický LoadOptions() bez parametrů, LoadOptions(password) pro přímé otevření souboru chráněného heslem a LoadOptions(loadFormat, password, baseUri) pro explicitní určení formátu. Kromě Password a BaseUri (používaných k řešení relativních odkazů, jako jsou propojené zdroje) LoadOptions poskytuje Encoding pro textové formáty, TempFolder pro zpracování velkých dokumentů, MswVersion k určení, která verze Wordu se použije pro konvence formátu, a UpdateDirtyFields, IgnoreOleData a UseSystemLcid pro jemnější kontrolu chování při načítání. LoadOptions.FontSettings vám umožní dodat FontSettings během načítání místo konfigurace fontů až po načtení dokumentu.
Možnosti načítání specifické pro formát
Některé formáty mají vlastní podtřídu LoadOptions, která vystavuje nastavení specifické pro daný formát. TxtLoadOptions (pro prostý text) přidává AutoNumberingDetection, DetectNumberingWithWhitespaces, DetectHyperlinks, DocumentDirection a samostatné LeadingSpacesOptions/TrailingSpacesOptions typu TxtLeadingSpacesOptions/TxtTrailingSpacesOptions pro řízení, jak se na každém řádku zachází s počátečními a koncovými mezerami. MarkdownLoadOptions přidává PreserveEmptyLines, ImportUnderlineFormatting a SoftLineBreakCharacter pro řízení, jak konvence zalomení řádků v Markdownu mapují na odstavce a běhy v dokumentu. Obě podtřídy dědí všechny obecné vlastnosti LoadOptions, takže heslo nebo callback pro načítání zdrojů nastavený na instanci TxtLoadOptions nebo MarkdownLoadOptions se chová stejně jako na základní třídě.
Callbacky pro načítání zdrojů
LoadOptions.ResourceLoadingCallback přijímá implementaci IResourceLoadingCallback, která je upozorňována, když načítač řeší externí zdroje odkazované v načítaném dokumentu. Callback přijímá ResourceLoadingArgs popisující ResourceType načítaného zdroje a vrací ResourceLoadingAction, aby řekl načítači, zda má zdroj načíst normálně, přeskočit jej nebo nahradit vlastními daty. Jedná se o rozšiřovací bod pro řízení nebo zachytávání řešení zdrojů během načítání, nezávisle na tom, jaký formát se čte.
Nastavení jazyka, směru a obnovy
LoadOptions.LanguagePreferences je objekt LanguagePreferences, jehož DefaultEditingLanguage (hodnota výčtu EditingLanguage) nastavuje jazyk Aspose.Words, který FOSS předpokládá, pokud dokument explicitně neuvede žádný; AddEditingLanguage(language) a AddEditingLanguages(languages) registrovat další jazyky, které dokument může používat. DocumentDirection (také přímo vystavený na TxtLoadOptions) je výčet s hodnotami LeftToRight, RightToLeft a Auto pro řízení směru toku textu při načítání. LoadOptions.RecoveryMode přijímá hodnotu DocumentRecoveryMode, která určuje, jak načítač reaguje, když narazí na poškozený nebo částečně poškozený dokument.
Callbacky pro postup a varování
Mimo načítání zdrojů LoadOptions.WarningCallback a LoadOptions.ProgressCallback přijímají implementace callbacků, které jsou upozorňovány na nefatální problémy vzniklé během načítání a na průběh načítání, respektive — užitečné pro předávání obnovitelných problémů volajícímu kódu nebo pro hlášení postupu u velkých dokumentů bez periodického dotazování.
Tipy a osvědčené postupy
- Předávejte
LoadOptions(password)(nebo nastavteLoadOptions.Password) místo zachytávání výjimky při načítání a opakování — Aspose.Words FOSS potřebuje heslo, než dokáže dokument vůbec analyzovat. - Nastavte
LanguagePreferences.DefaultEditingLanguagepři načítání dokumentů, jejichž metadata jazyka chybí nebo jsou nespolehlivá, aby následné zpracování závislé na jazyce bylo předvídatelné. - Upřednostněte třídu specifických možností formátu (
TxtLoadOptions,MarkdownLoadOptions) před základníLoadOptionspři načítání těchto formátů, protože konkrétní podtřída zpřístupňuje nastavení relevantní pro formát, která základní třída nemá. - Implementujte
IResourceLoadingCallback, když potřebujete během načítání přesměrovat, kešovat nebo blokovat řešení externích zdrojů, místo toho, aby se to dělo až po načtení dokumentu do paměti. - Nastavte
LoadOptions.RecoveryModeúmyslně pro pipeline, které zpracovávají dokumenty z nedůvěryhodných nebo třetích stran, místo spoléhaní se na výchozí chování při obnově.
Běžné problémy
| Problém | Příčina | Oprava |
|---|---|---|
| Načtení dokumentu chráněného heslem vyvolá výjimku | Nebyl zadán žádný password, nebo byl zadán po zahájení načítání | Předejte LoadOptions(password) (nebo nastavte Password na instanci LoadOptions) do přetížení konstruktoru Document, které přijímá LoadOptions |
| Úvodní/koncové bílé znaky v načteném textovém souboru nejsou zpracovány podle očekávání | Výchozí chování TxtLeadingSpacesOptions/TxtTrailingSpacesOptions neodpovídá konvencím bílých znaků zdrojového souboru | Nastavte TxtLoadOptions.LeadingSpacesOptions/TrailingSpacesOptions explicitně |
| Zalamování řádků v Markdownu neodpovídá očekávané struktuře odstavců | MarkdownLoadOptions.PreserveEmptyLines nebo SoftLineBreakCharacter neodpovídá konvencím zdrojového Markdownu | Upravte relevantní vlastnost MarkdownLoadOptions před načtením |
| Načítání externího zdroje není sledováno ani ovladatelné | Na LoadOptions.ResourceLoadingCallback nebyl zaregistrován žádný IResourceLoadingCallback | Implementujte IResourceLoadingCallback a přiřaďte jej před načtením |
FAQ
Jak načíst dokument chráněný heslem?
Vytvořte LoadOptions s heslem — new LoadOptions(password) — nebo nastavte LoadOptions.Password, poté jej předávejte do new Document(fileName, loadOptions) nebo new Document(stream, loadOptions).
Potřebuji specifickou podtřídu LoadOptions pro formát, nebo stačí základní třída?
Základní třída LoadOptions pokrývá nastavení společná pro každý formát (password, encoding, callbacks). Použijte podtřídu specifickou pro formát, například TxtLoadOptions nebo MarkdownLoadOptions, když potřebujete nastavení specifická pro daný formát, jako je zpracování bílých znaků pro textové soubory nebo konvence konců řádků pro Markdown.
Jak mohu zachytit nebo přesměrovat zdroje, na které dokument odkazuje během načítání?
Implementujte IResourceLoadingCallback a přiřaďte jej k LoadOptions.ResourceLoadingCallback před načítáním. Zpětné volání přijímá ResourceLoadingArgs pro každý zdroj a vrací ResourceLoadingAction, která rozhoduje, jak načítač pokračuje.
Jak mohu ovládat, jaký jazyk Aspose.Words FOSS předpokládá pro načtený dokument?
Nastavte LoadOptions.LanguagePreferences.DefaultEditingLanguage na hodnotu EditingLanguage před načítáním; použijte AddEditingLanguage/AddEditingLanguages k zaregistrování dalších jazyků, které může dokument obsahovat.
Co se stane, pokud načítač narazí na poškozený dokument?
Chování je řízeno LoadOptions.RecoveryMode, hodnotou DocumentRecoveryMode, která určuje, jak načítač reaguje na strukturální problémy ve zdrojovém dokumentu.
API Reference Shrnutí
| Třída/Metoda | Popis: |
|---|---|
LoadOptions | Základní objekt možností řídící načítání dokumentu |
Document(fileName, loadOptions) / Document(stream, loadOptions) | Přetížení konstruktoru, která aplikují LoadOptions při načítání |
TxtLoadOptions | Načíst možnosti specifické pro dokumenty prostého textu |
MarkdownLoadOptions | Načíst možnosti specifické pro dokumenty ve formátu Markdown |
IResourceLoadingCallback | Rozhraní zpětného volání pro zachycení řešení externích zdrojů během načítání |
ResourceLoadingArgs / ResourceLoadingAction | Data události pro jednotlivé zdroje a akce vrácená načítači |
LanguagePreferences | Nastavuje výchozí a další jazyky úprav předpokládané při načtení |
DocumentDirection | Výčtový typ řídící směr toku textu (LeftToRight, RightToLeft, Auto) |
DocumentRecoveryMode | Řídí chování načítače, když je dokument špatně strukturovaný |