2016-03-09 25 views
0

我需要使用Google云打印将打印作业发送到我的打印机。这是Google Apps脚本命名RISO ComColor 7150我的代码传统打印机如下: -使用Google Apps脚本的Google云打印中无法使用参数

function printGoogleDocument(docID, printerID, docName , type , duplex) { 


var ticket = { 
version: "1.0", 
print: { 
    color: { 
    type: type, 
    vendor_id: "Color" 
    }, 
    duplex: { 
    type: duplex 
    } 
} 
}; 

var payload = { 
"printerid" : printerID, 
"title"  : docName, 
"content" : DriveApp.getFileById(docID).getBlob(), 
"contentType": "application/pdf", 
"ticket" : JSON.stringify(ticket), 
"pages"  : "1,2" 
}; 

var response = UrlFetchApp.fetch('https://www.google.com/cloudprint/submit', { 
method: "POST", 
payload: payload, 
headers: { 
    Authorization: 'Bearer ' + getCloudPrintService().getAccessToken() 
}, 
"muteHttpExceptions": true 
}); 

response = JSON.parse(response); 

if (response.success) { 
Logger.log("%s", response.message); 
} else { 
Logger.log("Error Code: %s %s", response.errorCode, response.message); 
} 
} 

的问题是,当我发送类型STANDARD_COLOR和双工到NO_DUPLEX比它工作正常,但是当我改变他们到MONOCHROME和DUPLEX比给我彩色打印没有双工再次。此外,我发送页码,但它打印整个PDF,而不是给我打印的特定页面。

有人可以告诉我我在做什么worng吗?

在此先感谢。

+0

你是否在页面浏览中使用了ajax?如果是这样,你需要做一些“有趣的东西” –

回答

2

您可以设置打印作业单中的所有内容,无需指定外部单据外的页码。 这里,CJT我推荐,

var ticket = "{\"version\":\"1.0\",\"print\":{\"color\":{\"vendor_id\":\"1\",\"type\":1},\"duplex\":{\"type\":0},\"page_orientation\":{\"type\":"0"},\"copies\":{\"copies\": "2"},\"fit_to_page\":{\"type\":3},\"page_range\":{\"interval\":[{\"start\": "1",\"end\":"2"}]},\"media_size\":{\"width_microns\":210000,\"height_microns\":297000,\"is_continuous_feed\":false,\"vendor_id\":\"9\"},\"collate\":{\"collate\":false},\"reverse_order\":{\"reverse_order\":false}}}"; 

这样你就可以limit..etc

指定双面,页面这将是很好,如果你可以去这个文档。

https://developers.google.com/cloud-print/docs/cdd#pts

而对于复式,其整数期待,你可以把这个way..if需要NO_DUPLEX您需要发送0, NO_DUPLEX = 0; LONG_EDGE = 1; SHORT_EDGE = 2;

+0

它给我错误,当我用这个。说错误代码:424.0解析打印作业的打印传票失败。 @AhammadaliPK – yash

+1

非常感谢你....这使我的工作.....我应该早些读了一天..... – yash

+0

很高兴听到.carry on – AhammadaliPK