首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动化谷歌驱动文档的OCR设施?

如何自动化谷歌驱动文档的OCR设施?
EN

Stack Overflow用户
提问于 2019-04-02 10:24:23
回答 1查看 2K关注 0票数 4

我已经使用Google和它的工具将它们转换为OCR文件(.docx)。因为单词文件也保留了格式设置。我有许多图片,并上传他们驱动器和转换成可编辑的一个一个,因为PDF转换不工作。

在这段时间里,我想耐心地等待完成一个转换过程。之后,我开始下一次转换,这很费时。

我使用了。但它不保留格式,如粗体、对齐等。

那么,有任何方法可以使用REST来自动化这个过程吗?

更新

  1. 将图片上传到谷歌驱动器

  1. 右键单击Google中图像的上下文菜单

  1. “打开”上下文菜单中的Google文档

  1. 转换过程之后,OCR(自动语言检测到)

  1. 最后,Google文档和图像

我在GitHub上尝试了GitHub,并选择了驱动器示例list.js代码。

我的代码

代码语言:javascript
复制
'use strict';

const {google} = require('googleapis');
const sampleClient = require('../sampleclient');

const drive = google.drive({
  version: 'v3',
  auth: sampleClient.oAuth2Client,
});

async function runSample(query) {
  const params = {pageSize: 3};
  params.q = query;
  const res = await drive.files.list(params);
  console.log(res.data);
  return res.data;
}

if (module === require.main) {
  const scopes = ['https://www.googleapis.com/auth/drive.metadata.readonly'];
  sampleClient
    .authenticate(scopes)
    .then(runSample)
    .catch(console.error);
}

module.exports = {
  runSample,
  client: sampleClient.oAuth2Client,
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-06 23:32:36

这个修改怎么样?

从您的示例脚本中,可以发现您正在使用googleapis。因此,在这个修改中,我也使用了googleapis。驱动器中的图像文件通过驱动API中的files.copy方法,用OCR转换成Google。下面的修改假定以下几点。

  1. 您在Node.js中使用的是Node.js。
  2. 运行脚本时,您已经通过驱动器API检索了文件列表。
    • 这表明脚本中的drive也可以用于files.copy方法。

备注:

  • 如果您还没有使用驱动程序接口,请检查快速发车。(第3版)。

确认点:

在运行脚本之前,请确认以下几点。

  • 为了使用files.copy方法,请将https://www.googleapis.com/auth/drive包含到list.jsif语句中的作用域中。

修改后的脚本1(通过提供file()id来转换带有OCR的Google文档:

在这一修改中,runSample()被修改。

代码语言:javascript
复制
function runSample()
{
    // Please set the file(s) IDs of sample images in Google Drive.
    const files = [
        "### fileId1 ###",
        "### fileId2 ###",
        "### fileId3 ###", , ,
    ];

    // takes each file and convert them to Google Docs format
    files.forEach((id) =>
    {
        const params = {
            fileId: id,
            resource:
            {
                mimeType: 'application/vnd.google-apps.document',
                parents: ['### folderId ###'], // If you want to put the converted files in a specific folder, please use this.
            },
            fields: 'id',
        };

        // Convert after processes here
        // Here we copy the IDs 
        drive.files.copy(params, (err, res) =>
        {
            if (err)
            {
                console.error(err);
                return;
            }
            console.log(res.data.id);
        });
    });
}

注意:

  • 您的文件(图像)通过上述脚本转换为Google文档,结果(Google文档)似乎与您的示例(在您的问题中)相同。但我不确定这是否是你想要的质量,请道歉。

参考文献:

修改后的脚本2(通过单个文件夹转换带有OCR的Google文档,并只选择图像:

  • 您希望通过从特定文件夹检索文件(图像)将其转换为Google文档。
  • 您希望检索image/pngimage/jpegimage/tiff的文件。

示例代码语法:

代码语言:javascript
复制
const folderId = "### folderId ###"; // Please set the folder ID including the images.
drive.files.list(
{
    pageSize: 1000,
    q: `'${folderId}' in parents and (mimeType='image/png' or mimeType='image/jpeg' or mimeType='image/tiff')`,
    fields: 'files(id)',
}, (err, res) =>
{
    if (err)
    {
        console.error(err);
        return;
    }
    const files = res.data.files;
    files.forEach((file) =>
    {
        console.log(file.id);

        // Please put above script of the files.forEach method by modifying ``id`` to ``file.id``.

    });
});

在下一次修改中,修改了整个runSample()

代码语言:javascript
复制
function runSample()
{
    // Put the folder ID including files you want to convert.
    const folderId = "### folderId ###";

    // Retrieve file list.
    drive.files.list(
    {
        pageSize: 1000,
        q: `'${folderId}' in parents and (mimeType='image/png' or mimeType='image/jpeg' or mimeType='image/tiff')`,
        fields: 'files(id)',
    }, (err, res) =>
    {
        if (err)
        {
            console.error(err);
            return;
        }
        const files = res.data.files;

        // Retrieve each file from the retrieved file list.
        files.forEach((file) =>
        {
            const params = {
                fileId: file.id,
                resource:
                {
                    mimeType: 'application/vnd.google-apps.document',
                    parents: ['### folderId ###'],
                },
                fields: 'id',
            };

            // Convert a file
            drive.files.copy(params, (err, res) =>
            {
                if (err)
                {
                    console.error(err);
                    return;
                }
                console.log(res.data.id);
            });
        });
    });
}

参考文献:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55472454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档