Как получить производителя PDF в скрипте приложения Google - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь написать дополнение к gmail, в котором я перебираю все электронные письма и создаю отчет на основе их производителей.Итерации по электронной почте - самая легкая часть, и я сделал это, однако я не могу найти какой-либо способ получить строку производителя для каждого файла PDF.До сих пор я пытался

  • анализировать BLOB-объекты, однако это похоже на написание библиотеки PDF для анализа всего синтаксиса.Тег производителя явно отсутствует
  • с добавлением pdf.js, который является сторонним инструментом с открытым исходным кодом для извлечения такой информации.Однако я не смог добавить его из-за проблемы поддержки ES3 - ES6.

Какой лучший способ получить строку производителя PDF в скрипте приложения Google?

Спасибо

1 Ответ

1 голос
/ 23 апреля 2019
  • Вы хотите получить значение Producer из файла PDF.

Я могу понять, как выше.Если мое понимание верно, как насчет этого примера сценария?В этом примере сценария из ваших общих файлов PDF значение Producer извлекается из двух регулярных выражений из содержимого файла.Пожалуйста, подумайте об этом как об одном из нескольких ответов.

Пример сценария:

При использовании этого сценария укажите идентификатор папки, в которую помещаются файлы PDF.Этот скрипт извлекает значение из всех файлов PDF в папке.

var folderId = "### folderId ###";
var files = DriveApp.getFolderById(folderId).getFilesByType(MimeType.PDF);
var regex = [/Producer\((\w.+)\)/i, /<pdf:Producer>(\w.+)<\/pdf:Producer>/i];
var result = [];
while (files.hasNext()) {
  var file = files.next();
  var content = file.getBlob().getDataAsString();
  var r = regex.reduce(function(s, e) {
    var m = content.match(e);
    if (Array.isArray(m)) s = m[1];
    return s;
  }, "");
  result.push({
    fileName: file.getName(),
    fileId: file.getId(),
    vaueOfProducer: r,
  });
}
Logger.log(result); // Result

Результат:

Этот пример результата был получен из папки (мой Google-диск), в которой находились общие 3 файла PDFput.

[
  {
    "fileName": "2348706469653861032.pdf",
    "fileId": "###",
    "vaueOfProducer": "iText� 7.1.5 �2000-2019 iText Group NV \(iText; licensed version\)"
  },
  {
    "fileName": "Getting started with OneDrive.pdf",
    "fileId": "###",
    "vaueOfProducer": "Adobe PDF library 15.00"
  },
  {
    "fileName": "DITO-Salesflow-040419-1359-46.pdf",
    "fileId": "###",
    "vaueOfProducer": "iText 2.1.7 by 1T3XT"
  }
]

Примечание:

  • Для файла 2348706469653861032.pdf символы, которые не могут быть отображены, включены в значение Producer.
  • Это пример сценария.Поэтому, пожалуйста, измените это для вашей ситуации.
...