2012-10-03 53 views
3

我使用OpenXml以這種方式創建自定義PowerPoint演示文稿:我在演示文稿中放置了一個關鍵字,在OpenXml過程中發現它並更改了文本值。一切工作正常,但合適的選擇一開始不工作。 文本框有選項「自動調整:在溢出時收縮文本;在形狀中包裝文本:打開」 經過我的過程後,新文本出現在正確的位置,但自動調整未完成,我需要單擊文本框並單擊爲看到自動調整工作做一個輸入。我認爲PowerPoint只會在修改後檢查選項。使用OpenXml在Powerpoint上更改文本值不適合

我想要的是在過程結束時調用autofit選項。誰能幫我?

我希望你明白我想要做什麼。

謝謝。

回答

5

僅僅使用OpenXML是不可能的。根據需要,<a:normAutofit/>標記由客戶端應用程序(如PowerPoint)用於使文本變大或變小。 OpenXML實際上並沒有渲染任何東西,所以直到客戶端完成,它纔會讀取文本,就好像它不是自動擬合的。

有幾個選項可以控制這個 - 但他們都不是很好。一種方法是在PowerPoint中使用VSTO或VBA來檢查打開的PPTX上的所有形狀,並且如果它們具有AutoFit標記,則重新渲染它們。第二種方法是根據形狀的寬度&高度自己完成所有字體測量,然後將字體比例設置爲適當的百分比。另一種方法是製作一個足夠大的文本框,以適應您將要插入的最大量的文本,然後關閉自動分類。

對不起,這不會立即幫助你。我對這個問題做了大量的研究,這都是壞消息。

+0

感謝您的回答,顯然您找到了與我相同的信息。我想自己做所有的字體測量,但對於一個簡單的選項來說,它變得有點複雜。最後,我創建的解決方案是使用剪切條目字符串,如果它對於形狀來說太大。再次感謝您的研究。 –

+0

我也研究過這個問題,發現了以下內容:如果您從標記中刪除,則Powerpoint會在您打開文檔時再次呈現文本框。 – Hans

+0

@Hans:我剛測試過這個,但沒有奏效。事實上,它不適用於或不適用''。另外,即使它做了輕微的工作(例如,您將它設置爲在客戶端中呈現),然後您重新編輯了''標籤以獲得大量文本,fontcopy =「85000」lnSpcReduction =「不使用''中的10000「'。它需要在客戶端重新渲染,然後這兩個屬性會改變。 –

相關問題