Nettoyer un Document
Parfois, vous devrez peut-être supprimer des informations inutilisées ou en double pour réduire la taille du document de sortie et le temps de traitement.
Bien que vous puissiez rechercher et supprimer manuellement les données inutilisées, telles que les styles ou les listes, ou dupliquer des informations, il sera beaucoup plus pratique de le faire en utilisant les fonctionnalités et capacités fournies par Aspose.Words.
La classe CleanupOptions vous permet de spécifier des options pour le nettoyage des documents. Pour supprimer des styles en double ou simplement des styles ou des listes inutilisés du document, vous pouvez utiliser la méthode Cleanup.
Supprimer les informations inutilisées d’un Document
Vous pouvez utiliser les propriétés UnusedStyles et UnusedBuiltinStyles pour détecter et supprimer les styles marqués comme “inutilisés”.
Vous pouvez utiliser la propriété UnusedLists pour détecter et supprimer les listes et les définitions de liste marquées comme “inutilisées”.
L’exemple de code suivant montre comment supprimer uniquement les styles inutilisés d’un document:
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"); |
Supprimer les informations en double d’un document
Vous pouvez également utiliser la propriété DuplicateStyle pour remplacer tous les styles en double par celui d’origine et supprimer les doublons d’un document.
L’exemple de code suivant montre comment supprimer les styles en double d’un document:
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"); |