我正在尝试创建一个Google Docs插件,其中有人:
我知道如何选择图像(从GS代码中)并触发菜单项和对话框。我也知道如何做我的所有自定义代码。
我需要知道:
示例很棒,但文档链接也很棒。我发现了很多东西,但没有具体的解决方法如何将数据提取为blob。
答案 0 :(得分:0)
(这个答案是一个正在进行的工作。在我弄清楚的时候开始回答把这些比特放进去。如果有人帮我找出缺失的部分,我会接受他们而不是这个部分)
据我所知,没有办法获取默认网址。然而,我能够获得base64字符串。这有点令人费解,但有效。
// Gets an InlineImage in some way. I'm using the currently selected image,
// but that's irrelevant to the code sample.
// @return {InlineImage}
function getImage() {
// gets the InlineImage element somehow
}
// Gets the actual data URI.
// Note: this function uses image/png only. You can change this by changing
// it in the two places, or using a variable. Just be sure the two spots
// match.
// @return {string}
function getDataUri() {
return 'data:image/png;base64,' + Utilities.base64Encode(getImage().getAs('image/png').getBytes());
}
$(function () {
google.script.run
.withSuccessHandler(function (data) { console.log(data); })
.withFailureHandler(function (err) { console.log('failure: ' + err); })
.getDataUri();
});
一个重要的注意事项:创建对话框时必须使用SandboxMode.IFRAME,否则您将获得类似的内容:
Rejecting <img>.setAttribute('src', blahblahblah
这显然是由于通常使用的Caja编译器的限制。有关详细信息,请参阅此处的答案:Using base64-encoded images with HtmlService in Apps Script