【问题标题】:Create Docs through the Drive API with specific page setups (margins, orientation)通过 Drive API 使用特定页面设置(边距、方向)创建文档
【发布时间】:2013-08-19 10:02:43
【问题描述】:

我的应用程序已经能够通过 Drive API 创建 Google 文档,并且在这样做时我可以选择标题、数据和元数据。但是我一直在查看文档,似乎无法设置文档的其他一些属性,例如正在创建的文档的边距和方向(纵向或横向)。有办法吗?

在文档中找不到答案后,我唯一能想到的就是使用我的 Google 帐户登录,转到创建的文档之一,点击“页面设置”,然后选择“横向”,最后“设为默认”。我认为通过在我的 Google 帐户中将其设置为默认值,可能会发生使用它创建的所有文档都可能被创建为景观的情况。但它没有用。然而,一个可能的原因是实际创建文档的帐户是服务帐户,而不是我的常规 Google 帐户。我猜这两个帐户虽然被链接,但并不是一回事,因此一个帐户的默认值不适用于另一个帐户。有没有办法将“纵向”设置为使用我的服务帐户创建的文档的默认方向?如果不是,解决方案是停止使用我的服务帐户创建文档,并开始使用我的常规 Google 帐户创建它们,以便我应用到它们的默认设置也适用于新创建的文档吗?

【问题讨论】:

    标签: google-api google-drive-api google-api-php-client


    【解决方案1】:

    Drive API 不支持 Docs 相关功能,以便您检索/设置有关文档的元数据。

    服务帐户是个人 Google 帐户,与您自己的用户帐户没有任何关系。另一方面,您的默认设置仅适用于您。您不能以编程方式设置其他用户的默认值。

    【讨论】:

      【解决方案2】:

      我能想到的最好的方法是使用 headless chrome and pupeteer 制作您自己的谷歌文档 API,这确实是一个 hack,它只能部分用于官方文档 API,并与官方文档 API 结合使用。

      这基本上是在您的服务器上运行的网络浏览器,可以控制它执行客户端通常在网络浏览器上执行的任何操作,例如单击按钮、提交表单等,只有在服务器的命令下,这可以通过HTTP请求等命令。

      所以安装 puppeteer 后,打开 chromium 浏览器,登录你的 google 帐号,然后用服务器打开 google drive,你应该已经登录了帐号。如果没有,您可能必须使用服务器逻辑登录帐户,这可能会因两步验证而变得复杂......

      但无论如何,一旦您在 puppeteer 上的 drive.google.com 上登录您的 google 帐户,只需留在该页面并等待。

      如果服务器接收到某种 HTTP 请求来创建一个新文档,那么让服务器直接点击网页上的新文档按钮,它应该在新选项卡中打开新文档,你应该能够用 puppeteer 访问。

      然后,当它完成时,您可以将 URL 发送回请求服务器,和/或根据之前在 HTTP 请求中收到的数据,立即更改您的页面设置。

      例如,如果在某一时刻(在文档创建之后,或者在文档创建期间),有某种消息指定背景颜色,只需手动,在服务器端,单击文件 ->页面设置,然后选择自定义,并以编程方式“键入”十六进制颜色代码等,然后单击确定按钮,然后结束 POST 请求。

      如果您有任何问题,请告诉我

      【讨论】:

        【解决方案3】:
        var doc = DocumentApp.getActiveDocument();
        var body = doc.getBody();
        
        //turn landscape if portrait
        var oldHeight = body.getPageHeight();
        if (oldHeight > body.getPageWidth()){
          body.setPageHeight(body.getPageWidth());
          body.setPageWidth(oldHeight);
        }
        

        【讨论】:

        • 有人对这个答案投了反对票,但我不明白为什么。当您使用这种方法时,页面方向会切换为横向,并且效果很好。
        • 也许这不能通过 Drive API 工作(我不知道是否可以),但它可以在谷歌应用程序脚本中工作。
        猜你喜欢
        • 2014-08-07
        • 2016-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-22
        相关资源
        最近更新 更多