Google App脚本-OCR拉动Google登录页面代替我需要的内容

时间:2018-09-07 15:37:57

标签: google-apps-script google-drive-api

我在OCR提取方面遇到麻烦

该脚本应该从Google表格的单元格中提取到图像的链接,并尝试使用该链接进行OCR提取,但是生成的OCR文件不断获取google登录页面,而不是我需要的图像(登录...)

对为什么会发生这种情况有任何想法吗?

顺便说一句,如果我想将OCR文件放入自己的文件夹中,该怎么办?

编辑:共享代码

var extract_sheet = spreadsheet.getSheetByName("Extract Data");
var sheet = SpreadsheetApp.setActiveSheet(extract_sheet);
var startRow = 2;  // First row of data to process
var numRows = 150;   // Number of rows to process

function doExtract() {
  var dataRange = sheet.getRange(startRow, 1, numRows, 5)
  var data = dataRange.getValues();
  for (var i = 0; i < data.length; ++i) {
    var row = data[i];
    var file_link = row[4];
    var extracted_data = row[6];
    var ocr_file_link = row[7];

    var valueURL = sheet.getRange(startRow + i, 4).getValue();

    var valueURLlength = valueURL.length;
    if (valueURLlength != 0) {
      var image = UrlFetchApp.fetch(valueURL).getBlob();

      var file = {
        title: 'OCR File',
        mimeType: 'image/png'
      };

      // OCR is supported for PDF and image formats
      file = Drive.Files.insert(file, image, {ocr: true});
      var doc = DocumentApp.openByUrl(file.embedLink);
      var body = doc.getBody().getText();
      //Get link Doc that Generated
      sheet.getRange(startRow + Number(i), 6).setValue(file.embedLink);
      //Get Content of Doc that Generated
      sheet.getRange(startRow + Number(i), 7).setValue(body);
    }
  }
}

这是我们解决此问题的方式

原来,我根本不需要保留Google驱动器,因此我可以使用驱动器文件ID而不是FetchURL。

所以我替换了:

var image = UrlFetchApp.fetch(valueURL).getBlob();

var image = DriveApp.getFileById(file_ID).getBlob();

并在var file_ID = row[1];之后添加了var row = data[i];

希望这对其他遇到类似问题的人有所帮助! 谢谢。

0 个答案:

没有答案