Project

General

Profile

Actions

Feature #6957

closed

Améliorations techniques des services de prévisualisation et de visualisation des pièces jointes.

Added by Yohann Chastagnier about 6 years ago. Updated about 6 years ago.

Status:
Closed
Priority:
Normal
Category:
Fichiers joints
Start date:
10/07/2015
Due date:
% Done:

100%

Estimated time:
Livraison en TEST:
Livraison en PROD:

Description

Dans le cadre de la visionneuse d'une pièce jointe, il nous a été rapporté un cas d'erreur technique au niveau des traitements de conversions qui permettent d'obtenir le fichier finalement visionné.
Cette erreur technique se produit lors de l'appel à l'outil pdf2swf avec un fichier source pouvant comporter un nombre de page très important (quelques centaines), avec par page un nombre important d'information (des tableaux qui s'étendent sur des dizaines de pages par exemple).

Le but ici consiste donc à faire évoluer la mécanique des services de prévisualisation et de visualisation de manière à obtenir un résultat sans erreur là où il y en à aujourd'hui.


Related issues

Related to Silverpeas Core - Feature #3817: Visualisation des pièces jointesClosedNicolas Eysseric10/12/2012

Actions
Related to Silverpeas Core - Feature #3216: Prévisualisation des pièces jointesClosedYohann Chastagnier04/27/2012

Actions
Related to Silverpeas Core - Bug #6901: Interdire téléchargement Lecteur - Pb accès au document de 9MoClosedYohann Chastagnier09/22/2015

Actions
Actions #1

Updated by Yohann Chastagnier about 6 years ago

  • Related to Feature #3817: Visualisation des pièces jointes added
Actions #2

Updated by Yohann Chastagnier about 6 years ago

  • Related to Feature #3216: Prévisualisation des pièces jointes added
Actions #3

Updated by Yohann Chastagnier about 6 years ago

  • Status changed from In progress... to Resolved
  • % Done changed from 0 to 100

Le mécanisme de conversion des fichiers vers un format compatible avec la visionneuse actuelle (version avec Licence GPL) a été revu. Cela, notamment, dans le but ne plus avoir d'erreur au niveau de l'utilisation de l'outil pdf2swf avec des fichiers comportant quelques centaines de pages (avec beaucoup de données par page).

Ce mécanisme peut maintenant employer deux méthodes de conversion de fichier :
  • un fichier par page (nouvelle méthode) : elle consiste à produire autant de fichiers que ce que le fichier à visualiser contient de pages. Une fois les conversions réalisées, la visionneuse est ensuite capable de charger les pages à la demande selon le parcours du fichier effectué par l'utilisateur
  • un fichier pour un fichier (méthode actuelle) : elle consiste à enregistrer l'ensemble des pages converties dans un seul fichier

Avec la méthode un fichier par page, pour profiter de la fonctionnalité de recherche dans la visionneuse, il faut mettre en place l'outils pdf2json sur le serveur et que ce dernier soit référencé par la variable path du système d'exploitation. Il permet de générer une sorte d'indexation des mots contenus dans le fichier sur laquelle se repose la visionneuse lors d'une recherche. Dans ce contexte, il est possible d'effectuer des recherches d'un mot (comme avec l'autre méthode), mais pas d'un ensemble de mots (contrairement à l'autre méthode). Si cette limitation au niveau de la recherche pose problème, un paramètre permet d'indiquer à Silverpeas l'utilisation de cette méthode (un fichier par page) uniquement en cas d'erreur de conversion avec l'autre méthode.

Si l'outil pdf2json n'est pas installé et référencé par la variable path, alors la méthode de conversion de fichier est la même que celle actuelle, c'est-à-dire un fichier pour un fichier. Mais si une erreur technique intervient au niveau de l'outil pdf2swf, alors la méthode de conversion un fichier par page est appliquée (quel que soit le paramétrage applicatif). Dans un tel cas, la recherche de texte devient non fonctionnelle, car il n'est possible de rechercher un mot que sur la première page (limitation technique).

Il convient de préciser à ce niveau que dans le cas où le paramétrage indique l'utilisation de la méthode un fichier par page uniquement sur une erreur technique survenant avec l'autre méthode (paramètre viewer.conversion.strategy.split.enabled à false), les éléments nécessaires à la visionneuse pour la fonctionnalité de recherche sont quant à eux bien générés si l'outil pdf2json est disponible sur le serveur.

La gestion d'un cache a également été ajoutée (un paramètre applicatif permet de la désactiver).
Les résultats de chaque conversions (quelle que soit la méthode), comme actuellement, sont enregistrés dans l'espace cache de données de Silverpeas : $SILVERPEAS_HOME/data/temp. Mais maintenant, un résultat issu d'une consultation d'un fichier est réutilisé lors des prochaines consultations de ce même fichier.
La durée de vie des éléments du cache vis-à-vis de la visionneuse dépendent du paramétrage du cache de Silverpeas. Il convient de noter à ce niveau que si le cache est configuré de manière à ce qu'il ne soit pas nettoyé à chaque redémarrage de Silverpeas (ce n'est pas le paramétrage par défaut), alors les éléments convertis et mis en cache restent valides après un redémarrage de Silverpeas.

Enfin, un système de conversion silencieuse a aussi été ajouté. Il ne peut être actif que si la gestion du cache est activée. Lorsque l'utilisateur demande un type de visualisation d'un document, par exemple consulter le document dans la visionneuse, alors les autres types de conversions (donc la prévisusalisation pour l'exemple donné) sont implicitement générés (si cela est possible).


D'un côté technique, dans un premier point sont indiqués les éléments pour installer l'outils pdf2json, et dans un deuxième point, sont détaillés les nouveaux paramètres d'application mis en place.

Installer pdf2json (version 0.68)

Pour Windows :
  • télécharger l'archive de l'outil
  • extraire l'outil de l'archive et le placer dans un répertoire de votre choix
  • référencer le répertoire dans la variable d'environnement système PATH
Pour Linux (installation standard) :
  • télécharger l'archive de l'outil
  • installer l'outil en suivant la méthode ci-dessous :
    $ mkdir pdf2json
    $ tar zxvf pdf2json-0.68.tar.gz -C pdf2json/
    $ cd pdf2json
    $ ./configure
    $ ./make
    $ sudo make install
    # Le programme sera installé par défaut dans /usr/local (bin, etc, man).
    # Attention, il n'y a pas de cible uninstall pour désintaller le programme. Ceci devra donc être fait manuellement.
    
Pour Linux (installation dans un répertoire autre que celui par défaut) :
  • télécharger l'archive de l'outil
  • installer l'outil en suivant la méthode ci-dessous :
    $ mkdir /opt/pdf2json
    $ ./configure --prefix=/opt/pdf2json
    # et continuer avec les commandes indiquées au niveau de l'installation standard. L'installation va créer les répertories bin, local et man dans /opt/pdf2json et y installer le programme.
    # Il faudra alors mettre /opt/pdf2json/bin dans le PATH, /opt/pdf2json/man dans le /etc/manpath.config comme suit :
    # - MANDATORY_MANPATH     /opt/pdf2json/man
    # - MANPATH_MAP /opt/pdf2json/bin      /opt/pdf2json/man
    # - MANDB_MAP /opt/pdf2json/man /var/cache/man
    
    # Et ne pas oublier de lancer la commande suivante pour mettre à jour la base des man pages :
    $ mandb
    # Pour etc :
    $ cd /etc
    $ sudo ln -s /opt/pdf2json/etc/xpdfrc xpdfrc
    # Attention, il n'y a pas de cible uninstall pour désintaller le programme. Ceci devra donc être fait manuellement.
    

Paramétrage applicatif :

Quatre nouveaux paramétres ont été ajoutés dans le fichier SILVERPEAS_HOME/properties/org/silverpeas/viewer/viewer.properties :
  • viewer.cache.enabled : si la valeur renseignée ne correspond pas à une valeur booléenne ou si la valeur est égale à true (valeur par défaut), la gestion de la mise en cache des fichiers convertis est activée
  • viewer.cache.conversion.silent.enabled : si la valeur renseignée ne correspond pas à une valeur booléenne ou si la valeur est égale à true (valeur par défaut), alors la conversion "silencieuse" d'un fichier est activée. Si la gestion du cache est désactivée, ce paramètre est ignoré
  • viewer.conversion.strategy.split.enabled : si la valeur renseignée ne correspond pas à une valeur booléenne ou si la valeur est égale à true (valeur par défaut), et si l'outil pdf2json est bien détecté par le serveur Silverpeas, la génération d'un fichier par page pour la visionneuse est activée. Ce paramètre est ignoré si l'outil pdf2json n'est pas détecté, cependant, dans le cas d'une erreur technique de conversion d'un fichier avec la méthode un fichier pour un fichier, la méthode un fichier par page est quand même utilisée
  • viewer.cache.timeToLive.enabled : si la valeur renseignée ne correspond pas à une valeur booléenne ou si la valeur est égale à true (valeur par défaut), alors la date de modification des fichiers mis en cache est mise à jour à chaque demande de visualisation ou de prévisualisation afin que ces derniers ne soient pas supprimés par les traitements centralisés de gestion du cache de Silverpeas. Si la gestion du cache est désactivée, ce paramètre est ignoré. Si ce paramètre n'est pas activé, alors les fichiers mis en cache sont supprimés selon les règles du cache de Silverpeas (c'est à dire X temps après l'écriture du fichier)

PR https://github.com/Silverpeas/Silverpeas-Core/pull/638

Actions #4

Updated by Nicolas Eysseric about 6 years ago

  • Related to Bug #6901: Interdire téléchargement Lecteur - Pb accès au document de 9Mo added
Actions #5

Updated by Miguel Moquillon about 6 years ago

  • Status changed from Resolved to Closed

Le paramétrage du nettoyage du cache sur disque de Silverpeas (data/temp) (cf. #3935) , défini dans org/silverpeas/util/data/temporaryDataManagementSettings.properties, a été légèrement corrigé. Pour désactiver celui-ci, il suffit de ne pas valoriser le cron. Ne pas valoriser, ou donner une valeur négative ou égale à zéro au paramètre temporaryData.cleaner.job.file.age.hours fait que l'age des fichiers n'est pas pris en compte et que, par conséquent, le cache est nettoyé à chaque lancement de la tâche de nettoyage.

Actions #6

Updated by Miguel Moquillon about 6 years ago

Intégré aussi dans la V6

Actions

Also available in: Atom PDF