class PrintingFilesSample extends React.Component { constructor(props) { super(props); this.state = { job: null, clientPrinter: null, printFiles: [] }; } doPrinting() { if (this.state.job) { let cpj = this.state.job; cpj.sendToClient(); } } updateJob() { var cpj = new JSPM.ClientPrintJob(); cpj.clientPrinter = this.state.clientPrinter; if (this.state.printFiles) { let files = this.state.printFiles; for (let j = 0; j < files.length; j++) { let my_file; if (files[j].name) my_file = new JSPM.PrintFile( files[j], JSPM.FileSourceType.BLOB, files[j].name, 1 ); else my_file = new JSPM.PrintFile( files[j], JSPM.FileSourceType.URL, "myFileToPrint." + files[j].split(".").pop(), 1 ); cpj.files.push(my_file); } } //no need to re-render this.state.job = cpj; } onPrinterChange(newPrinter) { //No need to re-render! this.state.clientPrinter = newPrinter; this.updateJob(); } onPrintFilesChange(newFiles) { //No need to re-render! this.state.printFiles = newFiles; this.updateJob(); } render() { return (

 Print Images & Docs



); } } window.PrintingFilesSample = PrintingFilesSample;