Kab*_*dam 17 google-docs-api google-drive-api
使用文档列表API时,Google Docs转换似乎最近出现了问题.对现有文档条目所做的更新将无法正确转换为Google文档格式,并且不会显示文档中的图像.
我有一个.docx文件,有几行文字和一个图像.
使用文档列表API,我将文件作为NEW条目上传(转换为ON),它工作正常.我可以在Google文档中打开转换后的文档,看起来很不错.
接下来,使用像API这样的文档,我再次将文件作为 UPDATE原始条目上载(打开转换).现在,当我在Google Docs中打开转换后的文档时,图像丢失了.有一个空白矩形,旋转繁忙指示符出现在图像所在的位置.
因此,当问题只发生在更新了现有条目.作为全新条目上传的文件没有此问题.
这必须在过去24小时左右打破...我有一个现有的应用程序工作正常,现在它更新的所有文件都缺少他们的图像.在后端有什么东西得到更新导致它破坏了吗?
我已经使用包含各种图像的各种.docx和.doc文件对此进行了测试.
请帮助......这已经完全破了一个星期了.我想知道这是否是谷歌工程师所知道的问题,以及是否有人在研究它.
(2020年10月):都2020年了,这个问题确实过时了。Google Documents List API于 2012 年被弃用,并于 2015 年关闭,由Google Drive API取代。
Drive API 能够导入(上传和转换)Word 文件,无论是创建图像还是将图像更新为 Google Docs 格式,都不会出现问题。下面是这两种情况的一些伪代码(Python)。第一个上传名为的 Word 文件,person.docx其中包含图像。上传后,会向用户显示一条消息,您可以验证图像是否在 Google 文档中。
DOCX_FILE = 'person.docx'
DOCS_MIME = 'application/vnd.google-apps.document'
:
: # credentials code for user acct auth (OAuth client ID) or service acct auth
:
DRIVE = discovery.build('drive', 'v3', ...) # http= or creds= dep on auth type
body = {'name': DOCX_FILE, 'mimeType': DOCS_MIME}
res = DRIVE.files().create(media_body=DOCX_FILE, body=body,
fields='name,mimeType').execute()
print('Uploaded "%s" (as %s)' % (res['name'], res['mimeType']))
Run Code Online (Sandbox Code Playgroud)
正如OP提到的,创建文件和以前一样完美。如果您编辑现有文档,除了像以前一样提供文件有效负载之外,您还需要提供其云端硬盘文件 ID,并调用files().update()而不是files().create(),它也可以工作:
DRIVE_ID = 'YOUR_FILE_ID'. # existing file in Drive
DOCX_FILE = 'person.docx' # Word file to replace the above file with
DOCS_MIME = 'application/vnd.google-apps.document'
:
: # credentials code as above
:
DRIVE = discovery.build('drive', 'v3', ...) # same as above
body = {'name': DOCX_FILE, 'mimeType': DOCS_MIME}
res = DRIVE.files().update(fileId=DRIVE_ID, media_body=DOCX_FILE,
body=body, fields='name,mimeType').execute()
print('Updated "%s" (as %s)' % (res['name'], res['mimeType']))
Run Code Online (Sandbox Code Playgroud)
如果您不熟悉 Drive API,请继续阅读。为了操作云端硬盘中已有的文档,特别是面向文档的操作,您可以使用 Google 文档、表格和幻灯片 API,但要执行文件级访问,例如导入/导出、复制、移动、重命名等。 ,请改用Google Drive API。如果您是 Drive API 的新手,除了上述内容之外,这里还有一些示例:
(*) - TL;DR:将纯文本文件上传到云端硬盘,导入/转换为 Google 文档格式,然后将该文档导出为 PDF。上面的帖子使用 Drive API v2;这篇后续文章描述了将其迁移到 Drive API v3,这里有一个开发人员视频,结合了“穷人的转换器”帖子。
要了解有关如何将 Google API 与 Python 结合使用的更多信息,请查看我的博客以及我制作的各种 Google 开发人员视频(系列 1和系列 2 )。
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |