การบันทึกและการส่งออกเอกสาร

การบันทึกและการส่งออกเอกสาร

การบันทึกและส่งออกเอกสาร

Document.Save เขียนเอกสารไปยังไฟล์หรือสตรีมในรูปแบบเป้าหมาย รูปแบบจะถูกสรุปจากนามสกุลไฟล์, ระบุอย่างชัดเจนเป็นค่า SaveFormat, หรือถูกกำหนดโดยคลาสย่อย SaveOptions — OoxmlSaveOptions, MarkdownSaveOptions, หรือ TxtSaveOptions — เพื่อการควบคุมเฉพาะรูปแบบ คู่มือนี้ครอบคลุมการโอเวอร์โหลด Save, enum SaveFormat, ตัวเลือกการบันทึก OOXML, การส่งออก Markdown และข้อความธรรมดา, และการตรวจจับรูปแบบก่อนการแปลง.


การบันทึกด้วย Document.Save

การเรียกที่ง่ายที่สุด, Document.Save(fileName), สรุปรูปแบบเป้าหมายจากนามสกุลไฟล์ Save(fileName, saveFormat) ทำให้รูปแบบเป็นแบบชัดเจนโดยไม่คำนึงถึงนามสกุล, และ Save(fileName, saveOptions) (หรือการโอเวอร์โหลด Stream ที่สอดคล้อง) รับคลาสย่อย SaveOptions สำหรับการตั้งค่าเฉพาะรูปแบบ SaveOptions.CreateSaveOptions(saveFormat) เป็นโรงงานแบบสแตติกที่คืนคลาสย่อยตัวเลือกที่ถูกต้องสำหรับ SaveFormat ที่กำหนดโดยมีค่าเริ่มต้นตั้งไว้แล้ว.


การเลือกรูปแบบด้วย SaveFormat

enum SaveFormat แสดงรายการตัวระบุรูปแบบการบันทึกทั้งหมดที่ไลบรารีรับรู้ Document.Save เขียนเต็มทั้งจากและไปยังรูปแบบเอกสารหลักของฉบับนี้ — DOCX, DOCM, DOTX, DOTM, และ Flat OPC (พร้อมรูปแบบที่เปิดใช้งานมาโครและเทมเพลต) — รวมถึง Markdown และข้อความธรรมดา FileFormatUtil.SaveFormatToExtension(saveFormat) และ ExtensionToSaveFormat(extension) แปลงระหว่าง enum กับสตริงนามสกุลไฟล์.

ค่าบางอย่างของ SaveFormat มีอยู่ใน enum เพื่อความสมบูรณ์ของ API แต่สอดคล้องกับรูปแบบที่ฉบับที่ลดขนาดและเป็นโอเพ่นซอร์สนี้ไม่ได้ทำการอ่านหรือเขียนที่ทำงานได้ — การพยายามบันทึกเป็นรูปแบบเหล่านั้นจะให้ผลลัพธ์ที่ไม่เทียบเท่ากับเอกสารต้นฉบับ โปรดใช้รูปแบบที่ระบุด้านบนเพื่อการวนกลับที่น่าเชื่อถือ.


ตัวเลือก OOXML: DOCX, DOCM, DOTX, DOTM, และ Flat OPC

OoxmlSaveOptions กำหนดการบันทึกเป็นรูปแบบใดก็ได้ของ Open XML. คุณสมบัติ SaveFormat ของมันเลือกตัวแปรเฉพาะที่จะเขียน; Password ตั้งรหัสผ่านเปิดไฟล์ที่บันทึก (แยกจากข้อจำกัดการแก้ไขของ Document.Protect); Compliance เลือกระดับความเข้มงวดของ OOXML; และ CompressionLevel / Zip64Mode ควบคุมการบรรจุ ZIP ด้านล่าง. สร้างหนึ่งด้วย new OoxmlSaveOptions(saveFormat) หรือผ่าน SaveOptions.CreateSaveOptions(saveFormat).


การส่งออกเป็น Markdown

MarkdownSaveOptions ควบคุมการส่งออกเป็น Markdown: ListExportMode และ LinkExportMode กำหนดว่ารายการและลิงก์จะถูกแสดงอย่างไร, ImagesFolder / ImagesFolderAlias ควบคุมว่าภาพที่แยกออกจะถูกเขียนที่ไหนและอ้างอิงอย่างไร, ExportImagesAsBase64 ฝังภาพเหล่านั้นในบรรทัดแทน, และ TableContentAlignment มีผลต่อการสร้างมาร์คอัปของตาราง. ส่งออบเจกต์ MarkdownSaveOptions ไปยัง Document.Save(fileName, saveOptions) พร้อมชื่อไฟล์ .md, หรือกำหนด SaveFormat ของมันอย่างชัดเจน.


การส่งออกเป็นข้อความธรรมดา

TxtSaveOptions (ผ่าน TxtSaveOptionsBase พื้นฐานของมัน, ที่ใช้ร่วมกับ MarkdownSaveOptions) ควบคุมการส่งออกเป็นข้อความธรรมดา: Encoding ตั้งค่าการเข้ารหัสอักขระ, ParagraphBreak ตั้งค่าสตริงจบบรรทัด, MaxCharactersPerLine ทำการตัดบรรทัดยาว, SimplifyListLabels ปรับรูปแบบหัวข้อ/หมายเลขรายการให้เป็นอักขระธรรมดา, และ PreserveTableLayout พยายามจัดคอลัมน์ตารางให้ตรงกันโดยใช้ช่องว่าง.


การตรวจจับรูปแบบก่อนแปลง

ก่อนที่จะแปลงไฟล์ที่คุณไม่ทราบรูปแบบ, FileFormatUtil.DetectFileFormat(fileName) จะคืนค่า FileFormatInfo พร้อมกับ LoadFormat ที่ตรวจจับได้. ผสานสิ่งนี้กับ FileFormatUtil.LoadFormatToSaveFormat(loadFormat) เพื่อพิจารณาว่าการวนกลับผ่านรูปแบบที่รุ่นนี้สนับสนุนเป็นไปได้หรือไม่ ก่อนที่จะพยายาม Document.Save.


เคล็ดลับและแนวปฏิบัติที่ดีที่สุด

  • ใช้ Save(fileName, saveOptions) แทนการโอเวอร์โหลด Save(fileName, saveFormat) แบบธรรมดาเมื่อคุณต้องการควบคุมพฤติกรรมเฉพาะรูปแบบ เช่น การแสดงรายการ Markdown หรือการบีบอัด OOXML.
  • ตั้งค่า OoxmlSaveOptions.Password สำหรับไฟล์ที่มีการป้องกันด้วยรหัสผ่านแบบเปิด; นี่แตกต่างจาก Document.Protect ซึ่งจำกัดการแก้ไขแต่ไม่ได้เข้ารหัสไฟล์.
  • เลือก MarkdownSaveOptions.ExportImagesAsBase64 สำหรับไฟล์ Markdown แบบอิสระหนึ่งไฟล์, หรือ ImagesFolder เมื่อคุณต้องการโฟลเดอร์ของไฟล์รูปภาพที่แยกออกมาพร้อมกับ Markdown.
  • เรียกใช้ SaveOptions.CreateSaveOptions(saveFormat) แทนการเลือกคลาสตัวเลือกที่เป็นรูปธรรมด้วยตนเองเมื่อรูปแบบเป้าหมายกำหนดในเวลารัน.
  • ตรวจสอบรูปแบบเป้าหมายด้วย FileFormatUtil ก่อนการแปลง แทนการพึ่งพานามสกุลไฟล์ที่อาจผิดพลาดหรือทำให้สับสน.

ปัญหาทั่วไป

ปัญหาสาเหตุการแก้ไข
Save(fileName) เลือกรูปแบบที่ไม่ถูกต้องนามสกุลไฟล์ไม่ตรงกับรูปแบบที่ต้องการใช้ Save(fileName, saveFormat) หรือ Save(fileName, saveOptions) เพื่อระบุรูปแบบให้ชัดเจน
ไฟล์ OOXML ที่บันทึกไว้ไม่สามารถเปิดด้วยรหัสผ่านOoxmlSaveOptions.Password ไม่ได้ตั้งค่าก่อนการบันทึกสร้าง OoxmlSaveOptions, ตั้งค่า Password, และส่งต่อให้ Save
การส่งออก Markdown กระจายไฟล์รูปภาพโดยไม่คาดคิดพฤติกรรมเริ่มต้นของ MarkdownSaveOptions จะดึงรูปภาพออกเป็นไฟล์ตั้งค่า ExportImagesAsBase64 = true เพื่อให้เป็นไฟล์เดียวที่บรรจุเอง, หรือกำหนดค่า ImagesFolder เพื่อควบคุมตำแหน่งที่รูปภาพจะถูกจัดเก็บ
การส่งออกเป็นข้อความธรรมดา ทำให้การจัดแนวคอลัมน์ของตารางหายไปTxtSaveOptions.PreserveTableLayout ถูกปล่อยไว้ในค่าตั้งต้นตั้งค่า PreserveTableLayout = true ก่อนบันทึก

FAQ

ฉันจะบันทึกเอกสารเป็นรูปแบบเฉพาะโดยไม่คำนึงถึงนามสกุลไฟล์ได้อย่างไร?

เรียก Save(fileName, saveFormat) พร้อมค่าของ SaveFormat อย่างชัดเจน หรือ Save(fileName, saveOptions) พร้อมซับคลาส SaveOptions ที่ตรงกัน.

รูปแบบใดบ้างที่ฉบับนี้อ่านและเขียนได้ทั้งสองทาง?

DOCX, DOCM, DOTX, DOTM, Flat OPC (รวมถึงรูปแบบที่เปิดใช้งานมาโครและเทมเพลต), Markdown, และข้อความธรรมดา.

ฉันจะตั้งรหัสผ่านเพื่อป้องกันไฟล์ที่บันทึกไว้ได้อย่างไร?

ตั้งค่า Password บนอินสแตนซ์ของ OoxmlSaveOptions แล้วส่งให้ Document.Save(fileName, saveOptions).

ฉันจะควบคุมการลงท้ายบรรทัดในไฟล์ข้อความที่ส่งออกได้อย่างไร?

ตั้งค่า ParagraphBreak บนอินสแตนซ์ของ TxtSaveOptions ก่อนบันทึก.

ฉันจะตรวจสอบว่าไฟล์อยู่ในรูปแบบใดก่อนที่จะทำการแปลงได้อย่างไร?

เรียก FileFormatUtil.DetectFileFormat(fileName) และอ่าน FileFormatInfo.LoadFormat ที่ส่งกลับมา.


สรุป API Reference

คลาส/เมธอดคำอธิบาย
Document.Saveเขียนเอกสารไปยังไฟล์, สตรีม หรือเป้าหมายการส่งออกในรูปแบบที่เลือก.
SaveFormatEnum ระบุรูปแบบเป้าหมายสำหรับการดำเนินการบันทึก.
SaveOptionsคลาสฐานเชิงนามธรรมสำหรับการกำหนดค่าการบันทึกเฉพาะรูปแบบ; CreateSaveOptions(saveFormat) ส่งกลับซับคลาสที่ตรงกัน.
OoxmlSaveOptionsตัวเลือกสำหรับ DOCX, DOCM, DOTX, DOTM, และ Flat OPC — รหัสผ่าน, ความสอดคล้อง, การบีบอัด.
MarkdownSaveOptionsตัวเลือกสำหรับการส่งออก Markdown — การแสดงรายการ/ลิงก์, การจัดการภาพ.
TxtSaveOptions / TxtSaveOptionsBaseตัวเลือกสำหรับการส่งออกข้อความธรรมดา — การเข้ารหัส, การขึ้นบรรทัดใหม่, การจัดรูปแบบตาราง.
FileFormatUtil.DetectFileFormatตรวจจับรูปแบบของไฟล์ก่อนทำการโหลดหรือแปลงไฟล์.
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormatแปลงระหว่างค่า SaveFormat กับส่วนขยายไฟล์.

ดูเพิ่มเติม

 ภาษาไทย