【发布时间】:2019-09-19 23:32:17
【问题描述】:
我需要找到将图表水平打印为 pdf/image/sheet 的方法。
我用代码自动打印。
现在我正在打印从电子表格选项卡创建的 pdf,但尽管有选项设置,它总是垂直打印。
它将漂亮的水平 pdf 保存在 Drive 上,然后垂直打印。
当我打印统计数据时,我需要它是水平的。
这是我的带有选项的代码:
var requestData = {
"oAuthServiceName": "spreadsheets",
"oAuthUseToken": "always",
};
//spreadsheet id
var ssID = ss.getId()
//sheet id
var sID = ss.getSheetByName("Print").getSheetId();
//creating pdf
var pdf = UrlFetchApp.fetch("https://docs.google.com/spreadsheets/d/"+ssID+"/export?gid="+sID+"&portrait=false&size=letter&fitw=true&format=pdf",requestData).getBlob();
//folder to created pdf in
var folder = DriveApp.getFolderById("1RseEezmGT2gSBS9rgdV0E2ggRD5O6dyu")
//creating pdf in this folder with given name
var file = folder.createFile(pdf).setName("Chart")
var docID = file.getId()
var printerID = "02f4280c-9e83-da7d-d5ff-ca0f25ca03e3"
var docName = "Chart"
//starts printing
printGoogleDocument(docID, printerID, docName)
和
function printGoogleDocument(docID, printerID, docName) {
var ticket = {
version: "1.0",
print: {
color: {
type: "STANDARD_COLOR",
vendor_id: "Color"
},
duplex: {
type: "NO_DUPLEX"
}
}
};
var payload = {
"printerid" : printerID,
"title" : docName,
"content" : DriveApp.getFileById(docID).getBlob(),
"contentType": "application/pdf",
"ticket" : JSON.stringify(ticket)
};
var response = UrlFetchApp.fetch('https://www.google.com/cloudprint/submit', {
method: "POST",
payload: payload,
headers: {
Authorization: 'Bearer ' + getCloudPrintService().getAccessToken()
},
"muteHttpExceptions": true
});
所以我在这里使用选项portrait=false 打印为横向。不工作。
欣赏水平打印的任何解决方案。
【问题讨论】:
-
错误也可能与
printGoogleDocument函数有关。也提供该代码。 -
@TheMaster 用这些数据更新了帖子。
标签: javascript google-apps-script google-sheets printing google-cloud-print