google-apps-script - 谷歌应用脚本 - 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];
希望这可以帮助其他遇到类似问题的人!谢谢你。
解决方案
推荐阅读
- python - 第 51 行:TypeError:列表索引必须是整数,而不是浮点数有什么问题请帮助我
- c# - 使用来自 c# 控制台的参数打印 SSRS .rdl 报告
- javascript - Bootstrap 5 选项卡窗格无法正确使用 flexbox
- javascript - 我不断收到此类型错误:无法读取未定义的属性“地图”
- angular - 使用管道角11从字符串中删除特定字符或单词
- php - 根据子值合并多维数组的子数组
- java - Java Spring如何检查两个对象是否相等并且其中一个是LAZY加载的
- logging - 机器人框架日志关键字 - 参数“控制台”不起作用
- facebook-workplace - 作为对 Facebook Workplace 中之前帖子的回复/回复发布
- javascript - 如何通过悬停按钮更改图像?更多详情如下