Збереження та експорт документів

Збереження та експорт документів

Збереження та експорт документів

Document.Save записує документ у файл або потік у цільовому форматі. Формат або виводиться з розширення файлу, явно вказується як значення SaveFormat, або керується підкласом SaveOptions — OoxmlSaveOptions, MarkdownSaveOptions або TxtSaveOptions — для специфічного налаштування формату. У цьому посібнику розглядаються перевантаження Save, перелік SaveFormat, параметри збереження OOXML, експорт у Markdown та простий текст, а також визначення формату перед конвертацією.


Збереження за допомогою Document.Save

Найпростіший виклик, Document.Save(fileName), визначає цільовий формат за розширенням файлу. Save(fileName, saveFormat) робить формат явним незалежно від розширення, а Save(fileName, saveOptions) (або відповідні перевантаження Stream) приймає підклас SaveOptions для специфічних налаштувань формату. SaveOptions.CreateSaveOptions(saveFormat) — це статична фабрика, яка повертає правильний підклас параметрів для даного SaveFormat з уже встановленими значеннями за замовчуванням.


Вибір формату за допомогою SaveFormat

Перелік SaveFormat містить усі ідентифікатори форматів збереження, які розпізнає бібліотека. Document.Save повністю записує як у, так і з основних форматів документів цього випуску — DOCX, DOCM, DOTX, DOTM та Flat OPC (разом з їхніми макросмонтованими та шаблонними варіантами) — а також Markdown і простий текст. FileFormatUtil.SaveFormatToExtension(saveFormat) і ExtensionToSaveFormat(extension) перетворюють між переліченням та рядком розширення файлу.

Деякі значення SaveFormat присутні в переліченні для повноти API, але відповідають форматам, для яких ця спрощена, open-source версія не реалізує робочий читач або записувач — спроба зберегти у один із таких форматів дає результат, який не еквівалентний вихідному документу. Дотримуйтеся форматів, зазначених вище, для надійного двостороннього обміну.


Параметри 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Записує документ у файл, потік або ціль виведення у вибраному форматі.
SaveFormatПерелік, що ідентифікує цільовий формат для операції збереження.
SaveOptionsАбстрактний базовий клас для конфігурації збереження, специфічної для формату; CreateSaveOptions(saveFormat) повертає відповідний підклас.
OoxmlSaveOptionsПараметри для DOCX, DOCM, DOTX, DOTM та Flat OPC — пароль, сумісність, стиснення.
MarkdownSaveOptionsПараметри експорту Markdown — відображення списків/посилань, обробка зображень.
TxtSaveOptions / TxtSaveOptionsBaseОпції для експорту у простому тексті — кодування, розриви рядків, розташування таблиці.
FileFormatUtil.DetectFileFormatВизначає формат файлу перед його завантаженням або конвертуванням.
FileFormatUtil.SaveFormatToExtension / ExtensionToSaveFormatКонвертує між значенням SaveFormat та розширенням файлу.

Дивіться також

 Українська