如何在Google Apps Script中加载PDF并提取其中的文本?
使用Google Apps Script提取纯文本PDF内容的实现方法
前提准备
确保目标PDF文件存储在你的Google Drive中,且你拥有该文件的访问权限。
实现步骤
打开Google Apps Script编辑器
- 可以通过Google Drive的「新建」→「更多」→「Google Apps Script」进入,或直接访问
script.google.com。
- 可以通过Google Drive的「新建」→「更多」→「Google Apps Script」进入,或直接访问
编写提取脚本
场景1:通过文件ID提取(推荐,定位更准确)
function extractPDFText() { // 替换为你的PDF文件ID(可从Drive文件链接中获取) const pdfFileId = "替换为你的PDF文件ID"; const pdfFile = DriveApp.getFileById(pdfFileId); // 获取PDF二进制数据并提取文本 const pdfBlob = pdfFile.getBlob(); const extractedText = pdfBlob.getDataAsString(); // 打印提取结果到日志 Logger.log(extractedText); // 可选:将提取结果保存到新Google文档 const resultDoc = DocumentApp.create("PDF提取文本结果"); resultDoc.getBody().setText(extractedText); resultDoc.saveAndClose(); }
场景2:通过文件名提取
如果不知道文件ID,可以通过文件名查找(注意:Drive中如果有重名文件,只会提取第一个匹配的文件):
function extractPDFTextByName() { // 替换为你的PDF文件名 const pdfFileName = "目标PDF文件名.pdf"; const fileIterator = DriveApp.getFilesByName(pdfFileName); if (fileIterator.hasNext()) { const pdfFile = fileIterator.next(); const pdfBlob = pdfFile.getBlob(); const extractedText = pdfBlob.getDataAsString(); Logger.log(extractedText); // 可选:保存到Google文档 const resultDoc = DocumentApp.create("PDF提取文本结果"); resultDoc.getBody().setText(extractedText); resultDoc.saveAndClose(); } else { Logger.log("未找到指定文件名的PDF文件"); } }
关键说明
getDataAsString()方法仅适用于纯文本PDF,若PDF是扫描件(图片格式),此方法无法提取内容,需结合OCR工具处理。- 若PDF存在编码问题,可指定编码格式,例如
pdfBlob.getDataAsString("UTF-8")。 - 首次运行脚本时,需按照提示完成权限授权,确保脚本能访问你的Drive文件。
内容的提问来源于stack exchange,提问作者Takuya HARA
相关产品推荐
相关产品推荐

