Je tente de modifier certaines propriétés CustomDocumentProperties pour un document .docx. J'ai été capable de lire la valeur actuelle et de la modifier, mais lorsque je sauvegarde le document, les modifications apportées aux champs personnalisés sont perdues.Enregistrement de propriétés de document Word 2007 dans C# 2.0
je la méthode suivante dans une classe DocAccessor (qui sert d'interface pour mes fichiers doc):
void SetInfo(string key, string val) {
object custom_properties = current_doc.CustomDocumentProperties;
Type custom_properties_type = custom_properties.GetType();
custom_properties_type.InvokeMember("Item", BindingFlags.Default | BindingFlags.SetProperty, null, custom_properties, new object[] { key, val });
}
ailleurs je l'appelle:
doc_accessor.GetInfo("Number") //returns 5
doc_accessor.SetInfo("Number", "6");
doc_accessor.GetInfo("Number") //returns 6
doc_accessor.SaveAndClose();
doc_accessor.Open(); //it retains the path, so I don't need to respecify
doc_accessor.GetInfo("Number") //returns 5
Ma fonction doc_accessor.SaveAndClose() fonctionne correctement comme j'ai modifié le chemin d'enregistrer à un emplacement différent et il l'a fait ... mais sans écrire le CustomDocumentProperties modifié. Cela donne l'impression qu'il existe une étape de validation qui me manque, mais que current_doc.Save() ne devrait pas gérer cela?
Merci! La définition de current_doc.Saved à false a fait l'affaire. –