Olá a todos bom dia, então anos atras eu estava em um projeto para gerenciamento de documentos o chamado GED e envolvia a digitalização e para isto existe a lib Mms que é open e a Morena esta é paga, eu estava usando a Mms e o projeto não rolou.
Hoje surgiu uma necessidade de digitalização e em lote usando aqueles scanner que tem uma bandeja para 50, 100 folhas…, se alguém pudesse dar uma força o meu problema justamente é com relação a digitalizar lote de documentos se teria alguma lógica especifica para tal porque de um em um documento o meu código funciona sem problemas.
private void digitalizar() throws ScannerIOException, InterruptedException {
LOG.info("digitalizar()");
scanner = Scanner.getDevice();
// String scanners[] = scanner.getDeviceNames();
if (scanner != null) {
try {
scanner.addListener(this);
// inicia a digitalização da imagem
scanner.acquire();
Thread.sleep(300);
scanner.waitToExit();
} catch (Exception ex) {
throw ex;
}
}
}
private void sair() {
frame.fechar();
}
@Override
public void update(Type type, ScannerIOMetadata metadata) {
if (type.equals(ScannerIOMetadata.ACQUIRED)) {
// neste ponto o documento foi totalmente digitalizado
BufferedImage bufferedImage = metadata.getImage();
String qrCode = Biblioteca.readQRCode(bufferedImage);
LOG.info("QRCode: " + qrCode);
frame.atualizarImagem(bufferedImage);
// imagePanel.setScannedImage(bufferedImage);
try {
ImageIO.write(bufferedImage, "jpg",
new File(pathSources + System.getProperty("file.separator") + "mmsc_image.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// ImageIO.write(image, "jpeg", new File("mmsc_image"+(index++)+".jpeg"));
} 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();
JOptionPane.showMessageDialog(null, e.getMessage());
}