Bonsoir,

j'ai 2 petits soucis concernant la migration d'une version en Automation Word 2013 vers Open XML.

Mon fichier de base contient que des Contrôles de Contenu (Texte ou Image). Le but étant de ne modifier que ces contrôles.

Tout ce qui entre <> correspond à un contrôle.

- Lors du remplacement du texte, certain conservent une partie du texte précédent, pourquoi est ce qu'il m'en veux autant ?

- Le contrôle de contenu de l'image est bien catché pourtant il ne semble pas trouver d'image, décidément

Source:
Nom : Word control content.png
Affichages : 369
Taille : 20,9 Ko

Document généré :
Nom : Word control content - error.png
Affichages : 304
Taille : 16,3 Ko

Code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
string strSource = @"D:\Courrier.docx";
using (WordprocessingDocument doc = WordprocessingDocument.Open(strSource, true))
{
	// Loop all all ContentControls
	foreach (var cc in doc.ContentControls())
	{
		SdtRun xRun = (SdtRun)cc;
		SdtContentRun xContentRun = xRun.Descendants<SdtContentRun>().FirstOrDefault();
		SdtAlias alias = xRun.Descendants<SdtAlias>().FirstOrDefault();
		Run xRun2 = xContentRun.Descendants<Run>().FirstOrDefault();
		Text xText = xRun.Descendants<Text>().FirstOrDefault();
 
		SdtContentPicture xImages = xRun.Elements<SdtContentPicture>().FirstOrDefault();
 
		string sdtTitle = alias.Val.Value;
		Console.WriteLine(sdtTitle);
		if (xText != null)
		{
			xText.Text = "test";
		}
 
		if (xImages != null)
		{
			int j = 0;  // TODO
		}
	}
doc.MainDocumentPart.Document.Save();
}
Merci,

Vincent