debugging: X.options.datasource.debugging,
biAvailable: _.isObject(X.options.biServer) && !_.isEmpty(X.options.biServer),
emailAvailable: _.isString(X.options.datasource.smtpHost) && X.options.datasource.smtpHost !== "",
- printAvailable: false,
+ printAvailable: _.isString(X.options.datasource.printer) && X.options.datasource.printer !== "",
version: X.version
});
callback(callbackObj);
async = require("async"),
fs = require("fs"),
path = require("path"),
+ ipp = require("ipp"),
Report = require('fluentreports').Report,
queryForData = require("./report").queryForData;
@property req.query.action
Sample URL:
- https://localhost:8543/qatest/generate-report?nameSpace=XM&type=Invoice&id=60000
+ https://localhost:8443/dev/generate-report?nameSpace=XM&type=Invoice&id=60000&action=print
*/
var generateReport = function (req, res) {
Silent-print to a printer registered in the node-datasource.
*/
var responsePrint = function (res, data, done) {
- // TODO
+
+ var printer = ipp.Printer(X.options.datasource.printer);
+ var msg = {
+ "operation-attributes-tag": {
+ "job-name": "Silent Print",
+ "document-format": "application/pdf"
+ },
+ data: data
+ };
+ printer.execute("Print-Job", msg, function(error, result){
+ if (error) {
+ X.log("Print error", error);
+ res.send({isError: true, message: "Error printing"});
done();
+ } else {
+ res.send({message: "Print Success"});
+ done();
+ }
+ });
};
// Convenience hash to avoid log if-else