使用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 文本提取

如何从左下角到左上角更改pdf页面中文本的坐标

从Txt,PDf,Google云端硬盘中的Doc文件中提取电子邮件地址

QWebEnginePage 打印到 PDF 不会像 Google Chrome 一样打印 PDF 中的可选文本

如何修改从 1992 年开始的纯文本到 PDF 转换 PostScript 以实际指定页面大小?

将java文本更改为pdf然后打印它