function TriggerPrintJob() {
var printTemplateObj, printParams, printTaskObj;
printTaskObj = new printTask(printGPTaskUrl + "?token=" + token);
printTemplateObj = new printTemplate();
printParams = new printParameters();
printTemplateObj.exportOptions = {
width: pageWidth,
height: pageHeight,
dpi: pageDpi
};
printTemplateObj.format = "PNG32";
printTemplateObj.layout = "MAP_ONLY";
printParams.map = map;
printParams.template = printTemplateObj;
var Web_Map_as_JSON = printTaskObj._getPrintDefinition(map, printParams);
delete Web_Map_as_JSON.operationalLayers[0].token;
//add export options
var expOptions = ', "exportOptions":{"outputSize":[' + pageWidth + ',' + pageHeight + '],"dpi":' + pageDpi + '}';
var strWebMapJson = JSON.stringify(Web_Map_as_JSON);
Web_Map_as_JSON = strWebMapJson.slice(0, strWebMapJson.lastIndexOf('}')) + expOptions + '}';
var payLoad = {
"Web_Map_as_JSON": Web_Map_as_JSON,
"Format": "PNG32",
"Layout_Template": "MAP_ONLY",
"f": "json"
};
//call execute endpoint via XHR
$.ajax({
type: "POST",
url: printGPTaskUrl + "?token=" + token,
data: payLoad,
success: printSuccess
});
function printSuccess(result) {
readyToPrint = false;
var resultJson = JSON.parse(result);
if (resultJson.error == null) {//success
printImgSrc = resultJson.results[0].value.url;
var printPageElements = '{' +
'"templateName" : "' + selectedPrintTemplate + '",' +
'"imageSource" : "' + printImgSrc + '",' +
'"overviewImageSource" : "' + overviewImgSrc + '",' +
'"mapExtents" : "' + map.extent.xmin + ';' + map.extent.ymin + ';' + map.extent.xmax + ';' + map.extent.ymax + '",' +
'"mapScale" : "' + map.getScale() + '",' +
...
'"remarks" : "' + document.getElementById("txtRemarks").value + '"' +
'}';
localStorage.setItem("printPageElements", printPageElements);
ShowPrintOutput();
$.when(RemovePrintLayers(selectedPrintTemplate)).done(function () {
hideProgressBar();
});
}
else {
readyToPrint = false;
alert("Error generating print!\nPlease contact administrator.");
console.log("Error generating print - " + resultJson.error.message);
$.when(RemovePrintLayers(selectedPrintTemplate)).done(function () {
hideProgressBar();
});
}
}