3

idを使用して Word から画像を抽出するには、 Drawing オブジェクトの関係を取得する必要がありますOpenXmlOpenXML を使用して word doc で画像を置換するのを見たので、現在このコードを使用しています。

string imageId = "default value";
Blip blipElement = selectedImage.Descendants<Blip>().First();
if (blipElement != null) {
    imageId = blipElement.Embed.Value;
}
document.MainDocumentPart.GetPartById(imageId);

通常の画像では完全に機能しますが、 EMF Drawing には Blip がないため、docx 内に EMF 画像として保存されている PowerPoint スライドでは機能しません。しかし、彼らはImagePartsいつものように画像を持っていて、私はそれらを見ることができます. 問題は、これらの EMF ImageParts を取得するために Drawing から imageId を見つけるにはどうすればよいかということです。残念ながら、別の方法で画像を抽出することはできません。コードを巨大な既存のコードベースに挿入しようとしているためです。そのため、Drawing オブジェクトから画像を取得する必要があります。

4

1 に答える 1

0

さて、問題は私が間違ったものを見ていたことです。私が見た Blip のない Drawing は、実際には PP スライドではなく、グラフ (挿入->グラフ) でした。xml は次のとおりです。http://pastebin.com/9vyBJDLh /charts/ フォルダー内の chart1.xml を指すチャート関係があります。また、チャート用に生成された EMF はありません。

「挿入 -> オブジェクト -> Microsoft PowerPoint スライド」で挿入されたスライドは、まったく異なる形式であり、図面ではないため、個別に処理する必要があります: http://pastebin.com/JJ3piJi3および imageData 要素の rId は、実際には下の EMF ファイルを指しています。 /media/ フォルダー。

于 2013-11-08T10:18:22.177 に答える