Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
projet_scanconnect:utiliser_scanconnect_dans_votre_plugin_dolibarr [2023/01/31 08:37] supadminprojet_scanconnect:utiliser_scanconnect_dans_votre_plugin_dolibarr [2023/02/01 08:30] (Version actuelle) supadmin
Ligne 2: Ligne 2:
  
 Vous voulez extraire des données d'un fichier PDF en vous appuyant sur le serveur DocWizOn ? suivez le guide ! 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) Ajoutez ScanConnect dans les dépendances de votre module (fichier core/modules/modVotreModule.class.php)
Ligne 19: Ligne 25:
  
 ``` ```
-$scanConnect = new scanConnect($db);+$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 Par exemple
Ligne 35: Ligne 51:
  
  
 +## 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 |}}
 +
 +```
 +<?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;
 +}
 +```