我遇到了一個問題,只要我參考一張幻燈片,就會在PowerPoint文檔中刪除空格。下面的代碼示例說明了什麼我均值Powerpoint OpenXML空白正在消失
//Open the document.
using(PresentationDocument presentationDocument = PresentationDocument.Open(pptxFileName, true))
{
//Just making this reference modifies the whitespace in the slide.
Slide slide = presentationDocument.PresentationPart.SlideParts.First().Slide;
}
重現此問題,創建一個幻燈片演示文稿,它包含一個單一的文本框與文本「[]」(不含引號)。現在,將方括號之間的空格的字體設置爲與文本其餘部分不同的顏色。這將導致只包含空白字符的運行。一旦上面的代碼針對這個演示文稿運行,引用該幻燈片的行將導致Run中的空白消失,最終讓我們看到一個視覺上改變的演示文稿,而不是我們最初開始使用的演示文稿,儘管我們從未明確地更改過任何內容 - 當在PowerPoint中打開時,文本現在將變爲「[]」。
在Word中,可以將xml:space屬性設置爲「保留」文本元素以保留空格,但似乎沒有與Powerpoint等效的內容。
這是在將空白用作幻燈片設計的關鍵組件的情況下的關鍵問題。有沒有人想出解決這個問題的方法?
有一定是別的事情上...上面的代碼甚至不會在文件上執行任何IO。即使它做了,它應該做的就是創建對第一張幻燈片的引用....我建議通過手動從pptx中提取原始XML或使用PackageExplorer(http://packageexplorer.codeplex的.com /)。 –
我同意你100%,這是沒有意義的,我必須做錯事,我只是無法弄清楚什麼。我一直在查看原始XML,並且在運行上面發佈的代碼後,文本標記實際上從' '變爲' '。我甚至嘗試在文件中的各個位置(run,paragraph,text,slide,presentation)中添加xml:space =「preserve」屬性無濟於事。 –
ptrc
我將在今晚深入研究PresentationML項目......它不應該花我很長時間來重現這種情況。如果我能弄清楚什麼,我會告訴你。 –