2012-06-26 1 views
0

ajouter une image PNG à un mot 2010 tel document:erreur de relation lorsque vous essayez d'intégrer et de l'image dans un document Word

var imagePart = report.MainDocumentPart.AddImagePart(ImagePartType.Png); 
var imagePath = Path.Combine(imageFolder, "1.png"); 
var stream = new FileStream(imagePath, FileMode.Open); 
imagePart.FeedData(stream); 
stream.Close(); 

Je trouve l'élément blip d'un contrôle vide de contenu d'image et changer sa référence propriété pour pointer vers la nouvelle image:

var blip = image.Descendants<Blip>().Single(); 
blip.Embed = report.MainDocumentPart.GetIdOfPart(imagePart); 

Je sauvegarde le document généré et le valide à l'aide de l'outil de productivité Open XML. Je reçois cette erreur:

The relationship 'Ra4d8ccdc5256bb1' referenced by attribute 'http://schemas.openxmlformats.org/officeDocument/2006/relationships:embed' does not exist. 

Quelles sont les relations? Pourquoi ne crée-t-il pas un AddImagePart? Comment réparer cette erreur? Lorsque j'ouvre le document généré dans Word, l'image n'apparaît pas.

Répondre

1

J'ai trouvé une solution. Je ne sais pas pourquoi, mais je devais joindre

WordprocessingDocument report = WordprocessingDocument.Open(path, true) 

une déclaration using comme ceci:

using(WordprocessingDocument report = WordprocessingDocument.Open(path, true)) { 
    //embed the image 
} 

withot using le document n'a pas été enregistré correctement: les relations ont pas été créés.

0

Vous pouvez trouver un échantillon @http://msdn.microsoft.com/en-us/library/bb497430.aspx

+0

L'article explique comment ajouter une image complètement nouvelle, pas comment la référencer dans un contrôle de contenu d'image existant – hidarikani

+1

Pour le contrôle du contenu d'image, vous pouvez lire Remplacer une image dans un contrôle du contenu d'image dans un document XML Open XML //ericwhite.com/blog/2011/03/27/replacing-a-picture-in-a-picture-content-control-in-an-open-xml-wordprocessingml-document/ –

Questions connexes