2012-08-28 176 views
3

我試圖做一個腳本,將調整在谷歌文檔中的圖像。我所擁有的是:谷歌腳本圖像調整大小

var imgs = currentDoc.getImages(); 

for (var i = 1; i < imgs.length; i++) 
{ 
    cell = row.insertTableCell(1); 
    imgNew = imgs[i].setWidth(365); 

    cell.insertImage(1, imgNew.getBlob()); 
} 

的形象得到正確插入,但規模不會不管我的寬度將發生變化。由於圖像進入一個單元格(寬度= 370),是否可以使圖像佔據寬度的100%並按比例縮放高度?如果沒有,我可以處理手動設置像素的數量,但這是行不通的。有任何想法嗎?

回答

-2

你試過:

imgs[i].attr('width', '370'); 

或嘗試指派具有類寬度:100%

+0

感謝您的建議。 attr不是一個函數。 setAttributes()不接受這樣的兩個輸入。任何想法如何將它分配給100%寬度的類? – user1626589

1

的問題是,它被插入到表後的影像尺寸應該改變。下面的代碼工作正常

function test() { 
    var doc = DocumentApp.openById('here_is_doc_id'); 
    var imgs = doc.getImages(); 
    var table = doc.getTables()[0]; 
    for (var i = 0; i < imgs.length; i++) { 
    var row = table.appendTableRow(); 
    var cell = row.insertTableCell(0); 
    var imgNew = imgs[i].copy(); 
    cell.insertImage(0, imgNew); 
    imgNew.setWidth(365); 
    } 
} 

請註明,該數組的索引,細胞數等從0開始,而不是1

+0

感謝您的回答。我試過你的代碼,但它不起作用。我可以看到圖像的灰色輪廓,中間有一個「鏈接斷開」圖標。我懷疑這是因爲imgs [i] .copy()行。該圖像調整大小正確,但未顯示。當我將imgs [i] .copy()更改爲imgs [i] .getBlob時,圖像正確顯示,但setWidth()函數不再有效(函數未定義錯誤)。 有沒有我做錯了copy()? (我的代碼基本上和你的一樣,我只是省略了一些我爲了清楚而創建的附加表格元素)。謝謝 – user1626589

+0

好的,簡單的解決方案。希望這會幫助別人。你只需要在插入圖像時設置圖像寬度,像這樣:cell.insertImage(0,imgNew.getBlob())。setWidth(500) – user1626589

1

正如一個供參考,您不需要調用getBlob() ...任何具有getBlob()的東西都可以直接傳入需要Blob的地方。

+0

很高興知道,謝謝。 – user1626589