# Utilisez ScanConnect (et la puissance du serveur DocWizOn) dans votre module Dolibarr Vous voulez extraire des données d'un fichier PDF en vous appuyant sur le serveur DocWizOn ? suivez le guide ! Le code source du plugin ScanConnect est disponible sur la forge logicielle d'informatique-libre: https://inligit.fr/cap-rel/dolibarr/plugin-scanconnect/ [{{:projet_scanconnect:pasted:20230131-150950.png?direct=400|Schéma de principe - Factorisation du code de connexion avec le serveur DocWizOn}}] ## La base Ajoutez ScanConnect dans les dépendances de votre module (fichier core/modules/modVotreModule.class.php) ``` // List of module class names as string that must be enabled if this module is enabled. Example: array('always1'=>'modModuleToEnable1','always2'=>'modModuleToEnable2', 'FR1'=>'modModuleToEnableFR'...) $this->depends = ['...','modScanConnect']; ``` Puis ajoutez scanconnect dans vos include: ``` dol_include_once('/scanconnect/class/scanConnect.class.php'); ``` Instanciez un objet scanConnect et utilisez le : ``` $scanConnect = new scanConnect([ 'db'=>$db, 'srcFileName'=>'/var/www/dolibarr-14/documents/toto.pdf', // fichier pdf à analyser 'ymlFileName' => '/var/www/dolibarr-14/documents/toto.yaml', // facultatif, voir https://doc.cap-rel.fr/projet_docwizon/format_de_description_du_masque_d_analyse 'profile' => 'raw', // voir https://doc.cap-rel.fr/projet_docwizon/accueil#profils_de_documents_pris_en_compte 'action' => 'default', // pour l'instant seule action possible :=) 'lang' => 'fra', // voir la liste des langues disponible sur https://doc.cap-rel.fr/projet_docwizon/accueil#langues 'pluginName' => 'SuperTest-1.0' // le nom de votre plugin ]); ``` ## Informations serveur & compte docwizon Par exemple ```
getInfoAboutWebservice(); ?>
``` Affichera la boite d'information du serveur : [{{:projet_scanconnect:pasted:20230131-083607.png?direct=400|État du serveur et de votre compte}}] ## Lancer l'analyse ``` $scanConnect->runAnalyze(); ``` ## Récupérer le résultat de l'analyse ``` $scanConnect->getResult(); ``` ## Exemple pour un plugin dolibarr Fichiers du jeu d'essai: * document PDF: {{ :projet_scanconnect:marathon.pdf |}} * masque d'extraction de données: {{ :projet_scanconnect:marathon.yaml |}} ``` 0 && $j > 0 && isset($tmp[$i]) && isset($tmp2[$j]) && $tmp[$i] == $tmp2[$j]) { $i--; $j--; } if (!$res && $i > 0 && file_exists(substr($tmp, 0, ($i + 1))."/main.inc.php")) { $res = @include substr($tmp, 0, ($i + 1))."/main.inc.php"; } if (!$res && $i > 0 && file_exists(dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php")) { $res = @include dirname(substr($tmp, 0, ($i + 1)))."/main.inc.php"; } // Try main.inc.php using relative path if (!$res && file_exists("../main.inc.php")) { $res = @include "../main.inc.php"; } if (!$res && file_exists("../../main.inc.php")) { $res = @include "../../main.inc.php"; } if (!$res && file_exists("../../../main.inc.php")) { $res = @include "../../../main.inc.php"; } if (!$res) { die("Include of main fails"); } // ============================================ debut du code ScanConnect dol_include_once('/scanconnect/class/scanConnect.class.php'); $scanConnect = new scanConnect([ 'db'=>$db, 'srcFileName'=>'/var/www/dolibarr/documents/marathon.pdf', 'ymlFileName' => '/var/www/dolibarr/documents/marathon.yaml', 'profile' => 'raw', 'action' => 'default', 'lang' => 'fra', 'pluginName' => 'SuperTest-1.0' ]); // $apiInfoFromServer = $scanConnect->getInfoAboutWebservice(); print "

File = " . $scanConnect->srcFileName . "

"; $res = $scanConnect->runAnalyze(); print $scanConnect->error; if ($res) { print "

retour positif = " . $res . "

"; print "
";
	print json_encode($scanConnect->getResult(), JSON_PRETTY_PRINT);
	print "
";
} else {
	print "

ERREUR:

"; print $scanConnect->error; } ```