Hur man laddar Word-dokument i .NET

Hur man laddar Word-dokument i .NET

Hur man laddar Word-dokument i .NET

Aspose.Words FOSS för .NET läser in ett dokument i minnet så snart du konstruerar en Document objekt — varje inläsningsväg i biblioteket kanaliseras genom Document’s konstruktoröverladdningar och LoadOptions klass. Denna guide visar hur man laddar ett dokument från en fil eller en ström, anger ett lösenord eller format-specifika inställningar, och styr vad som händer när inläsning stöter på en extern resurs eller ett dokument som kan vara felaktigt formaterat. Aspose.Words FOSS för .NET byggs från källkod och refereras direkt i ett projekt snarare än att installeras från ett paketflöde — se den Installationsguide för byggsteg innan du går igenom uppgifterna nedan.


Steg-för-steg-guide

Steg 1: Ladda ett dokument från en fil eller ström

Document har fem konstruktorer. Document() skapar ett nytt, tomt dokument snarare än att ladda ett. Document(fileName) laddar direkt från en sökväg på disken, och Document(stream) laddar från vilken läsbar Stream som helst — användbart när källan inte är en fil, exempelvis innehåll som redan finns i minnet eller mottagits via en nätverksanslutning. Båda har en tillhörande överlagring som accepterar ett andra argument, Document(fileName, loadOptions) och Document(stream, loadOptions), vilket är ingångspunkten för alla andra uppgifter i den här guiden.


Steg 2: Ladda ett lösenordsskyddat dokument

Konstruera en LoadOptions med lösenordet innan du anropar Document(fileName, loadOptions) (eller stream-överladdningen). new LoadOptions(password) sätter LoadOptions.Password direkt; alternativt, sätt Password på en parameterlös LoadOptions()-instans innan du skickar den. Tillhandahåll lösenordet i förväg istället för att ladda först och reagera på ett fel — Aspose.Words FOSS för .NET behöver lösenordet för att kunna tolka en skyddad fil alls, så det finns inget delvis laddat tillstånd att återhämta sig från.


Steg 3: Tillämpa format-specifika alternativ för text- och Markdown-källor

Vanlig text och Markdown-källor accepterar inställningar som bas-LoadOptions inte exponerar. TxtLoadOptions lägger till AutoNumberingDetection och DetectNumberingWithWhitespaces för att känna igen numrerade listor i vanlig text, DetectHyperlinks för att omvandla rena URL-er till hyperlänkar, DocumentDirection (LeftToRight, RightToLeft eller Auto) för textflödesriktning, samt separata LeadingSpacesOptions/TrailingSpacesOptions (av typen TxtLeadingSpacesOptions/TxtTrailingSpacesOptions) för hantering av blanksteg i början och slutet av varje rad. MarkdownLoadOptions lägger till PreserveEmptyLines, ImportUnderlineFormatting och SoftLineBreakCharacter för att kontrollera hur Markdowns radbrytningskonventioner mappar till stycken och körningar. Båda underklasserna ärver från LoadOptions, så ett lösenord eller en resurs-laddnings-callback som sätts på någon av dem beter sig likadant som på basklassen — skicka den format-specifika instansen till Document(fileName, loadOptions) exakt som du skulle göra med en vanlig LoadOptions.


Steg 4: Omdirigera eller avlyssna externa resurser under inläsning

Sätt LoadOptions.ResourceLoadingCallback till en implementation av IResourceLoadingCallback när du behöver kontrollera hur en extern resurs som refereras av dokumentet löses upp under inläsning. Dess ResourceLoading(args)-metod får ett ResourceLoadingArgs som beskriver resursens ResourceType (Image, Font, CssStyleSheet eller Document) tillsammans med Uri och OriginalUri, och returnerar ett ResourceLoadingAction — Default för att ladda resursen normalt, Skip för att utelämna den, eller UserProvided för att ersätta data som tillhandahålls via ResourceLoadingArgs.SetData(data).


Steg 5: Ställ in språkstandarder och återhämtningsbeteende

När ett dokuments språkmetadata saknas eller är opålitlig, sätt LoadOptions.LanguagePreferences.DefaultEditingLanguage till ett EditingLanguage-värde innan inläsning, och använd AddEditingLanguage(language) eller AddEditingLanguages(languages) på LanguagePreferences för att registrera ytterligare språk som dokumentet kan innehålla. För källor som kan vara felaktigt formaterade, sätt LoadOptions.RecoveryMode till ett DocumentRecoveryMode-värde — None för att ladda utan något återhämtningsförsök, eller TryRecover för att låta laddaren kringgå vissa strukturella problem istället för att misslyckas helt med inläsningen.


Vanliga problem och lösningar

Att läsa in ett lösenordsskyddat dokument kastar fortfarande ett undantag efter att ett lösenord har angetts. Bekräfta att lösenordet sattes på den exakta LoadOptions instans som skickas till Document(fileName, loadOptions) (eller stream-overloaden) — via new LoadOptions(password) eller genom att sätta Password efteråt — och att detta är objektet som faktiskt skickas till konstruktören. En LoadOptions som skapades men aldrig överlämnades till Document har ingen effekt på inläsningen.

Text- eller Markdown-specifika inställningar verkar inte tillämpas. Kontrollera att en TxtLoadOptions or MarkdownLoadOptions instans — inte basen LoadOptions — skickades till Document konstruktorn. Endast underklassen exponerar format-specifika egenskaper; att skicka bas-klassen kompileras men släpper tyst bort dem.

Externa resurser blir inte avlyssnade eller omdirigerade. ResourceLoadingCallback måste sättas på samma LoadOptions objekt som skickas till Document konstruktorn, och den måste tilldelas innan laddningsanropet. Att tilldela den efter att laddningen redan har slutförts har ingen effekt.

Ett felaktigt dokument misslyckas fortfarande med att laddas efter att ha ställt in RecoveryMode. DocumentRecoveryMode.TryRecover låter laddaren kringgå vissa strukturella problem i ett dokument, men allvarligare korruption kan fortfarande förhindra att dokumentet laddas framgångsrikt.

Ett dokument laddat från en Stream beter sig annorlunda än samma fil som laddas via sökväg. Verifiera att strömmens position är i början innan du vidarebefordrar den till Document(stream) or Document(stream, loadOptions) — en ström som lämnats halvvägs genom sitt innehåll laddar endast de återstående byten.


Vanliga frågor

Hur laddar jag ett dokument utan några speciella alternativ?

Skicka en filsökväg eller en Stream direkt till Document(fileName) eller Document(stream) — LoadOptions krävs endast när ett lösenord, format-specifika inställningar eller en återanrop behövs.

Vad är skillnaden mellan LoadOptions, TxtLoadOptions och MarkdownLoadOptions?

TxtLoadOptions och MarkdownLoadOptions är båda avledda från LoadOptions och lägger till inställningar specifika för vanliga text- och Markdown-källor respektive. Alla allmänna LoadOptions-egenskaper — lösenord, kodning, återanrop — förblir tillgängliga på båda underklasserna.

Kan jag läsa in ett dokument direkt från en byte-array?

Packa in bytena i en MemoryStream och skicka den strömmen till Document(stream) eller Document(stream, loadOptions) — det finns ingen konstruktor som accepterar en byte-array direkt.

Hur styr jag vad som händer när laddaren inte kan lösa upp en extern resurs?

Implementera IResourceLoadingCallback och tilldela den till LoadOptions.ResourceLoadingCallback. Returnera ResourceLoadingAction.Skip från ResourceLoading(args) för att utelämna resursen istället för att låta inläsningen misslyckas.

Ändrar inställning av RecoveryMode hur ett välformat dokument laddas?

Nej. DocumentRecoveryMode ändrar bara beteende när laddaren faktiskt stöter på strukturella problem — ett välformat dokument laddas på samma sätt oavsett inställningen.


Se även

 Svenska