I have spring boot application which runs the scanner and get the output of scanner. To do that I used uk.co.mmscomputing.device with the external jar.
However when a usb cable is not pluged in or when selected device is not avaiable it throws an Exception. I need to know when an Exception is thrown and handle it.
How can I do that ?
Here is my code
public class TwainExample implements ScannerListener{
static TwainExample app;
Scanner scanner;
public TwainExample(String[] argv)throws ScannerIOException{
scanner=Scanner.getDevice();
scanner.addListener(this);
scanner.acquire();
}
public void update(ScannerIOMetadata.Type type, ScannerIOMetadata metadata){
if(type.equals(ScannerIOMetadata.ACQUIRED)){
BufferedImage image=metadata.getImage();
System.out.println("Have an image now!");
try{
ImageIO.write(image, "png", new File("mmsc_image.png"));
}catch(Exception e){
e.printStackTrace();
}
}else if(type.equals(ScannerIOMetadata.NEGOTIATE)){
ScannerDevice device=metadata.getDevice();
try{
// device.setShowUserInterface(true);
// device.setShowProgressBar(true);
// device.setResolution(100);
}catch(Exception e){
e.printStackTrace();
}
}else if(type.equals(ScannerIOMetadata.STATECHANGE)){
System.err.println(metadata.getStateStr());
if(metadata.isFinished()){
System.exit(0);
}
}else if(type.equals(ScannerIOMetadata.EXCEPTION)){
metadata.getException().printStackTrace();
}
}
public static void main(String[] argv){
try{
app=new TwainExample(argv);
}catch(Exception e){
e.printStackTrace();
}
}
}