2016-03-01 69 views
0

我正在使用Google Drive API v3閱讀橫向導航的Google文檔,並嘗試用其他內容替換文檔中的幾個單詞。Google文檔在API更新操作中丟失方向

例如,如果文檔包含「Text_to_replace」,我搜索該字符串並將其替換爲「Hello World!」。

但是,每次使用Google Drive API更新Google文檔的內容時,文檔的方向始終更改爲縱向。即使文檔的方向最初設置爲橫向。

我不添加代碼到這個職位,因爲我可以在使用任何HTTP客戶端(如https://www.hurl.it/

這裏是如何複製問題複製此問題:

I)設立文檔

爲了複製問題,您需要一個orientation = landscape的文檔。

enter image description here

II)什麼代碼做

1)首先,我們通過使用服務帳戶(https://developers.google.com/identity/protocols/OAuth2ServiceAccount

2)我們獲取文檔的FileResource實例(API登錄)

3)我們得到文件的HTML導出(GET HTML請求到https://docs.google.com/feeds/download/documents/export/Export?id=(document id)& exportFormat = html)

4)我們替換文件的HTML一些話(例如,我們替換文本 「TEXT_TO_REPLACE」 通過的 「Hello World!」)

5)我們做一個更新通過API。

https://www.googleapis.com/upload/drive/v3/files/(document id)?uploadType=media 

User-Agent apex-google-api 
Authorization Bearer (service account authentication token) 
Content-Type text/html 

這是當文件丟失的橫向(它改變爲縱向)

我試着只做更新,跳過2至4步,我還是看到了問題(方向去肖像)。

也許問題是我在更新時將整個HTML發送迴文檔?有沒有辦法更新文檔的內容而不會丟失方向?

在先進的感謝

+0

關於設置頁面引發了[ticket](http://stackoverflow.com/questions/18311101/create-docs-through-the-drive-api-with-specific-page-setups-margins-orientatio)方向。它建議Drive API不支持改變方向等功能。可能發生的情況是一旦更新完成,它會自動將其更改爲縱向。如果您也檢查API參考,則沒有屬性可以更改方向。 – adjuremods

+0

確實,沒有任何屬性或任何方式通過API設置文檔的方向。但奇怪的是,方向已經是風景,並且正在變回肖像。由於無法通過API改變方向,所以這是一個非常令人驚訝且意想不到的行爲。 –

回答

0

要導出爲HTML,然後更新它做一個完整的替代,而不是一個小的改動幾句話。 HTML實際上沒有頁面方向設置,因此在翻譯時實際上會丟失方向。您可以嘗試通過另一種格式(如OpenOffice,PDF或MS Word)導出/更新。

+0

我試圖看看它是否有效,我會讓你知道。謝謝! –

+0

你是對的!這解決了這個問題。謝謝! –