当App脚本超过了最大执行时间时,可以将PDF转换器拆分为多个步骤,并使用触发器或定时器在后台进行处理。
以下是一个示例,将PDF转换器拆分为多个步骤:
// 步骤1:将要转换的文件分割为多个部分
function splitPDF() {
// 将PDF文件分割为多个页面
// 将每个页面保存为单独的文件
}
// 步骤2:逐个转换每个部分为图像
function convertToImage() {
// 逐个读取每个部分的文件
// 将每个部分转换为图像
// 保存图像文件
}
// 步骤3:将图像文件合并为PDF
function mergeImages() {
// 逐个读取每个图像文件
// 将每个图像文件合并为一个PDF文件
}
// 步骤4:删除中间文件
function deleteTempFiles() {
// 删除步骤1和步骤2生成的临时文件
}
// 运行转换器
function runPDFConverter() {
splitPDF(); // 步骤1
convertToImage(); // 步骤2
mergeImages(); // 步骤3
deleteTempFiles(); // 步骤4
}
// 创建一个定时触发器,每天运行一次
function createTrigger() {
ScriptApp.newTrigger('runPDFConverter')
.timeBased()
.atHour(0)
.everyDays(1)
.create();
}
上述示例将PDF转换器分为四个步骤:分割PDF文件、将每个部分转换为图像、合并图像文件为PDF文件,最后删除临时文件。通过将转换过程分为多个步骤,并使用定时触发器在后台运行,可以避免超过最大执行时间限制。
上一篇:App脚本不依赖于列位置