วิธีทำงานกับการตั้งค่าเอกสารใน .NET
คู่มือนี้แสดงวิธีทำงานกับการตั้งค่าเอกสารระดับแอปพลิเคชันใน Aspose.Words FOSS สำหรับ .NET: สวิตช์ความเข้ากันได้แบบเก่า, การตั้งค่าการใส่ hyphen, การกำหนดค่าการรวมจดหมายที่บันทึกไว้, ตัวเลือกการมองเห็น, และการป้องกันการเขียน. Aspose.Words FOSS สำหรับ .NET มีให้ผ่าน NuGet หรือโดยการสร้างจากซอร์สโค้ด.
คู่มือแบบขั้นตอนต่อขั้นตอน
ขั้นตอนที่ 1: รับไลบรารี
คัดลอกรีโพซิทอรีและทำการสร้าง Aspose.Words.sln ในโหมด Release จากนั้นเพิ่มการอ้างอิงโปรเจกต์ไปยัง Aspose.Words.csproj จากโปรเจกต์ .NET ของคุณเอง ตามที่อธิบายใน คู่มือการติดตั้ง. เพิ่ม using Aspose.Words; and using Aspose.Words.Settings; ที่ส่วนบนของไฟล์ใด ๆ ที่อ่านหรือเขียนการตั้งค่าเอกสาร.
ขั้นตอนที่ 2: ตั้งค่าตัวเลือกความเข้ากันได้แบบเก่า
Document.CompatibilityOptions (อินสแตนซ์ของ CompatibilityOptions) มีสวิตช์บูลีนหลายสิบตัวที่จำลองพฤติกรรมการจัดหน้าและการเว้นระยะของ Word รุ่นเก่าอย่างเฉพาะเจาะจง — ตัวอย่างเช่น GrowAutofit, UseWord2010TableStyleRules, AdjustLineHeightInTable, AlignTablesRowByRow, NoExtraLineSpacing, SuppressSpacingAtTopOfPage และ SpacingInWholePoints. ตั้งค่าคุณสมบัติเฉพาะที่คุณต้องการโดยตรง; OptimizeFor(MsWordVersion) มีอยู่ในคลาสแต่จะทำให้เกิด NotImplementedException ในการสร้างนี้, ดังนั้นจึงไม่มีทางลัดที่ใช้โปรไฟล์เวอร์ชันทั้งหมดพร้อมกัน.
ขั้นตอน 3: กำหนดค่าการตั้งค่าการแยกคำ
Document.HyphenationOptions (a HyphenationOptions instance) จัดเก็บการตั้งค่า hyphenation ของ Word สำหรับเอกสาร: AutoHyphenation, ConsecutiveHyphenLimit, HyphenateCaps และ HyphenationZone. คุณสมบัติเหล่านี้ทำการ round-trip คำขอในไฟล์ที่บันทึกไว้; เนื่องจากรุ่นนี้ไม่มีเอนจินการจัดหน้า, การแยกคำ (hyphenation breaks) จะถูกคำนวณโดย Word เมื่อเปิดและทำการแบ่งหน้าไฟล์, ไม่ได้โดย Aspose.Words FOSS.
ขั้นตอน 4: อ่านและเขียนการกำหนดค่า Mail-Merge
Document.MailMergeSettings (a MailMergeSettings instance) จัดเก็บการกำหนดค่า mail-merge ที่บันทึกไว้ในเอกสาร — MainDocumentType, CheckErrors, Destination, DataSource, DataType, Query, ConnectString, MailSubject, MailAsAttachment, ActiveRecord และ ViewMergedData — รวมถึง Clear() และ Clone(). สำหรับแหล่งข้อมูลภายนอกที่เชื่อมต่อผ่านกลไก Office Data Source Object ของ Word, MailMergeSettings.Odso เปิดเผย Odso instance (DataSource, DataSourceType, TableName, ColumnDelimiter, FirstRowContainsColumnNames) ซึ่งคอลเลกชัน FieldMapDatas และ RecipientDatas อธิบายการแมปฟิลด์และรายการผู้รับ. การอ่านและเขียนการกำหนดค่าที่เก็บไว้นี้สามารถทำได้ในรุ่นโอเพนซอร์สนี้; การดำเนินการ merge กับแหล่งข้อมูลสดเป็นเรื่องแยกต่างหากที่อยู่นอกขอบเขตของหน้านี้.
ขั้นตอน 5: กำหนดค่าการแสดงผลเอกสาร
Document.ViewOptions (a ViewOptions instance) ควบคุมวิธีที่ Word แสดงไฟล์เมื่อเปิด: ViewType, ZoomType, ZoomPercent, DisplayBackgroundShape, DoNotDisplayPageBoundaries และ FormsDesign. คุณสมบัติเหล่านี้เป็นการตั้งค่าที่จัดเก็บไว้ซึ่งส่งผลต่อการแสดงผลของ Word ต่อเอกสารเท่านั้น — พวกมันไม่มีผลต่อวิธีที่ Aspose.Words FOSS เองประมวลผลไฟล์นี้.
ขั้นตอน 6: ใช้การป้องกันการเขียน
Document.WriteProtection (a WriteProtection instance) เปิดเผย IsWriteProtected และ ReadOnlyRecommended, พร้อมกับ SetPassword() เพื่อกำหนดรหัสผ่านการป้องกันและ ValidatePassword() เพื่อตรวจสอบรหัสผ่านที่เสนอว่าเป็นไปตามนั้นหรือไม่. เรียก SetPassword() ก่อนตั้งค่า IsWriteProtected = true, และใช้ ValidatePassword() แทนการจัดเก็บหรือเปรียบเทียบสตริงรหัสผ่านดิบด้วยตนเอง.
ปัญหาทั่วไปและการแก้ไข
CompatibilityOptions.OptimizeFor() throws NotImplementedException. เมธอดนี้ยังไม่ได้รับการใช้งานในรุ่นนี้. ตั้งค่าคุณสมบัติเฉพาะ CompatibilityOptions คุณสมบัติแบบบูลีนที่คุณต้องการโดยตรงแทน.
Changing ViewOptions.ZoomPercent ไม่มีผลที่มองเห็นได้ต่อผลลัพธ์ที่สร้างขึ้น. ViewOptions เป็นการตั้งค่าการแสดงผลที่บันทึกไว้และอ่านโดย Word ไม่ได้เป็นสิ่งที่ Aspose.Words FOSS เองนำไปใช้ระหว่างการประมวลผล ไม่จำเป็นต้องแก้ไข — นี่เป็นพฤติกรรมที่คาดไว้.
WriteProtection.ValidatePassword() คืนค่าโดยไม่คาดคิด false. SetPassword() ไม่เคยถูกเรียกใช้ หรือรหัสผ่านที่ตั้งไว้แตกต่าง. เรียก SetPassword() เป็นขั้นแรกเพื่อกำหนดรหัสผ่านที่ได้รับการปกป้องก่อนทำการตรวจสอบ.
การตั้งค่า Mail-merge ถูกบันทึกแล้วแต่การผสานไม่ทำงาน. MailMergeSettings and Odso เก็บการตั้งค่า merge เท่านั้น; รุ่นโอเพ่นซอร์สนี้ไม่ทำการดำเนินการ merge เอง. อ่านการตั้งค่าที่บันทึกไว้และใช้ตรรกะการเติมฟิลด์ของคุณเองกับมัน.
คำถามที่พบบ่อย
CompatibilityOptions.OptimizeFor() ทำงานหรือไม่?
ไม่ — มันจะทำให้เกิด NotImplementedException ในรุ่นนี้ ตั้งค่าคุณสมบัติ CompatibilityOptions แต่ละอย่างที่คุณต้องการโดยตรง.
ฉันจะตั้งรหัสผ่านเพื่อป้องกันการแก้ไขเอกสารอย่างไร?
เรียก WriteProtection.SetPassword() บน Document.WriteProtection แล้วตั้งค่า IsWriteProtected เพื่อเปิดใช้งานการป้องกัน.
HyphenationOptions และ ViewOptions ทำให้ลักษณะของเอกสารเปลี่ยนเมื่อ Aspose.Words FOSS ประมวลผลหรือไม่?
ไม่ ทั้งสองเป็นการตั้งค่าที่เก็บไว้ซึ่ง Word เองนำไปใช้เมื่อตรวจเปิดและแสดงไฟล์; รุ่นนี้ไม่มีเอนจินการจัดหน้าเพื่อทำงานกับมันโดยตรง.
ฉันจะหา mail-merge data-source configuration สำหรับแหล่งข้อมูลภายนอกได้ที่ไหน?
MailMergeSettings.Odso — คอลเลกชัน FieldMapDatas และ RecipientDatas ของมันอธิบายการแมปคอลัมน์และสถานะการรวมผู้รับ.
อะไรคือความแตกต่างระหว่าง Document.CompatibilityOptions และ Document.ViewOptions?
สวิตช์ CompatibilityOptions จำลองรูปแบบการจัดวางและข้อบกพร่องการเว้นวรรคของ Word รุ่นเก่า; ViewOptions ควบคุมวิธีที่อินเทอร์เฟซของ Word เองแสดงไฟล์ (การซูม, เครื่องหมายการจัดรูปแบบ). ทั้งสองไม่ได้ถูกคำนวณโดย Aspose.Words FOSS เอง.