Utilisez ScanConnect (et la puissance du serveur DocWizOn) dans votre module Dolibarr

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/

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

    <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 :

É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:

<?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/marathon.pdf',
	'ymlFileName' => '/var/www/dolibarr/documents/marathon.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;
}
projet_scanconnect/utiliser_scanconnect_dans_votre_plugin_dolibarr.txt · Dernière modification : 2023/02/01 08:30 de supadmin
CC Attribution-Share Alike 4.0 International Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International