我正在尝试编写一个gmail附加组件,我遍历所有电子邮件并根据其生产者创建报告。迭代电子邮件是最简单的部分,我已经做到了,但是我找不到任何方法来获取每个PDF的生产者行。到目前为止我试过了
在谷歌应用程序脚本中获取PDF生产线的最佳方法是什么?
谢谢
我可以像上面那样理解。如果我的理解是正确的,那么这个示例脚本怎么样?在此示例脚本中,从共享的PDF文件中,Producer的值由文件内容中的2个正则表达式检索。请将此视为几个答案之一。
使用此脚本时,请设置放置PDF文件的文件夹的文件夹ID。此脚本从文件夹中的所有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
此示例结果是从放置共享3个PDF文件的文件夹(我的Google云端硬盘)中检索到的。
[
{
"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的值中。