Pulire un documento

A volte potrebbe essere necessario rimuovere le informazioni inutilizzate o duplicate per ridurre le dimensioni del documento di output e il tempo di elaborazione.

Mentre è possibile trovare e rimuovere manualmente i dati non utilizzati, come stili o elenchi, o duplicare le informazioni, sarà molto più conveniente farlo utilizzando le funzionalità e le funzionalità fornite da Aspose.Words.

La classe CleanupOptions consente di specificare le opzioni per la pulizia del documento. Per rimuovere gli stili duplicati o solo gli stili o gli elenchi non utilizzati dal documento, è possibile utilizzare il metodo Cleanup.

Rimuovere le informazioni non utilizzate da un documento

È possibile utilizzare le proprietà UnusedStyles e UnusedBuiltinStyles per rilevare e rimuovere gli stili contrassegnati come “inutilizzati”.

È possibile utilizzare la proprietà UnusedLists per rilevare e rimuovere elenchi e definizioni di elenchi contrassegnati come “inutilizzati”.

L’esempio di codice seguente mostra come rimuovere solo gli stili non utilizzati da un documento:

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");

Rimuovere le informazioni duplicate da un documento

È inoltre possibile utilizzare la proprietà DuplicateStyle per sostituire tutti gli stili duplicati con quello originale e rimuovere i duplicati da un documento.

L’esempio di codice seguente mostra come rimuovere gli stili duplicati da un documento:

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");