You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OCR将PDF转Google Doc时遇Drive.Files.insert不是函数报错求助

问题:OCR转换PDF为Google Doc时提示Drive.Files.insert is not a function

我尝试通过OCR将多个PDF文件转换为Google Doc以读取数据,参考示例使用Drive.Files.insert(),但始终报错。以下是我的代码实现:

function getFiles() {
  try {
    let id = SpreadsheetApp.getActiveSpreadsheet().getId();
    let file = DriveApp.getFileById(id);
    let folders = file.getParents();
    let folder = folders.next();
    let files = folder.getFilesByType("application/pdf");
    while( files.hasNext() ) {
      file = files.next();
      console.log(file.getName());
      readData(file);
    }
  }
  catch(err) {
    console.log("Error in getFiles: "+err);
  }
}

function readData(file) {
  try {
    let blob = file.getBlob();
    let name = blob.getName();
    let resource = {
      title: name,
      mimeType: blob.getContentType(),
    };
    // Save PDF as GDOC
    resource.title = name.replace(/pdf$/, 'gdoc');
    var insertOpts = {
      ocr: true,
      ocrLanguage: "en"
    }
    let gdocFile = Drive.Files.insert(resource, blob, insertOpts);
  }
  catch(err) {
    console.log("Error in readData: "+err)
  }
}

报错信息:

10:50:09 AM Info    Error in readData: TypeError: Drive.Files.insert is not a function

解决建议

1. 替换过时的API方法

Drive.Files.insert()是Drive API v2的方法,当前Google Apps Script默认使用Drive API v3,该方法已被移除,需替换为Drive.Files.create()。同时v3版本中,文件标题字段从title改为name,需明确指定目标格式为Google Doc的MIME类型。

2. 修改后的readData函数

function readData(file) {
  try {
    let blob = file.getBlob();
    // 移除PDF后缀,生成Google Doc文件名
    let docName = blob.getName().replace(/\.pdf$/i, '');
    let resource = {
      name: docName,
      // 指定转换后的文件类型为Google Doc
      mimeType: 'application/vnd.google-apps.document'
    };
    const createOpts = {
      ocr: true,
      ocrLanguage: "en"
    };
    // 使用v3的create方法创建并转换文件
    let gdocFile = Drive.Files.create(resource, blob, createOpts);
    console.log(`转换完成:${gdocFile.name}(文件ID:${gdocFile.id})`);
  } catch(err) {
    console.log("Error in readData: "+err);
  }
}

3. 确保启用Drive API服务

在Apps Script编辑器中完成以下操作:

  • 点击左侧菜单栏的「服务」→「添加服务」
  • 找到「Drive API」,选择版本3,点击「添加」
  • 如果提示需要在Google Cloud平台启用API,按照指引跳转启用即可

内容的提问来源于stack exchange,提问作者TheWizEd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 02:06:27