Очистка документа
Иногда вам может потребоваться удалить неиспользуемую или дублирующуюся информацию, чтобы уменьшить размер выходного документа и время обработки.
Хотя вы можете найти и удалить неиспользуемые данные, такие как стили или списки, или дублирующую информацию вручную, гораздо удобнее будет делать это с помощью функций и возможностей, предоставляемых Aspose.Words.
Класс CleanupOptions позволяет задать параметры очистки документа. Чтобы удалить повторяющиеся стили или просто неиспользуемые стили или списки из документа, вы можете использовать метод Cleanup.
Удаление неиспользуемой информации из документа
Вы можете использовать свойства UnusedStyles и UnusedBuiltinStyles для обнаружения и удаления стилей, помеченных как “неиспользуемые”.
Свойство UnusedLists можно использовать для обнаружения и удаления списков и определений списков, помеченных как “неиспользуемые”.
В следующем примере кода показано, как удалить из документа только неиспользуемые стили:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto doc = MakeObject<Document>(MyDir + u"Unused styles.docx"); | |
// Combined with the built-in styles, the document now has eight styles. | |
// A custom style is marked as "used" while there is any text within the document | |
// formatted in that style. This means that the 4 styles we added are currently unused. | |
std::cout << (String::Format(u"Count of styles before Cleanup: {0}\n", doc->get_Styles()->get_Count()) + | |
String::Format(u"Count of lists before Cleanup: {0}", doc->get_Lists()->get_Count())) | |
<< std::endl; | |
// Cleans unused styles and lists from the document depending on given CleanupOptions. | |
auto cleanupOptions = MakeObject<CleanupOptions>(); | |
cleanupOptions->set_UnusedLists(false); | |
cleanupOptions->set_UnusedStyles(true); | |
doc->Cleanup(cleanupOptions); | |
std::cout << (String::Format(u"Count of styles after Cleanup was decreased: {0}\n", doc->get_Styles()->get_Count()) + | |
String::Format(u"Count of lists after Cleanup is the same: {0}", doc->get_Lists()->get_Count())) | |
<< std::endl; | |
doc->Save(ArtifactsDir + u"WorkingWithDocumentOptionsAndSettings.CleanupUnusedStylesAndLists.docx"); |
Удаление дублирующейся информации из документа
Вы также можете использовать свойство DuplicateStyle, чтобы заменить все повторяющиеся стили оригинальным и удалить дубликаты из документа.
В следующем примере кода показано, как удалить повторяющиеся стили из документа:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto doc = MakeObject<Document>(MyDir + u"Document.docx"); | |
// Count of styles before Cleanup. | |
std::cout << doc->get_Styles()->get_Count() << std::endl; | |
// Cleans duplicate styles from the document. | |
auto options = MakeObject<CleanupOptions>(); | |
options->set_DuplicateStyle(true); | |
doc->Cleanup(options); | |
// Count of styles after Cleanup was decreased. | |
std::cout << doc->get_Styles()->get_Count() << std::endl; | |
doc->Save(ArtifactsDir + u"WorkingWithDocumentOptionsAndSettings.CleanupDuplicateStyle.docx"); |