通过具有特定页面设置(边距,方向)的Drive API创建文档

问题描述 投票:1回答:3

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

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

google-api google-drive-api google-api-php-client
3个回答
1
投票

Drive API不支持您与文档相关的功能来检索/设置有关文档的元数据。

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


0
投票

我能想到的最好的方法,实际上是一种破解,是使用headless chrome and pupeteer来制作自己的google docs API,该API只能与正式docs API结合使用,并且只能部分使用。

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

因此,在安装p之后,请打开Chrome浏览器,登录到您的google帐户,然后使用服务器打开google驱动器,并且您应该已经登录到该帐户。如果没有,您可能必须使用服务器逻辑登录该帐户,两步验证可能会使操作变得复杂...

但是无论如何,只要在drive.google.com上的puppeteer上登录到Google帐户,只需停留在该页面上并等待即可。

如果服务器收到某种HTTP请求以制作新文档,则只需让服务器从字面上单击网页上的“新文档”按钮,它就应该在新标签页中打开新文档,您应该能够使用操纵up访问。

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

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

如果有任何疑问,请告诉我


-1
投票
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);
}
© www.soinside.com 2019 - 2024. All rights reserved.