Как автоматизировать функцию оптического распознавания документов в Google Диске? - PullRequest
1 голос
/ 02 апреля 2019

Я использую Google Диск и его функцию Open with Google Docs, чтобы преобразовать их в файл слова OCR (.docx).Поскольку файл слова сохраняет форматирование также.У меня есть много изображений, и я загружаю их на диск и преобразую их в редактируемые по одному, потому что преобразование PDF не работает.

В настоящее время я хочу терпеливо ждать завершения одного процесса преобразования.После этого я начинаю следующее преобразование, оно отнимает много времени.

Я использовал Google OCR API.Но он не сохраняет форматирование, такое как полужирный шрифт, выравнивание и т. Д.

Итак, есть ли способ автоматизировать этот процесс с помощью REST API?

ОБНОВЛЕНИЕ

  1. Загруженные изображения на Google Диск link

  2. Контекстное меню изображения правой кнопкой мыши на Google Диске link

  3. Документы Google в контекстном меню «Открыть с помощью» link

  4. После процесса преобразования OCR (автоматический язык обнаружен) link

  5. Наконец документ Google и изображение link

Я попробовал googleapis на GitHub и выбрал образец диска list.js код.

MyКод

'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,
};

1 Ответ

1 голос
/ 07 апреля 2019

Как насчет этой модификации?

Из вашего примера сценария было обнаружено, что вы используете googleapis.Так что в этой модификации я также использовал googleapis.Файлы изображений на Диске преобразуются в Документ Google с помощью оптического распознавания символов методом files.copy в Drive API.Следующая модификация предполагает следующие пункты:

  1. Вы используете googleapis в Node.js.
  2. Когда вы запускаете свой скрипт, вы уже получили список файлов с помощью Drive API.
    • Это указывает на то, что drive в вашем скрипте может также использоваться для метода files.copy.

Примечания:

Точка подтверждения:

Перед запуском сценария, пожалуйста, подтвердите следующие пункты.

Модифицированный сценарий 1 (для преобразования Документов Google с помощью OCR с указанием идентификатора files ():

В этой модификации runSample() был изменен.

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 Document с помощью вышеуказанного сценария, и этоКажется, что результат (документ Google) совпадает с вашим образцом (в вашем вопросе). Но я не уверен, что это именно то качество, которое вы хотите, пожалуйста, извинитесь.

Ссылки:

Модифицированный скрипт 2 (для преобразования Документов Google с OCR по одной папке и выбора только изображений:

  • Вы хотите конвертировать файлы (изображения) to Документ Google, извлекая их из определенной папки.
  • Вы хотите получить файлы image/png, image/jpeg и image/tiff.

Пример синтаксиса кода:

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().

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);
            });
        });
    });
}

Ссылки:

...