I use this function in my website. I have a button labeled Print that calls this function.
function printMap(){
var printMap = new esri.tasks.PrintTask("yourprintserverurl");
var params = new esri.tasks.PrintParameters();
var template = new esri.tasks.PrintTemplate();
template.exportOptions = { dpi: 96};
template.layout = "Letter ANSI A Portrait";
template.preserveScale = true;
template.showAttribution = false;
template.layoutOptions = {
legendLayers: [], // empty array means no legend
scalebarUnit: "Feet",
titleText: "PIN " + parcelPin,
customTextElements: [
{"physAddress" : printAddress},
{"ownerOne" : ownerOne},
{"ownerTwo" : ownerTwo},
{"mailAddress" : mailAddress},
{"mailCity" : mailCity},
{"mailState" : mailState},
{"mailZip" : mailZip},
{"propReal" : propReal},
{"calcAcre" : calcAcre},
{"landVal" : landVal},
{"buildVal" : buildVal},
{"assessVal" : assessVal},
{"marketVal" : marketVal}
]
};
params.map = map;
params.template = template;
printMap.execute(params, printResult);
function printResult(result){
console.log(result.url);
window.open(result.url);
};
};
I'm also passing values into my print template to display on the layout. The default output is png, but you can set the output type in the template parameters. Here is the API reference