Rob*_*est 8 pdf google-docs google-apps-script
我一直在尝试将Google文档文件转换为PDF文件,而无需使用下载选项.下面是我在脚本编辑器中使用的脚本,但它似乎不起作用.我认为错误发生在IF语句之后.
function convertPDF() {
doc = DocumentApp.getActiveDocument();
docblob = DocumentApp.getActiveDocument().getAs('application/pdf');
var result = DocumentApp.getUi().alert(
'Save As PDF?',
'Save current document (Name:'+doc.getName()+') as PDF',
DocumentApp.getUi().ButtonSet.YES_NO);
if (result == DocumentApp.getUi().Button.YES) {
docblob.setName(doc.getName())
folder.createFile(docblob);
DocumentApp.getUi().alert('Your PDF has been converted to a PDF file.');
} else {
DocumentApp.getUi().alert('Request has been cancelled.');
}
}
Run Code Online (Sandbox Code Playgroud)
要将 PDF 保存在原始目录中:
function convertPDF() {
doc = DocumentApp.getActiveDocument();
// ADDED
var docId = doc.getId();
var docFolder = DriveApp.getFileById(docId).getParents().next().getId();
// ADDED
var ui = DocumentApp.getUi();
var result = ui.alert(
'Save As PDF?',
'Save current document (Name:'+doc.getName()+'.pdf) as PDF',
ui.ButtonSet.YES_NO);
if (result == ui.Button.YES) {
docblob = DocumentApp.getActiveDocument().getAs('application/pdf');
/* Add the PDF extension */
docblob.setName(doc.getName() + ".pdf");
var file = DriveApp.createFile(docblob);
// ADDED
var fileId = file.getId();
moveFileId(fileId, docFolder);
// ADDED
ui.alert('Your PDF file is available at ' + file.getUrl());
} else {
ui.alert('Request has been cancelled.');
}
}
Run Code Online (Sandbox Code Playgroud)
并添加这个通用功能
function moveFileId(fileId, toFolderId) {
var file = DriveApp.getFileById(fileId);
var source_folder = DriveApp.getFileById(fileId).getParents().next();
var folder = DriveApp.getFolderById(toFolderId)
folder.addFile(file);
source_folder.removeFile(file);
}
Run Code Online (Sandbox Code Playgroud)
它失败了,因为没有定义文件夹.如果将其替换为DriveApp,则将在根文件夹中创建PDF,您的功能将起作用.您还可以在消息框中显示完整的URL.
function convertPDF() {
doc = DocumentApp.getActiveDocument();
var ui = DocumentApp.getUi();
var result = ui.alert(
'Save As PDF?',
'Save current document (Name:'+doc.getName()+'.pdf) as PDF',
ui.ButtonSet.YES_NO);
if (result == ui.Button.YES) {
docblob = DocumentApp.getActiveDocument().getAs('application/pdf');
/* Add the PDF extension */
docblob.setName(doc.getName() + ".pdf");
var file = DriveApp.createFile(docblob);
ui.alert('Your PDF file is available at ' + file.getUrl());
} else {
ui.alert('Request has been cancelled.');
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12693 次 |
| 最近记录: |