2017-08-08 44 views
0

我要插入的圖片佔位符圖片。以前我會根據需要獲取EXIF信息。這是我的代碼:Python的PPTX圖像佔位符的旋轉使得在PowerPoint畫面消失(沒有的LibreOffice)

placeholder = slide.placeholder[N] 
photo.open() 
ph_picture = placeholder.insert_picture(photo) 
if exif['Orientation'] == LANDSCAPE_ORIENTATION: 
    ph_picture.rotation = 90.0 

當我打開的LibreOffice的pptx生成的文件,圖像看起來不錯。但在PowerPoint中它們消失了。刪除旋轉圖像的線條會使圖像再次出現。

任何線索發生了什麼或有什麼更好的方式來旋轉圖像? (我也試過用PIL,但結果甚至更糟)。

回答

0

一般來說,在這種情況下前進的方式是創建一個幻燈片,看起來你想使用PowerPoint(用手)的方式,然後檢查它創建看看它是如何接近特徵XML。

不幸的是,PowerPoint或OpenOffice的是與規範完全兼容,它們表現出意外的行爲,特別是在邊緣,在較少使用的功能。因此,即使我期望您會發現python-pptx在這種情況下正在生成預期的XML,但出於某種原因,PowerPoint並沒有將其解釋爲規範將要聲明的內容。

但有一個非常高的可能性,如果你能得到的PowerPoint沒有消失,它旋轉圖像,這樣做同樣的事情,它並會產生你之後的結果的XML。這就是我開始的地方。

這是一個有點懷疑,這是一個圖片框不過,我會先用一個正常的圖像形狀嘗試一下,看看它是否有同樣的問題。這可能會縮小它的範圍。

+0

使用不同類型的佈局設計Powerpoint模板對我來說更容易。其中一個圖片佔位符,所以我不需要插入任何形狀。也許問題是我不能旋轉PlaceholderPicture,但對我來說很奇怪,因爲文檔說我會的。然後,您的解決方案是創建新幻燈片並將圖片添加爲形狀,然後嘗試旋轉它? – danieltellez

+0

@danieltellez我認爲你必須做出選擇,無論你想診斷問題還是嘗試不同的事情來找到有效的東西。兩者都是合法的方法。我不知道究竟是什麼使這項工作,所以我建議的方法。如果你在PowerPoint中得到一個工作示例,並將形狀XML與python-pptx生成的形狀進行比較,那很可能會導致精確的診斷。然後你會弄清楚如何讓XML看起來是它需要的。 – scanny

+0

@danieltellez關於以正常的圖片形狀嘗試它的建議,我並不是建議你這樣做最後的實現,只是運行那個小實驗來看看它是否會在你看到的行爲上有所不同。當您進一步探索時,我傾向於認爲這將是一個有用的數據點。 – scanny