class PrintersInfoSample extends React.Component { constructor(props) { super(props); this.state = { selectedPrinterIndex: 0, installedPrinters: [] }; } setInstalledPrinters(printersList) { this.setState({ installedPrinters: printersList }); console.log(printersList); } setPrinterState(event) { this.setState({ selectedPrinterIndex: event.target.value }); } componentDidMount() { //get client installed printers with detailed info JSPM.JSPrintManager.Caller = this; JSPM.JSPrintManager.getPrintersInfo().then(function(printersList) { JSPM.JSPrintManager.Caller.setInstalledPrinters(printersList); }); } render() { let demoContent; if (this.state.installedPrinters.length == 0) { demoContent = (

Getting printers info...
); } else { let isVirtual = true; let printerPort = this.state.installedPrinters[ this.state.selectedPrinterIndex ].port.toLowerCase(); if (printerPort != "nul" && this.state.installedPrinters[ this.state.selectedPrinterIndex ].BIDIEnabled) isVirtual = false; else if (printerPort.indexOf("usb") >= 0 && printerPort.indexOf("?serial=") >= 0) isVirtual = false; demoContent = (

{isVirtual ? "VIRTUAL PRINTER" : "REAL/PHYSICAL PRINTER"}



Port Name: { this.state.installedPrinters[ this.state.selectedPrinterIndex ].port } Horizontal Resolution (dpi): { this.state.installedPrinters[ this.state.selectedPrinterIndex ].XDPI } Vertical Resolution (dpi): { this.state.installedPrinters[ this.state.selectedPrinterIndex ].YDPI }

  {" "} Is Connected?

  {" "} Is Default?

  {" "} Is BIDI Enabled?

  {" "} Is Local?

  {" "} Is Network?

  {" "} Is Shared?

); } return (

 Printers Info


{demoContent}
); } } window.PrintersInfoSample = PrintersInfoSample;