- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在尝试了几个邮件合并脚本之后,我决定自己编写。我的合并脚本作为一个单独的文件运行,它从 GDoc 读取模板,从 GSpreadsheet 读取数据,并将其合并到 Gmails 或新的 GDoc - 每个 SS 行一页/电子邮件。
问题是它不会将文本格式、边距或图像复制到 Gmail 或新的 GDoc 中……只有纯文本。
我正在使用 DocumentApp.openById > getActiveSection > getText() 来捕获文本。
这是 GDoc 中的代码 http://goo.gl/fO5vP我似乎无法共享脚本,所以我不得不将它放在文档中。将它复制到一个新的脚本中,它将被颜色编码。
最佳答案
您应该首先使用 DocsList
复制模板,以便从“完整”的初始文档开始。
var template = DocsList.getFileById(docIDs[0]);// get the template model, in this sample I had an array of possible templates, I took the first one
var newmodelName=template.substr(0,11)+'multipage'+template.substring(18);// define a new name, do what you need here...
var baseDocId = DocsList.copy(template,newmodelName).getId();// make a copy of firstelement and give it new basedocname build from the serie(to keep margins etc...)
var baseDoc = DocumentApp.openById(baseDocId);// this is the new doc to modify
然后使用 document class有一个直接的 replaceText method
编辑:关于你的次要问题,这里有一个关于你如何做的建议。除了 inlineImage
之外它工作得很好,我会继续关注它。您还可以通过添加其他元素类型使脚本更加通用...
function myFunction() {
var template = DocsList.getFileById(key);// get the template model
var newmodelName='testcopy';// define a new name, do what you need here...
var baseDocId = DocsList.copy(template,newmodelName).getId();// make a copy of firstelement and give it new basedocname build from the serie(to keep margins etc...)
var baseDoc = DocumentApp.openById(baseDocId);// this is the new doc to modify
var body = baseDoc.getActiveSection();
body.appendPageBreak();
var totalElements = body.getNumChildren();
for( var j = 0; j < totalElements; ++j ) {
var element = body.getChild(j).copy();
var type = element.getType();
if( type == DocumentApp.ElementType.PARAGRAPH )
body.appendParagraph(element);
else if( type == DocumentApp.ElementType.TABLE )
body.appendTable(element);
else if( type == DocumentApp.ElementType.LIST_ITEM )
body.appendListItem(element);
else if( type == DocumentApp.ElementType.INLINE_IMAGE )
{ var blob = body.getChild(j).asInlineImage().getBlob();
body.appendImage(blob); }
}
}
编辑 2 感谢 @Fausto ,这里是一个完整的工作版本。段落中包含内联图像,因此我们必须再挖掘一层才能获得 blob...
function myFunction() {
var template = DocsList.getFileById(key);// get the template model
var newmodelName='testcopy';// define a new name, do what you need here...
var baseDocId = DocsList.copy(template,newmodelName).getId();// make a copy of firstelement and give it new basedocname build from the serie(to keep margins etc...)
var baseDoc = DocumentApp.openById(baseDocId);// this is the new doc to modify
var body = baseDoc.getActiveSection();
body.appendPageBreak();
var totalElements = body.getNumChildren();
for( var j = 0; j < totalElements; ++j ) {
var element = body.getChild(j).copy();
var type = element.getType();
if (type == DocumentApp.ElementType.PARAGRAPH) {
if (element.asParagraph().getNumChildren() != 0 && element.asParagraph().getChild(0).getType() == DocumentApp.ElementType.INLINE_IMAGE) {
var blob = element.asParagraph().getChild(0).asInlineImage().getBlob();
body.appendImage(blob);
}
else body.appendParagraph(element.asParagraph());
}
else if( type == DocumentApp.ElementType.TABLE )
body.appendTable(element);
else if( type == DocumentApp.ElementType.LIST_ITEM )
body.appendListItem(element);
}
}
关于google-apps-script - 将文本、图像、表格、所有格式、边距从 GDoc 复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14252185/
如果您使用 Google Docs,您的第一个文件格式是 .gdoc/.gsheet/.gwhatever 我想了解的是,这种文件格式是如何工作的。当您打开 .gdoc 时,您基本上是打开浏览器并转到
当我查看漂亮的 Grails 引用文档 (http://grails.org/doc/latest/) 并将其与我糟糕的 gdoc 文档进行比较时,我想知道有什么不同? 它只是一个不同的样式表吗? 还
当我按照 python_client_lib 处的说明尝试使用 gDoc python API 时 我遇到以下错误: In [3]: import gdata --------------------
我在 google 文档中有一个电子表格,我想将其集成到 git 工作流程中(并推送到 github)。是否有任何工具(甚至是 gdoc 版本感知的库)可以做到或帮助我做到这一点? 我有一些基于 go
我正在使用 Google Drive for Developers Drive API (V3) Nodejs 快速入门。 我特别关注以下功能。我已将 pageSize 自定义为 1 以进行测试。我正
我按照 grails documentation 上的教程进行操作通过运行以下命令成功地创建了项目特定的文档页面 grails doc 我能够从我的桌面查看 HTML 页面,并在以下目录中找到它们:
从 Grails 1.2 开始,包含了一个文档引擎:gdoc . documentation's syntax基于 Textile format . 是否有一些编辑器支持?我的第一个选择是 Intel
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
我正在尝试编写一些代码,用我已有的序列号搜索 PDF(gmail),将其保存在云端硬盘中,获取 OCR 并阅读内容。 第一步没问题,第二步用下面的代码管理,但是最后两行用 DocumentApp 打开
你不可能知道。来自 docs , Once you get a list of a file's revisions, you can download the content of any revi
在尝试了几个邮件合并脚本之后,我决定自己编写。我的合并脚本作为一个单独的文件运行,它从 GDoc 读取模板,从 GSpreadsheet 读取数据,并将其合并到 Gmails 或新的 GDoc - 每
我正在尝试使用 Drive SDK 使用 Javascript 从 Google docs 文件下载内容。 我检索元数据,并解析 exportLinks 以获取 URL https://docs.go
我是一名优秀的程序员,十分优秀!