Načítání dokumentů s LoadOptions

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 nastavte LoadOptions.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.DefaultEditingLanguage př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í LoadOptions př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émPříčinaOprava
Načtení dokumentu chráněného heslem vyvolá výjimkuNebyl 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 souboruNastavte 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 MarkdownuUpravte 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ý IResourceLoadingCallbackImplementujte 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/MetodaPopis:
LoadOptionsZá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í
TxtLoadOptionsNačíst možnosti specifické pro dokumenty prostého textu
MarkdownLoadOptionsNačíst možnosti specifické pro dokumenty ve formátu Markdown
IResourceLoadingCallbackRozhraní zpětného volání pro zachycení řešení externích zdrojů během načítání
ResourceLoadingArgs / ResourceLoadingActionData události pro jednotlivé zdroje a akce vrácená načítači
LanguagePreferencesNastavuje výchozí a další jazyky úprav předpokládané při načtení
DocumentDirectionVýčtový typ řídící směr toku textu (LeftToRight, RightToLeft, Auto)
DocumentRecoveryModeŘídí chování načítače, když je dokument špatně strukturovaný

Viz také:

 Čeština