1
我正在使用Google文檔插件,我需要從Google文檔文檔獲取InlineImage並將其轉換爲HTML圖像。將Google文檔中的InlineImage轉換爲HTML圖像
我最初的策略是從InlineImage獲取數據並將其轉換爲data URI,但我瞭解到應用程序腳本不支持此操作。任何人都知道我該怎麼辦?
我正在使用Google文檔插件,我需要從Google文檔文檔獲取InlineImage並將其轉換爲HTML圖像。將Google文檔中的InlineImage轉換爲HTML圖像
我最初的策略是從InlineImage獲取數據並將其轉換爲data URI,但我瞭解到應用程序腳本不支持此操作。任何人都知道我該怎麼辦?
你是對的,Caja模板系統doesn't support data URIs,但你可以通過切換側邊欄使用IFRAME
sandbox mode來解決這個問題。由於IFRAME
模式不使用Caja,因此不受限制,但有一點需要注意:它與舊版瀏覽器不兼容。但是,如果您需要使用數據URI,則沒有其他選擇。
下面是一個示例腳本,它將採用選定圖像並使用數據URI將其顯示在附加側邊欄中。
Code.gs:
function getImage() {
var els = DocumentApp.getActiveDocument().getSelection().getRangeElements();
var el;
for (var i = 0; i < els.length; i++) {
el = els[i].getElement();
if (el.getType() === DocumentApp.ElementType.INLINE_IMAGE) {
return el;
}
}
return null;
}
function showSidebar() {
var mimetype = 'image/png';
var blob = getImage().getAs(mimetype);
var uri = 'data:' + mimetype + ';base64,' + Utilities.base64Encode(blob.getBytes());
var sidebar = HtmlService.createTemplateFromFile('Sidebar');
sidebar.data = uri;
DocumentApp.getUi().showSidebar(
sidebar
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
);
}
Sidebar.html:
<img src="<?!= data ?>" />
,讓您在顯示圖像?在加載項或其他地方? – Kriggs
它將顯示在附加側邊欄內。 – stuck