**Ceci est une ancienne révision du document !**
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/
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
<div id="ocr-server-card" class="clearboth" style="min-height: 40px; padding: 2em; border: 1px solid #888; background: #f8f8f8; text-align: left;"> <?php print $scanConnect->getInfoAboutWebservice(); ?> </div>
Affichera la boite d'information du serveur :
Lancer l'analyse
$scanConnect->runAnalyze();
Récupérer le résultat de l'analyse
$scanConnect->getResult();
Exemple pour un plugin dolibarr
<?php $res = 0; if (!$res && !empty($_SERVER["CONTEXT_DOCUMENT_ROOT"])) { $res = @include $_SERVER["CONTEXT_DOCUMENT_ROOT"]."/main.inc.php"; } // Try main.inc.php into web root detected using web root calculated from SCRIPT_FILENAME $tmp = empty($_SERVER['SCRIPT_FILENAME']) ? '' : $_SERVER['SCRIPT_FILENAME']; $tmp2 = realpath(__FILE__); $i = strlen($tmp) - 1; $j = strlen($tmp2) - 1; while ($i > 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/toto.pdf', 'ymlFileName' => '/var/www/dolibarr/documents/toto.yaml', 'profile' => 'raw', 'action' => 'default', 'lang' => 'fra', 'pluginName' => 'SuperTest-1.0' ]); // $apiInfoFromServer = $scanConnect->getInfoAboutWebservice(); print "<p>File = " . $scanConnect->srcFileName . "</p>"; $res = $scanConnect->runAnalyze(); print $scanConnect->error; if ($res) { print "<p>retour positif = " . $res . "</p>"; print "<pre>"; print json_encode($scanConnect->getResult(), JSON_PRETTY_PRINT); print "<pre>"; } else { print "<p>ERREUR:</p>"; print $scanConnect->error; }