我在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];
希望这对其他遇到类似问题的人有所帮助! 谢谢。