Я пытаюсь вставить аудиофайл в Word do c, используя Open Xml. Я реализовал свой код, но после выполнения моего кода аудиофайл не добавлен. Я также помогу OPEN XML SDK Tool 2.5. Код кажется нормальным, но звук не вставлен. Ниже мой проверенный код:
ImagePart imagePart = mainPart.AddImagePart(ImagePartType.Emf);
using (var imageStream = new ExportUtils().GetBinaryDataStream())
{
imagePart.FeedData(imageStream);
}
EmbeddedObjectPart embeddedObjectPart = mainPart.AddEmbeddedObjectPart("application/vnd.openxmlformats-officedocument.oleObject");
thumPath = GetMyFilePath(); //Audio file path
using (var objStream = new FileStream(thumPath, FileMode.Open))
{
embeddedObjectPart.FeedData(objStream);
}
AddAudio(wordprocessingDocument, mainPart.GetIdOfPart(imagePart), mainPart.GetIdOfPart(embeddedObjectPart), posX, posY);
Код вставки звука
private static void AddAudio(WordprocessingDocument wordDoc, string imgRelationshipId, string objRelationshipId, int x, int y)
{
string style = string.Format("position: absolute; margin - left:{0}pt; margin - top:{1}pt; width: 75.5pt; height: 49pt; z - index:-251657216; mso - position - horizontal - relative:text; mso - position - vertical - relative:text", x, y);
ow.EmbeddedObject embeddedObject = new ow.EmbeddedObject() { DxaOriginal = "1440", DyaOriginal = "1440", AnchorId = "6359C433" };
V.Shape shape = new V.Shape() { Id = "_x0000_s1026", Style = style };
V.ImageData imageData = new V.ImageData() { Title = "Voice", RelationshipId = imgRelationshipId };
shape.Append(imageData);
Ovml.OleObject oleObject = new Ovml.OleObject() { Type = Ovml.OleValues.Embed, ProgId = "Package", ShapeId = "_x0000_s1026", DrawAspect = Ovml.OleDrawAspectValues.Icon, ObjectId = "_1647627410", Id = objRelationshipId };
embeddedObject.Append(shape);
embeddedObject.Append(oleObject);
wordDoc.MainDocumentPart.Document.Body.AppendChild(new ow.Paragraph(new ow.Run(embeddedObject)));
}
Мой проект: x64