Hogyan töltsünk be Word dokumentumokat a .NET környezetben
Hogyan töltsünk be Word-dokumentumokat a .NET
Aspose.Words FOSS for .NET egy dokumentumot memóriába olvas, amint egy példányt hozol létre Document objektum — minden betöltési út a könyvtárban ezen keresztül halad Document’s konstruktor túlterhelései és a LoadOptions osztály. Ez az útmutató bemutatja, hogyan tölts be egy dokumentumot fájlból vagy adatfolyamból, hogyan adj meg jelszót vagy formátum-specifikus beállításokat, és hogyan szabályozd, mi történik, ha a betöltés külső erőforráshoz vagy esetleg hibás dokumentumhoz ér. Aspose.Words FOSS for .NET forráskódból épül, és közvetlenül egy projektben hivatkozik rá a csomagforrásból való telepítés helyett — lásd a Telepítési útmutató a build lépésekhez, mielőtt a lenti feladatokba vágnál.
Lépésről-lépésre útmutató
1. lépés: Dokumentum betöltése fájlból vagy adatfolyamból
Document öt konstruktorral rendelkezik. Document() egy új, üres dokumentumot hoz létre ahelyett, hogy betöltene egyet. Document(fileName) közvetlenül egy lemezen lévő útvonalról tölt be, és Document(stream) bármely olvasható Stream forrásból tölt be — hasznos, ha a forrás nem fájl, például már a memóriában lévő tartalom vagy hálózati kapcsolaton keresztül érkezett. Mindkettőnek van egy kiegészítő túlterhelése, amely egy második argumentumot fogad, Document(fileName, loadOptions) és Document(stream, loadOptions), ami az útmutató minden további feladatának belépési pontja.
2. lépés: Jelszóval védett dokumentum betöltése
Hozzon létre egy LoadOptions a jelszóval, mielőtt meghívná a Document(fileName, loadOptions) (vagy a stream túlterhelést). A new LoadOptions(password) közvetlenül állítja be a LoadOptions.Password-t; alternatívaként állítsa be a Password-t egy paraméter nélküli LoadOptions() példányon, mielőtt átadná. Adja meg a jelszót előre, ahelyett, hogy először betöltené, és egy hibára reagálna — a Aspose.Words FOSS a .NET számára a jelszóra van szüksége a védett fájl elemzéséhez, így nincs részben betöltött állapot, amelyből helyre lehetne állni.
3. lépés: Formátum-specifikus beállítások alkalmazása szöveg- és Markdown-forrásokhoz
Az egyszerű szöveg és a Markdown források elfogadják azokat a beállításokat, amelyeket az alap LoadOptions nem tesz elérhetővé. A TxtLoadOptions hozzáadja a AutoNumberingDetection és DetectNumberingWithWhitespaces beállításokat a számozott listák felismeréséhez egyszerű szövegben, a DetectHyperlinks-t a csupasz URL-ek hiperhivatkozásokká alakításához, a DocumentDirection (LeftToRight, RightToLeft vagy Auto) a szövegáramlás irányához, valamint külön a LeadingSpacesOptions/TrailingSpacesOptions (típusú TxtLeadingSpacesOptions/TxtTrailingSpacesOptions) beállításokat a sor elején és végén lévő szóköz kezeléséhez. A MarkdownLoadOptions hozzáadja a PreserveEmptyLines, ImportUnderlineFormatting és SoftLineBreakCharacter opciókat a Markdown sortörés konvencióinak bekezdésekre és futtatásokra való leképezésének szabályozásához. Mindkét alosztály a LoadOptions-ből származik, így egy jelszó vagy erőforrásbetöltő visszahívás, amely bármelyiken be van állítva, ugyanúgy viselkedik, mint az alaposztályban — adja át a formátum-specifikus példányt a Document(fileName, loadOptions)-nek ugyanúgy, mint egy egyszerű LoadOptions.
4. lépés: Külső erőforrások átirányítása vagy elfogása betöltés közben
Állítsa be a LoadOptions.ResourceLoadingCallback-t a IResourceLoadingCallback megvalósítására, amikor vezérelni kell, hogyan oldódik fel a dokumentum által hivatkozott külső erőforrás betöltés közben. A ResourceLoading(args) metódusa egy ResourceLoadingArgs-t kap, amely leírja az erőforrás ResourceType-ját (Image, Font, CssStyleSheet vagy Document) együtt Uri-val és OriginalUri-val, és egy ResourceLoadingAction-t ad vissza — Default a normál betöltéshez, Skip az elhagyáshoz, vagy UserProvided az adatok helyettesítéséhez, amelyet a ResourceLoadingArgs.SetData(data) biztosít.
5. lépés: Nyelvi alapértelmezések és helyreállítási viselkedés beállítása
Ha egy dokumentum nyelvi metaadata hiányzik vagy megbízhatatlan, állítsa be a LoadOptions.LanguagePreferences.DefaultEditingLanguage-t egy EditingLanguage értékre a betöltés előtt, és használja a AddEditingLanguage(language) vagy AddEditingLanguages(languages) beállítást a LanguagePreferences objektumon további nyelvek regisztrálásához, amelyeket a dokumentum tartalmazhat. Olyan forrásoknál, amelyek hibásak lehetnek, állítsa be a LoadOptions.RecoveryMode-t egy DocumentRecoveryMode értékre — None a betöltéshez, helyreállítási kísérlet nélkül, vagy TryRecover a betöltőnek bizonyos szerkezeti problémák megkerülésére, ahelyett, hogy a betöltést teljesen leállítaná.
Gyakori problémák és megoldások
Jelszóval védett dokumentum betöltése továbbra is kivételt dob a jelszó megadása után. Erősítsd meg, hogy a jelszó a pontosan LoadOptions példány átadva Document(fileName, loadOptions) (vagy a stream overload) — keresztül new LoadOptions(password) vagy beállítva Password után — és ez az a objektum, amely ténylegesen átadásra kerül a konstruktorba. A LoadOptions ami létrejött, de soha nem adták át Document nincs hatása a betöltésre.
A szöveg- vagy Markdown-specifikus beállításoknak úgy tűnik, hogy nem érvényesülnek. Ellenőrizd, hogy egy TxtLoadOptions or MarkdownLoadOptions példány — nem az alap LoadOptions — át lett adva a Document konstruktor. Csak az alosztály teszi közzé a formátum-specifikus tulajdonságokat; az alaposztály átadása lefordul, de csendben eldobja őket.
A külső erőforrások nincsenek elfogva vagy átirányítva. ResourceLoadingCallback be kell állítani ugyanazon LoadOptions objektumra, amelyet a Document konstruktorra, és a betöltés hívása előtt kell hozzárendelni. Ha a betöltés befejeződése után rendeljük hozzá, nincs hatása.
Egy hibásan formázott dokumentum továbbra sem töltődik be a beállítás után RecoveryMode. DocumentRecoveryMode.TryRecover lehetővé teszi a betöltőnek, hogy megkerülje a dokumentum néhány szerkezeti problémáját, de a súlyosabb sérülés továbbra is megakadályozhatja a dokumentum sikeres betöltését.
Egy dokumentum betöltve egy Stream másként viselkedik, mint ugyanaz a fájl útvonallal betöltve. Ellenőrizze, hogy a stream pozíciója a kezdetnél van-e, mielőtt átadná neki Document(stream) or Document(stream, loadOptions) — egy stream, amely a tartalma közepénél marad, csak a fennmaradó bájtokat tölti be.
Gyakran Ismételt Kérdések
Hogyan tudok egy dokumentumot betölteni anélkül, hogy speciális beállításokat használnék?
Adj meg egy fájlútvonalat vagy egy Stream-t közvetlenül a Document(fileName)-nek vagy a Document(stream)-nek — a LoadOptions csak akkor szükséges, ha jelszóra, formátumspecifikus beállításokra vagy visszahívásra van szükség.
Mi a különbség a LoadOptions, TxtLoadOptions és MarkdownLoadOptions között?
TxtLoadOptions és a MarkdownLoadOptions egyaránt a LoadOptions-ból származik, és a megfelelően egyszerű szöveg és a Markdown forrásokra vonatkozó beállításokat adja hozzá. Minden általános LoadOptions tulajdonság — jelszó, kódolás, visszahívások — elérhető mindkét alosztályban.
Betölthetek egy dokumentumot közvetlenül egy byte array-ból?
Csomagold be a bájtokat egy MemoryStream-ba, és add át azt az adatfolyamot a Document(stream)-nek vagy a Document(stream, loadOptions)-nek — nincs olyan konstruktor, amely közvetlenül byte array-t fogadna.
Hogyan szabályozhatom, mi történik, amikor a betöltő nem tud feloldani egy külső erőforrást?
Implementáld a IResourceLoadingCallback-t, és rendeld hozzá a LoadOptions.ResourceLoadingCallback-hez. Térj vissza ResourceLoadingAction.Skip-val a ResourceLoading(args)-ból, hogy kihagyjuk az erőforrást ahelyett, hogy a betöltés hibára futna.
Az RecoveryMode beállítása megváltoztatja, hogy egy helyesen felépített dokumentum hogyan töltődik be?
Nem. DocumentRecoveryMode csak akkor változtatja a viselkedést, ha a betöltő ténylegesen szerkezeti problémákat észlel — egy helyesen felépített dokumentum ugyanúgy töltődik be a beállítástól függetlenül.