【问题标题】:how to convert a text file into google doc using google docs api如何使用 google docs api 将文本文件转换为 google doc
【发布时间】:2021-12-15 08:21:03
【问题描述】:

我有需要转换为 Google Doc 的 OCRed 文件的输出。我见过的最接近的用例是 codelab 将语音转换为 Google Doc。但是,我无法弄清楚这些调用是否存在于 node.js 库中,如果不存在,如何完成。关于如何使用batchUpdate 创建一堆请求以及段落/换行符的一些指导会很好,特别是如何进行索引计算。

【问题讨论】:

  • 我必须为我糟糕的英语水平道歉。不幸的是,我无法理解i presume if i just create JSON based off of an example doc wont work?。如果您想将文本转换为 Google 文档,使用 Drive API 怎么样?但是,我无法理解你的目标的细节。例如,您会将 Google API 与 OAuth2 或服务帐户或其他人一起使用吗?而且,你会使用googleapis for Node.js 还是其他人?我认为当你添加更多关于你的目标的信息时,它会帮助用户思考解决方案。
  • 田池,感谢您的回复!我之前看过你的回复,你的回复和英语似乎都很好:) 别担心。关于 JSON 和示例文档:我的想法是在谷歌驱动器中创建带有一些示例文本的文档,使用 docs.documents.get() 获取 JSON,然后使用我需要的文本修改/附加 json。
  • 为什么我不使用驱动器 api 将文本转换为 doc 是我的要求之一是将文本放在适当的页面中,这意味着将 OCRed 书的第 1 页的文本在文档的第 1 页中,因此更容易查看。可以用驱动 api 完成吗?
  • 很抱歉,我将使用 googleapis 和 node.js
  • 感谢您的回复。不幸的是,在当前阶段,使用 Docs API 的 create 方法无法实现包含文本内容的新 Document。这是来自Creates a blank document using the title given in the request. Other fields in the request, including any provided content, are ignored.Ref 所以,我建议使用 Drive API 将文本文件转换为 Document。在这种情况下,您可以使用 Docs API 的 get 方法检索值。对此我深表歉意。

标签: node.js google-docs-api


【解决方案1】:

根据您的评论,我假设您的目标是将 TXT 文件翻译成 Doc。如果我的假设是正确的,那么您可以按照以下步骤轻松上传 TXT 文档。首先,您应该发出documents.create 请求以创建文档本身。阅读它的回复,因为稍后您将需要字段revisionId。那么你只需要像这个例子一样发送一个documents.batchUpdate 请求:

{
  "requests": [
    {
      "insertText": {
        "location": {
          "index": 1
          
        },
        "text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent nec erat eget nisl facilisis luctus vitae ac lorem. Quisque lobortis iaculis massa, in mattis lorem eleifend eu. Vivamus ac placerat nisi. Vivamus odio nulla, faucibus ac lobortis vel, sodales vel velit. Nam quam ex, posuere in risus quis, pretium euismod lectus. Donec accumsan varius tellus, vitae suscipit ipsum scelerisque sit amet. Vestibulum ut dapibus enim. Nam et eros gravida, vulputate libero eu, pellentesque odio. Sed tempus ante non metus imperdiet varius. Phasellus ut lacus sapien. Suspendisse vestibulum eleifend felis finibus sollicitudin. Nam quis vehicula lectus, in convallis eros. \nEtiam vel erat id dui commodo faucibus. Pellentesque ac lacinia libero. Nunc blandit elementum nunc, at mattis eros tincidunt ac. Duis vitae scelerisque nisl, venenatis venenatis purus. Fusce felis lacus, blandit ac quam vitae, vulputate vestibulum felis. Morbi aliquam mauris metus, eget venenatis orci pretium eu. Nam cursus eget dolor ut tempor. \nSed turpis dolor, finibus pharetra elit sed, pulvinar semper nisi. Quisque sed iaculis purus. Quisque aliquet feugiat augue vel feugiat. Mauris in est vel elit aliquet luctus cursus quis nibh. Nam condimentum velit felis, vitae hendrerit lacus imperdiet non. Nam luctus quam et tortor tempus luctus. Aenean aliquam nibh vel varius scelerisque. Sed sit amet tortor lacus. Curabitur ullamcorper, justo non vulputate dapibus, lorem ex ultrices arcu, non efficitur nulla nisl vitae ante. Ut quis sem sit amet mi ultrices pulvinar quis nec nunc. \nEtiam bibendum neque nec dui finibus blandit. Proin tincidunt purus id ante interdum, eget convallis sem dictum. Proin quis justo vitae ligula sagittis rhoncus. Nulla at arcu et orci iaculis ornare. Maecenas eget neque maximus, dignissim urna eu, efficitur turpis. Aenean tempor elit sed eleifend luctus. Suspendisse in auctor sapien. Nunc condimentum libero in lacus ornare gravida. Curabitur id felis nunc. Fusce sed pellentesque nunc. Morbi ligula odio, ornare hendrerit arcu id, dignissim mollis turpis. \nAliquam est dolor, consectetur ac imperdiet vel, imperdiet id dolor. Praesent ut pellentesque felis. Cras eget dictum nunc. Vestibulum nec nulla ut ipsum vestibulum scelerisque. Vivamus quis lorem sem. Cras vitae finibus dolor. Vivamus et nibh orci. Vestibulum vel justo ullamcorper, dapibus neque quis, iaculis lectus. Donec sagittis, tellus at tincidunt varius, est augue suscipit magna, nec sagittis elit diam id libero. Nam est eros, maximus sed malesuada id, pulvinar eget nulla. Donec ullamcorper ligula vel massa aliquam, nec bibendum sem fringilla. Nunc vestibulum dignissim augue, vitae pretium risus mattis non. Etiam ante tortor, tincidunt vitae velit at, posuere congue nulla."
        
      }
      
    }
    
  ],
  "writeControl": {
    "targetRevisionId": "{YOUR TARGET REVISION ID}"
    
  }
}

我使用lorem ipsum 文本作为模型。请记住,分页符用\n 字形表示。使用所需文本更新 text 字段,并将上一步中的 targetRevisionId 写入同名字段。此时应使用您的目标文本更新 Doc。

【讨论】:

  • 感谢您的回答。 2 个问题,1 - 我对位置部分感到困惑。由于它将是多个请求,那将是索引:1+上一个请求中的文本长度吗?和 2 - 我如何在其中添加一个分页符,那里只有 \n (或者你的意思是 \p?).. 再次感谢!
  • 关于第一个问题,index 是文本插入位置的指示符。如果您希望将文本附加到现有段落的末尾,则必须使用 document.get() 知道 endIndex。如果您想在现有文本中间的某个位置添加文本,那么您只需调整index。在这里您可以了解更多关于location的信息。
  • 关于您的第二个疑问,您应该使用\n 符号作为分页符(而不是\p)。请测试此方法并分享您的发现。
猜你喜欢
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多