我想使用openxml SDK從Word和PowerPoint文件中刪除所有嵌入的對象。我是Open XML的新手,不確定我是否正確地做到了這一點。以下是我的代碼。我的意圖是刪除嵌入的任何對象並刪除嵌入的圖像。這兩個代碼在執行時都會給出錯誤。如何使用Open XML SDK刪除Word和PowerPoint中的所有嵌入對象?
我嘗試刪除文檔中所有嵌入項目的代碼。
using (var wdDoc = WordprocessingDocument.Open(wordFilePath, true))
{
var docPart = wdDoc.MainDocumentPart;
var document = docPart.Document;
var embeddedObjectsCount = docPart.EmbeddedObjectParts.Count();
while (embeddedObjectsCount > 0)
{
docPart.DeletePart(docPart.EmbeddedObjectParts.FirstOrDefault());
embeddedObjectsCount = docPart.EmbeddedObjectParts.Count();
}
}
代碼,我試圖刪除文檔中的所有圖像。 (這部分工作,如果我沒有嵌入到文檔中的所有對象。)
using (var wdDoc = WordprocessingDocument.Open(wordFilePath, true))
{
var docPart = wdDoc.MainDocumentPart;
var document = docPart.Document;
var imageObjectsCount = docPart.ImageParts.Count();
while (imageObjectsCount > 0)
{
docPart.DeletePart(docPart.ImageParts.FirstOrDefault());
imageObjectsCount = docPart.ImageParts.Count();
}
}
當我運行上面的代碼中,我使用的文件是越來越損壞。我想知道如何在不損壞文件的情況下從Word中刪除所有嵌入的對象。
我還沒有做過什麼PowerPoint,但我希望它會類似於Word文檔。
我的代碼部分一樣,你執行後關閉文檔? – EasyE
我還沒有完全理解Open XML的概念。 MSDN上提供的參考代碼不顯示關閉部分。你能解釋一下嗎?我認爲'使用'將關閉文件。 – Ian
我假設你打開現有的單詞文檔,因爲你試圖刪除已經嵌入的對象是否正確? – EasyE