【问题标题】:How to Convert a simple Google text-only Document to HTML via Google Apps Script? [duplicate]如何通过 Google Apps 脚本将简单的 Google 纯文本文档转换为 HTML? [复制]
【发布时间】:2014-09-20 12:45:04
【问题描述】:

我需要通过 Google Apps 脚本获取 Google Doc 的内容并将其转换为等效的 HTML 代码(用于作为 HTML 电子邮件发送)。

我可以通过循环遍历正文中的元素来读取文件并获取文本,但是如何将格式(粗体、斜体)转换为 HTML?通过 isBold(offset) 和 isItalic(offset) 并循环遍历每个字符?

感谢您的帮助。 ~

【问题讨论】:

    标签: html email google-apps-script formatting


    【解决方案1】:

    这完全可以使用文档来撰写您的消息,将其转换为 html 格式并将其用作消息中的 html 正文。

    代码如下:

    function sendAsHtmlBody(){
      var id = DocumentApp.getActiveDocument().getId();
      var url = 'https://docs.google.com/feeds/';
      var doc = UrlFetchApp.fetch(url+'download/documents/Export?exportFormat=html&format=html&id='+id,
                                      googleOAuth_('docs',url)).getContentText(); 
      MailApp.sendEmail(Session.getEffectiveUser().getEmail(),'testHTML Body','html content',{'htmlBody':doc});
    }
    
    
    function googleOAuth_(name,scope) {
      var oAuthConfig = UrlFetchApp.addOAuthService(name);
      oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
      oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
      oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
      oAuthConfig.setConsumerKey('anonymous');
      oAuthConfig.setConsumerSecret('anonymous');
      return {oAuthServiceName:name, oAuthUseToken:"always"};
    }
    

    此代码将分两步请求授权,一个用于“普通”服务(邮件、documentApp、..),第二个用于 Oauth 函数,后者必须通过调用脚本中的函数 来触发编辑器(如果你制作了一个菜单并让新用户调用该菜单,它将无法工作......,你必须使用脚本编辑器,请参阅issue 677 here)。

    还有here is a shared document(只读,复制一份以供使用)来测试具有不同字体、图像和一些文本的代码。(Google 文档中几乎所有可用的功能都翻译成 html...只有少数对齐有时会丢失。我经常使用它而没有明显的问题)

    【讨论】:

    • 请注意,仍然有一些人拒绝电子邮件中的 HTML 内容(是的,我知道我们在 2014 年 :-))所以加入 HTML 内容的 PDF 版本也是一个好主意给那些人的信息……有一个 DocsList 方法和一个 Drive 方法。如果您对细节感兴趣,请告诉我,但文档中已明确说明。
    • 这是真的赞赏 Serge。我一直在阅读第 677 期。我稍后会尝试。
    • 是的,这个问题有很多帖子,但其中很多只是缺少主题...请参阅第 39 号我澄清请求的地方...正如我在上面解释的那样,这只是一个问题程序,我们必须使用脚本编辑器......对于像你和我这样的人来说不是一个大问题,但对于非技术用户来说有点可怕。就是这样。
    • @Sergeinsas 它是否也适用于企业版 Google Apps?
    • 当然可以。我也在这样的帐户上使用它。但请注意,此处使用的服务已被弃用,并且在很长一段时间内都无法使用。还有其他使用新驱动扩展服务的解决方案
    【解决方案2】:

    默认共享选项还不够吗?我知道您可以选择在电子邮件中显示的选项。只是一个想法。

    【讨论】:

    • 我并没有说清楚,但这是通过 Google Apps 脚本实现的。进行了编辑。不过感谢您的回复。
    • 酷。我只是想达到编写脚本的目的。
    • 我相信您仍然只能通过 Google Apps 脚本创建纯文本格式且不支持附件的草稿电子邮件。这就是我所处的阶段。它可以工作,但我有一个需要发送的发票文档,并且使用当前设置,我需要手动将其保存为 PDF,下载它,重命名它以添加在执行此操作时删除的空格,然后将其附加到草稿电子邮件。所以我在这里做的是通过代码将草稿电子邮件的内容放入文档中,输入任何特殊消息,然后使用代码附加的 PDF 发送。
    • 请看上面的答案,我相信这段代码会帮助你有效地解决你的问题。:-)
    【解决方案3】:

    您可能想寻找其他解决方案,我也是。当我去使用它时,我会收到一条消息:

    OAuthConfig API 已弃用

    方法 UrlFetchApp.addOAuthService 已弃用

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多