2 pièce(s) jointe(s)
[C#] [OpenXML] Modification ContentControl text et image
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:
Pièce jointe 173075
Document généré :
Pièce jointe 173076
Code :
Code:
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