Google выдает изображение OCR по URL в Col1, выводит текст в Col2? - PullRequest
0 голосов
/ 30 апреля 2020

в Google Sheet я пытаюсь использовать функцию для распознавания изображений, URL-адрес которых находится в столбце A, и выводить текст распознавания в столбце B. Код, который я пытаюсь использовать, взят из этой темы:

ocr изображений из списка URL-адресов и сохраните результаты в электронной таблице

function onOpen() {
  var ss = SpreadsheetApp.getActive();
  var menuItems = [
    {name: 'RUN', functionName: 'doGet2'}
  ];

  ss.addMenu('OCR', menuItems);
}    


function doGet2() {
  var ROW_START = 3;
  var URL_COL = 1;
  var TEXT_COL = 2;

  var ss = SpreadsheetApp.getActive();
  var sheet = ss.getActiveSheet();

  var urls = sheet.getRange(ROW_START,URL_COL, sheet.getLastRow()-ROW_START+1,1).getValues();
  var texts = [];
  for(var i=0; i<urls.length; i++) {
    var url = urls[i];
    if(url != undefined && url != "") {
      var imageBlob = UrlFetchApp.fetch(url).getBlob();
      var resource = {
        title: imageBlob.getName(),
        mimeType: imageBlob.getContentType()
      };
      var options = {
        ocr: true
      };

      var docFile = Drive.Files.insert(resource, imageBlob, options);
      var doc = DocumentApp.openById(docFile.id);
      var text = doc.getBody().getText().replace("\n", "");

      texts.push([text]);
      Drive.Files.remove(docFile.id);
    }
    else {
      texts.push("request error");
    }
  }
  sheet.getRange(ROW_START,TEXT_COL, urls.length,1).setValues(texts);
}

Вот лист Google, с которым я тестирую. Любой может редактировать:

https://docs.google.com/spreadsheets/d/1jhSmE295bTOzjoXmgcyymNi-6ylKg5PLEKktPZJTD1c/edit?usp=sharing

Я думаю, что оригинальный код предназначен для загрузки с Google Drive. Мне это не нужно, я просто хочу извлечь из URL. Возможность использовать функцию внутри формулы массива была бы плюсом.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...