Scanner des documents depuis Flower

22/11/2019


Le module complémentaire FlowerScanService vous permet de créer des documents à partir d’un scanner directement depuis Flower.

Cet article décrit comment intégrer ce module avec Flower.

Prérequis

  • Installer l’exécutable FlowerScanInstall{version}.exe
  • Posséder un scanner compatible avec des drivers WIA ou TWAIN

Intégration

L’ensemble des scripts ci-dessous permettent l’intégration du FlowerScan.

Récupération des sources

La partie suivante permet de récupérer l’ensemble des sources (ou scanners) disponibles depuis votre poste :

function getScanSources(callback){
	$.get( "http://localhost:5678/FlowerScanService/sources", function( data ) {
		callback($.parseJSON(data));
	});
}


Lancement du scan

Ajouter ensuite la fonction permettant le lancement du scan ainsi que l’ouverture de la popup de lancement :

function launchScan(source, serverUrl, timeout, successCallback, errorCallback){
	var formData = new FormData();
	formData.append("serverUrl", serverUrl);
	formData.append("sessionToken", JSAPI.get().getUserAPI().getUserToken());
  	formData.append("sessionId", Math.random() * 1000);
	formData.append("source", source);
	formData.append("timeout", timeout);
	$.ajax({
		url: 'http://127.0.0.1:5678/FlowerScanService/start',
		type: 'POST',
		data: formData,
		async: true,
		cache: false,
		contentType: false,
		processData: false,
		success: function (data) {
			var result =  JSON.parse(data);
			var message = result.message;
			if(result.code == '200'){
				successCallback(result.message);
			}else{
				errorCallback(result.code + ' ' + message );
			}
		}
	});
}

function showScanPopup(sources){
	var popup = new ScanPopup();
	popup.show(sources, function(source){
		JSAPI.get().showLoadingPanel();
      	var contextPath = window.location.pathname.substring(0, window.location.pathname.indexOf("/",2));
      	var core = document.location.origin + contextPath + '/plugins/rest/scan';
		launchScan(source, core, 60,
			function(documentId){
				JSAPI.get().hideLoadingPanel();
				popup.success(documentId);
			},
			function(message){
				JSAPI.get().hideLoadingPanel();
				popup.error(message);
			}
		);
	});
}


Utilisation

Pour pouvoir utiliser le module FlowerScan, ajouter une action pour le lancer.
L’exemple ci-dessous permet l’ajout de cette action à partir du raccourci de création présent à côté de l’avatar :

MenuShortcutsAPI.get().registerForLoad(function(api){ 
	getScanSources(function(sources){
		if(sources && sources.length > 0){
			addShortcutScanAction(api, sources);
		}
	});
});

function addShortcutScanAction(api, sources){
	api.addCircled("scan", "mdi mdi-scanner", "flat-red" , "Scanner un document", "Lancer le scan d'un document défini sur votre poste", function(){
	    showScanPopup(JSON.stringify(sources));
	});
}



Si avec ce code, l’action pour lancer le scan n’est pas présente :

  • Vérifier que le service Windows FlowerScanService est démarré
  • Il se peut également qu’aucune source n’ait été trouvée : vérifier que les drivers du scanner sont correctement installés.