การโหลดเอกสารด้วย LoadOptions
การโหลดเอกสารด้วย LoadOptions
คู่มือนี้แสดงวิธีควบคุมการโหลดเอกสารที่ซับซ้อนกว่าการระบุเพียงเส้นทางไฟล์หรือสตรีมโดยใช้คลาส LoadOptions Document มีตัวสร้างที่มีการโอเวอร์โหลดรับอินสแตนซ์ของ LoadOptions — Document(fileName, loadOptions) และ Document(stream, loadOptions) — ดังนั้นการตั้งค่าต่าง ๆ ที่อธิบายไว้ที่นี่จะถูกนำไปใช้ในขณะโหลด ก่อนที่อ็อบเจกต์เอกสารจะถูกส่งคืนให้โค้ดของคุณ.
คลาส LoadOptions
LoadOptions ถือค่าการตั้งค่า Aspose.Words ที่ FOSS ต้องการขณะโหลดเอกสารเข้าสู่วัตถุ Document ตัวสร้างของมันรวมถึง LoadOptions() ที่ไม่มีพารามิเตอร์, LoadOptions(password) สำหรับเปิดไฟล์ที่มีการป้องกันด้วยรหัสผ่านโดยตรง, และ LoadOptions(loadFormat, password, baseUri) สำหรับระบุรูปแบบอย่างชัดเจน นอกเหนือจาก Password และ BaseUri (ใช้ในการแก้ไขการอ้างอิงแบบสัมพัทธ์เช่นทรัพยากรที่เชื่อมโยง), LoadOptions เปิดเผย Encoding สำหรับรูปแบบแบบข้อความ, TempFolder สำหรับการประมวลผลเอกสารขนาดใหญ่, MswVersion เพื่อระบุว่ากฎรูปแบบของเวอร์ชัน Word ใดจะถูกนำมาใช้, และ UpdateDirtyFields, IgnoreOleData, และ UseSystemLcid สำหรับการควบคุมพฤติกรรมการโหลดอย่างละเอียด LoadOptions.FontSettings ให้คุณระบุ FontSettings ขณะโหลดแทนการกำหนดค่าแบบอักษรหลังจากเอกสารถูกโหลดแล้ว.
ตัวเลือกการโหลดเฉพาะรูปแบบ
รูปแบบบางอย่างมีซับคลาส LoadOptions ของตนเองที่เปิดเผยการตั้งค่าที่เจาะจงต่อรูปแบบนั้น TxtLoadOptions (สำหรับข้อความธรรมดา) เพิ่ม AutoNumberingDetection, DetectNumberingWithWhitespaces, DetectHyperlinks, DocumentDirection และ LeadingSpacesOptions/TrailingSpacesOptions แยกกันประเภท TxtLeadingSpacesOptions/TxtTrailingSpacesOptions เพื่อควบคุมวิธีการจัดการช่องว่างนำและตามหลังบนแต่ละบรรทัด MarkdownLoadOptions เพิ่ม PreserveEmptyLines, ImportUnderlineFormatting, และ SoftLineBreakCharacter เพื่อควบคุมวิธีที่กฎการขึ้นบรรทัดใหม่ของ Markdown แปลงเป็นย่อหน้าและรันของเอกสาร ทั้งสองซับคลาสสืบทอดคุณสมบัติทั่วไปทุกอย่างของ LoadOptions ดังนั้นรหัสผ่านหรือคอลแบ็กการโหลดทรัพยากรที่ตั้งค่าในอินสแตนซ์ของ TxtLoadOptions หรือ MarkdownLoadOptions จะทำงานเช่นเดียวกับบนคลาสฐาน.
คอลแบ็กการโหลดทรัพยากร
LoadOptions.ResourceLoadingCallback ยอมรับการนำไปใช้ของ IResourceLoadingCallback ซึ่งจะได้รับการแจ้งเมื่อ loader แก้ไขทรัพยากรภายนอกที่อ้างอิงโดยเอกสารที่กำลังโหลด คอลแบ็กจะได้รับ ResourceLoadingArgs ที่อธิบาย ResourceType ของทรัพยากรที่กำลังโหลด และส่งคืน ResourceLoadingAction เพื่อบอก loader ว่าจะโหลดทรัพยากรตามปกติ ข้าม หรือแทนที่ด้วยข้อมูลที่กำหนดเอง นี่เป็นจุดต่อขยายสำหรับการควบคุมหรือดักจับการแก้ไขทรัพยากรระหว่างการโหลด โดยไม่ขึ้นกับรูปแบบที่กำลังอ่าน.
การตั้งค่าภาษา, ทิศทาง, และการกู้คืน
LoadOptions.LanguagePreferences เป็นอ็อบเจ็กต์ประเภท LanguagePreferences ที่ DefaultEditingLanguage (ค่าตัวเลข enum ของ EditingLanguage) กำหนดภาษา Aspose.Words ที่ FOSS สมมติเมื่อเอกสารไม่ได้ระบุไว้โดยชัดเจน; AddEditingLanguage(language) และ AddEditingLanguages(languages) ลงทะเบียนภาษาเพิ่มเติมที่เอกสารอาจใช้ DocumentDirection (ซึ่งยังเปิดให้เข้าถึงโดยตรงบน TxtLoadOptions) เป็น enum ที่มีค่า LeftToRight, RightToLeft และ Auto สำหรับควบคุมทิศทางการไหลของข้อความเมื่อโหลด LoadOptions.RecoveryMode รับค่า DocumentRecoveryMode ซึ่งควบคุมวิธีที่ loader ตอบสนองเมื่อเจอเอกสารที่มีรูปแบบผิดพลาดหรือเสียหายบางส่วน.
คอลแบ็กการดำเนินการและคำเตือน
นอกเหนือจากการโหลดทรัพยากร, LoadOptions.WarningCallback และ LoadOptions.ProgressCallback ยอมรับการนำไปใช้ของคอลแบ็กที่ได้รับการแจ้งเกี่ยวกับปัญหาไม่ถึงขั้นร้ายแรงที่พบระหว่างการโหลดและความคืบหน้าการโหลดตามลำดับ — มีประโยชน์สำหรับการแสดงปัญหาที่สามารถกู้คืนได้ต่อโค้ดที่เรียกหรือการรายงานความคืบหน้าในเอกสารขนาดใหญ่โดยไม่ต้องโพล.
เคล็ดลับและแนวปฏิบัติที่ดีที่สุด
- ส่งค่า
LoadOptions(password)(หรือกำหนดLoadOptions.Password) แทนการจับข้อยกเว้นการโหลดและลองใหม่ — Aspose.Words FOSS จำเป็นต้องได้รับรหัสผ่านก่อนจะสามารถวิเคราะห์เอกสารได้เลย. - กำหนดค่า
LanguagePreferences.DefaultEditingLanguageเมื่อโหลดเอกสารที่ข้อมูลเมตาภาษาขาดหายหรือไม่น่าเชื่อถือ เพื่อให้การประมวลผลที่ขึ้นกับภาษาในขั้นต่อไปทำงานได้อย่างคาดเดาได้. - ควรใช้คลาสตัวเลือกเฉพาะรูปแบบ (
TxtLoadOptions,MarkdownLoadOptions) แทนคลาสฐานLoadOptionsเมื่อต้องโหลดรูปแบบเหล่านั้น เนื่องจากคลาสย่อยเฉพาะนั้นเปิดเผยการตั้งค่าที่เกี่ยวข้องกับรูปแบบที่คลาสฐานไม่มี. - ให้ใช้
IResourceLoadingCallbackเมื่อต้องการเปลี่ยนเส้นทาง แคช หรือบล็อกการแก้ไขทรัพยากรภายนอกระหว่างการโหลด แทนที่จะทำหลังจากเอกสารถูกโหลดเข้าสู่หน่วยความจำแล้ว. - ตั้งค่า
LoadOptions.RecoveryModeอย่างเจตนา สำหรับไพรไลน์ที่ประมวลผลเอกสารจากแหล่งที่ไม่เชื่อถือหรือบุคคลที่สาม แทนการพึ่งพาพฤติกรรมการกู้คืนค่าเริ่มต้น.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | แก้ไข |
|---|---|---|
| การโหลดเอกสารที่มีการป้องกันด้วยรหัสผ่านทำให้เกิดข้อยกเว้น | ไม่ได้ระบุรหัสผ่าน หรือระบุรหัสผ่านหลังจากการโหลดเริ่มต้นแล้ว | ส่ง LoadOptions(password) (หรือกำหนด Password บนอินสแตนซ์ของ LoadOptions) ไปยัง overload ของคอนสตรัคเตอร์ Document ที่รับ LoadOptions |
| ช่องว่างที่ขึ้นต้นหรือท้ายในไฟล์ข้อความที่โหลดไม่ได้รับการจัดการตามที่คาดหวัง | พฤติกรรมเริ่มต้นของ TxtLeadingSpacesOptions/TxtTrailingSpacesOptions ไม่ตรงกับรูปแบบช่องว่างของไฟล์ต้นฉบับ | ตั้งค่า TxtLoadOptions.LeadingSpacesOptions / TrailingSpacesOptions อย่างชัดเจน |
| การขึ้นบรรทัดใหม่ใน Markdown ไม่สอดคล้องกับโครงสร้างย่อหน้าที่คาดหวัง | MarkdownLoadOptions.PreserveEmptyLines หรือ SoftLineBreakCharacter ไม่ตรงกับรูปแบบของ Markdown ต้นฉบับ | ปรับคุณสมบัติ MarkdownLoadOptions ที่เกี่ยวข้องก่อนทำการโหลด |
| การโหลดทรัพยากรภายนอกไม่สามารถตรวจสอบหรือควบคุมได้ | ไม่มี IResourceLoadingCallback ถูกลงทะเบียนบน LoadOptions.ResourceLoadingCallback | ดำเนินการ IResourceLoadingCallback และกำหนดค่าให้ก่อนทำการโหลด |
FAQ
ฉันจะโหลดเอกสารที่มีการป้องกันด้วยรหัสผ่านอย่างไร?
สร้าง LoadOptions พร้อมรหัสผ่าน — new LoadOptions(password) — หรือกำหนด LoadOptions.Password แล้วส่งต่อให้ new Document(fileName, loadOptions) หรือ new Document(stream, loadOptions).
ฉันต้องการคลาสย่อย LoadOptions เฉพาะรูปแบบหรือไม่ หรือคลาสฐานก็เพียงพอแล้ว?
คลาสพื้นฐาน LoadOptions ครอบคลุมการตั้งค่าที่เป็นทั่วไปสำหรับทุกรูปแบบ (รหัสผ่าน, การเข้ารหัส, คอลแบ็ก). ใช้คลาสย่อยเฉพาะรูปแบบ เช่น TxtLoadOptions หรือ MarkdownLoadOptions เมื่อคุณต้องการการตั้งค่าที่เจาะจงสำหรับรูปแบบนั้น เช่น การจัดการช่องว่างสำหรับไฟล์ข้อความหรือกฎการขึ้นบรรทัดใหม่สำหรับ Markdown.
ฉันจะดักจับหรือเปลี่ยนเส้นทางทรัพยากรที่เอกสารอ้างอิงขณะโหลดได้อย่างไร?
ทำการติดตั้ง IResourceLoadingCallback และกำหนดให้กับ LoadOptions.ResourceLoadingCallback ก่อนการโหลด คอลแบ็กจะรับ ResourceLoadingArgs สำหรับแต่ละทรัพยากรและคืนค่า ResourceLoadingAction เพื่อกำหนดวิธีที่ตัวโหลดดำเนินการต่อ.
ฉันจะควบคุมภาษาที่ Aspose.Words FOSS สมมุติสำหรับเอกสารที่โหลดได้อย่างไร?
ตั้งค่า LoadOptions.LanguagePreferences.DefaultEditingLanguage เป็นค่าชนิด EditingLanguage ก่อนการโหลด; ใช้ AddEditingLanguage/AddEditingLanguages เพื่อลงทะเบียนภาษาที่เพิ่มเติมที่เอกสารอาจมี.
จะเกิดอะไรขึ้นหากตัวโหลดพบเอกสารที่มีรูปแบบผิดพลาด?
พฤติกรรมถูกควบคุมโดย LoadOptions.RecoveryMode, ค่าชนิด DocumentRecoveryMode ที่กำหนดว่าตัวโหลดจะตอบสนองต่อปัญหาโครงสร้างในเอกสารต้นทางอย่างไร.
API Reference สรุป
| คลาส/เมธอด | คำอธิบาย |
|---|---|
LoadOptions | อ็อบเจกต์ตัวเลือกพื้นฐานที่ควบคุมวิธีการโหลดเอกสาร |
Document(fileName, loadOptions) / Document(stream, loadOptions) | การโอเวอร์โหลดคอนสตรัคเตอร์ที่ใช้ LoadOptions ในระหว่างการโหลด |
TxtLoadOptions | ตัวเลือกการโหลดที่เฉพาะสำหรับเอกสารข้อความธรรมดา |
MarkdownLoadOptions | ตัวเลือกการโหลดที่เฉพาะสำหรับเอกสาร Markdown |
IResourceLoadingCallback | อินเทอร์เฟซคอลแบ็กสำหรับการดักจับการแก้ไขทรัพยากรภายนอกระหว่างการโหลด |
ResourceLoadingArgs / ResourceLoadingAction | ข้อมูลเหตุการณ์ต่อทรัพยากรและการกระทำที่ส่งกลับไปยังตัวโหลด |
LanguagePreferences | กำหนดค่าภาษาเริ่มต้นและภาษาเพิ่มเติมสำหรับการแก้ไขที่สมมติว่าใช้เมื่อโหลด |
DocumentDirection | Enum ที่ควบคุมทิศทางการไหลของข้อความ (LeftToRight, RightToLeft, Auto) |
DocumentRecoveryMode | ควบคุมพฤติกรรมของตัวโหลดเมื่อเอกสารถูกจัดรูปแบบอย่างไม่ถูกต้อง |