使用Google应用脚本从PDF到文本转换获取文本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Google应用脚本从PDF到文本转换获取文本相关的知识,希望对你有一定的参考价值。
我有一个脚本可以从某些Gmail邮件中获取(可搜索的)PDF附件。
现在我需要从这些pdf中提取一些String数据。
有没有办法将其添加到启用了OCR转换的Google云端硬盘并从该文件中提取文本?或者甚至有更好的方法来解决我的问题?
你说你从“可搜索的”pdf附件开始,我认为你的意思是他们实际上没有文本类型的内容,而是在pdf图像上扫描带有文本的文档。如果您将它们存储在云端硬盘中,Google会自动对它们执行OCR,但是OCR不会存储为文件内容的一部分,它仅用于索引文档,以便以后可以使用驱动器搜索找到它(即内部用于驱动器使用) ,没有暴露)。
但是,您可能想要尝试这个DocsList api https://developers.google.com/apps-script/reference/docs-list/file#getContentAsString(),如果它们实际上有文本(而不是文本图像),它们可以在你的pdf上工作。
有没有办法将其添加到启用了OCR转换的Google云端硬盘并从该文件中提取文本?或者甚至有更好的方法来解决我的问题?
Get pdf-attachments from Gmail as text的pdfToText()实用程序使用高级Drive服务和DocumentApp将PDF转换为Google-Doc到文本。您可以通过这种方式获取OCR文本,或将其直接保存到驱动器上任何文件夹中的txt文件中。
这是一个解决方案。您必须在Console开发人员中激活Drive API。
将附件转换为texte的脚本
function uploadFile() {
var search = "label:inbox";
var threads = GmailApp.search(search, 0, 2);
for (var i=0; i<threads.length; i++) {
var messages = GmailApp.getMessagesForThread(threads[i]);
for (var j=0; j<messages.length; j++) {
var email = messages[j];
var sujet = email.getSubject();
var data = email.getAttachments()[0];
if (data){
var file = {
title: sujet,
mimeType: 'image/png'
};
var image = data;
file = Drive.Files.insert(file, image, {ocr: true});
var body = DocumentApp.openById(file.id).getBody();
var imgs = body.getImages();
for (var i = 0; i < imgs.length; i++) {
imgs[i].removeFromParent();
}
}
}
}
///////////Script to convert external file to text
function uploadFile(){
var image = UrlFetchApp.fetch('http://web.engr.oregonstate.edu/~dambrobr/classes/cs532/muggleton94inductive.pdf').getBlob();
var file = {title: 'IA',mimeType: 'image/png'};
file = Drive.Files.insert(file, image, {ocr: true});
var body = DocumentApp.openById(file.id).getBody();
var imgs = body.getImages();
for (var i = 0; i < imgs.length; i++) {
imgs[i].removeFromParent();
}
}
以上是关于使用Google应用脚本从PDF到文本转换获取文本的主要内容,如果未能解决你的问题,请参考以下文章
Google Cloud Vision API PDF 文本提取
从Txt,PDf,Google云端硬盘中的Doc文件中提取电子邮件地址
QWebEnginePage 打印到 PDF 不会像 Google Chrome 一样打印 PDF 中的可选文本