首页 > 解决方案 > 谷歌应用脚​​本 - OCR 拉谷歌登录页面而不是我需要的内容

问题描述

我在提取 OCR 时遇到了一些问题

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

关于为什么会发生这种情况的任何想法?

顺便说一句,如果我想将 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);
    }
  }
}

以下是我们解决此问题的方法

结果我根本不需要离开谷歌驱动器,所以我可以使用驱动器文件 ID 而不是 FetchURL。

所以我更换了:

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

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

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

希望这可以帮助其他遇到类似问题的人!谢谢你。

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

解决方案


推荐阅读