Укажите параметры сохранения
При сохранении документа вы можете задать некоторые дополнительные свойства. Aspose.Words предоставляет вам класс SaveOptions, который позволяет более точно контролировать процесс сохранения. Существуют перегрузки метода Save, которые принимают объект SaveOptions – это должен быть объект класса, производного от класса SaveOptions. Каждому формату сохранения соответствует класс, который содержит параметры сохранения для этого формата сохранения, например, есть PdfSaveOptions для сохранения в формате PDF, MarkdownSaveOptions для сохранения в формате Markdown или ImageSaveOptions для сохранения в виде изображения. В этой статье приведены примеры работы с некоторыми классами параметров, производными от SaveOptions.
В следующем примере кода показано, как настроить параметры сохранения перед сохранением документа в формате HTML:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// The path to the documents directories. | |
System::String inputDataDir = GetInputDataDir_LoadingAndSaving(); | |
System::String outputDataDir = GetOutputDataDir_LoadingAndSaving(); | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"TestFile RenderShape.docx"); | |
// This is the directory we want the exported images to be saved to. | |
System::String imagesDir = System::IO::Path::Combine(outputDataDir, u"SpecifySaveOption.Images"); | |
// The folder specified needs to exist and should be empty. | |
if (System::IO::Directory::Exists(imagesDir)) | |
{ | |
System::IO::Directory::Delete(imagesDir, true); | |
} | |
System::IO::Directory::CreateDirectory_(imagesDir); | |
// Set an option to export form fields as plain text, not as HTML input elements. | |
System::SharedPtr<HtmlSaveOptions> options = System::MakeObject<HtmlSaveOptions>(SaveFormat::Html); | |
options->set_ExportTextInputFormFieldAsText(true); | |
options->set_ImagesFolder(imagesDir); | |
System::String outputPath = outputDataDir + u"SpecifySaveOption.html"; | |
doc->Save(outputPath, options); |
В статье описано несколько свойств, которыми вы можете управлять при сохранении документа.
Зашифруйте документ с помощью пароля
Используйте свойство Password, чтобы получить или задать пароль для зашифрованного документа. Используйте свойство Password соответствующего класса для работы с выбранным форматом документа.
Например, при сохранении документа в формате DOC или DOT используйте свойство Password класса DocSaveOptions.
В следующем примере кода показано, как установить пароль для шифрования документа с использованием метода шифрования RC4:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc"); | |
System::SharedPtr<DocSaveOptions> docSaveOptions = System::MakeObject<DocSaveOptions>(); | |
docSaveOptions->set_Password(u"password"); | |
System::String outputPath = outputDataDir + u"WorkingWithDoc.EncryptDocumentWithPassword.doc"; | |
doc->Save(outputPath, docSaveOptions); |
При сохранении документа в формате ODT используйте свойство Password класса OdtSaveOptions.
В следующем примере кода показано, как загрузить и сохранить OpenDocument, зашифрованный паролем:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"encrypted.odt", System::MakeObject<LoadOptions>(u"password")); | |
System::String outputPath = outputDataDir + u"Load_Options.LoadAndSaveEncryptedODT.odt"; | |
doc->Save(outputPath, System::MakeObject<OdtSaveOptions>(u"newpassword")); |
Не все форматы поддерживают шифрование и использование свойства Password.
Показывать уведомления о ходе сохранения документа
Aspose.Words предоставляет возможность использовать свойство ProgressCallback для получения уведомлений о ходе сохранения документа.
Теперь он доступен при сохранении в форматах DOCX, FlatOpc, DOCM, DOTM, DOTX, HTML, MHTML, EPUB, XamlFlow, XamlFlowPack или TXT.
Обновите время создания документа
Aspose.Words предоставляет возможность использовать свойство CreatedTime для получения или установки даты создания документа в UTC. Вы также можете обновить это значение перед сохранением, используя параметр UpdateCreatedTimeProperty.
В следующем примере кода показано, как обновить время создания документа:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Open a document | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"TestFile.docx"); | |
System::SharedPtr<SaveOptions> options = System::MakeObject<PdfSaveOptions>(); | |
options->set_UpdateLastPrintedProperty(false); | |
System::String outputPath = outputDataDir + u"WorkingWithPdfSaveOptions.UpdateIfLastPrinted.pdf"; | |
doc->Save(outputPath, options); |
Обновить последнее сохраненное свойство
Aspose.Words предоставляет возможность использовать свойство UpdateLastSavedTimeProperty для получения или задания значения, определяющего, обновляется ли свойство LastSavedTime перед сохранением.
В следующем примере кода показано, как установить это свойство и сохранить документ:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc"); | |
System::SharedPtr<OoxmlSaveOptions> ooxmlSaveOptions = System::MakeObject<OoxmlSaveOptions>(); | |
ooxmlSaveOptions->set_UpdateLastSavedTimeProperty(true); | |
System::String outputPath = outputDataDir + u"WorkingWithOoxml.UpdateLastSavedTimeProperty.docx"; | |
// Save the document to disk. | |
doc->Save(outputPath, ooxmlSaveOptions); |
Сохранение черно-белого изображения в формате Один бит на пиксель
Для управления параметрами сохранения изображений используется класс ImageSaveOptions. Например, вы можете использовать свойство PixelFormat, чтобы задать формат пикселей для сгенерированных изображений. Обратите внимание, что формат пикселей выходного изображения может отличаться от заданного значения из-за работы GDI+.
В следующем примере кода показано, как сохранить черно-белое изображение в формате один бит на пиксель:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
System::SharedPtr<ImageSaveOptions> opt = System::MakeObject<ImageSaveOptions>(SaveFormat::Png); | |
auto pageSet = System::MakeObject<PageSet>(System::MakeArray<System::SharedPtr<PageRange>>({System::MakeObject<PageRange>(1,1)})); | |
opt->set_PageSet(pageSet); | |
opt->set_ImageColorMode(ImageColorMode::BlackAndWhite); | |
opt->set_PixelFormat(ImagePixelFormat::Format1bppIndexed); | |
System::String outputPath = outputDataDir + u"ImageColorFilters.SaveImageToOnebitPerPixel.png"; | |
doc->Save(outputPath, opt); |