doc2img

Attention, cette contribution est EN CHANTIER : elle n’est peut-être pas fonctionnelle.

Ou comment convertir des documents multipages (pdf, tiff, etc.) en une succession d’images.

Nota SPIP-Contrib : un plugin encore en développement, la présente documentation doit servir de support à celui-ci. N’hésitez pas à vous servir de ce forum pour remonter vos essais et avis à l’auteur.

Nota auteur : ce plugin se cherche aussi un petit nom , n’hesitez pas à proposer vos idées dans le forum

Présentation

Ce plugin a pour vocation de transformer les documents multipages (pdf, tiff, gif , ...) en autant d’images.

Par exemple, nous pouvons prendre le cas d’un journal papier, dont une version pdf existe. Il est ainsi possible :
-  d’importer ce document dans un article dédié ;
-  de lancer la conversion ;
-  de proposer une consultation en ligne des différentes pages.

Prérequis

Ce plugin s’appuie sur la bibliothèque ImageMagick (plus de détail). Cet outil est un couteau suisse du traitement d’images.

Pour supporter le pdf, il faut aussi ghost script

Pour plus de détail sur les formats supportés à la lecture, je vous invite à consulter cette page

Il faut noter que le plugin necessite CFG.

Avertissement
Le support de SPIP 1.9.2 s’arrete avec la version 0.5 du plugin.
Les developpements actuels ne sont compatibles qu’avec SPIP 2.0 RC1 (Release Candidate 1) est sortie

Installation

Selon vos besoins et votre serveur, installez ou faites installer les logiciels nécessaire. C’est à dire :

Debian Stable (Lenny)

Mettre à jour sa liste de depot /etc/apt/sources.list :

deb http://ftp.fr.debian.org/debian/ stable main contrib
deb-src http://ftp.fr.debian.org/debian/ stable main contrib

Installer la derniere version de ghostscript :
apt-get install gs-gpl

Il est conseillé d’utiliser les paquets des polices suivantes :
apt-get install gsfonts gsfonts-other gsfonts-x11 msttcorefonts

Ressources :

Le plugin

Attention il n’y a pas de contrôle sur la présence ou non de ghost script. Pour le moment c’est à vous de vous assurer de la bonne présence des logiciels.

Telechargez le plugin sur le dépot de la zone

Suivez la procédure normale d’installation https://www.spip.net/fr_article3396.html

Jeu de test

Pour tester la qualité de la conversion de vos documents, le document en pièce jointe est à votre disposition.
Ce pdf utilise un  ? et un set d’images utilisées pour les tests d’impression. Vous pouvez demander les sources (format odt) ou demander l’ajout de polices ou autres éléments.

Pangramme : jeu de test
Un jeu de test, pour voir le comportement du plugin en production

Configuration

Attention L’utilisation de CFG et l’activation d’une configuration par défaut impose de desinstaller complétement toute version précédent la 0.4.

Depuis la version 0.4, une configuration par défaut est proposée.

Configuration par défaut
Le panneau de configuration et ses paramétres par défaut

format des documents
On peut spécifier les documents convertibles, par défaut ce sont les formats tiff et pdf.

Repertoire de stockage
Par défaut l’ensemble des documents est sauvegardé dans le repertoire /IMG/doc2img/. Ce repertoire est créé automatiquement lors de l’installation.
Vous pouvez spécifier un autre repertoire, toutefois ce sera à vous de vérifier l’existence du dit repertoire. De plus il faut des droits d’écriture dessus au même titre que ceux de /IMG/

Format de sauvegarde
Le format par défaut pour les images générées est le PNG. Vous pouvez préciser un autre format dans la liste déroulante. Cette liste s’appuie sur les formats supportés par SPIP.

Rédimension
Par défaut les images ne sont pas redimensionnées. Elle auront donc la meme taille et resolution que celle du document original.
Vous pouvez indiquer :
-  soit une largeur
-  soit une hauteur
-  soit les 2

Proportion
Si l’option proportion est cochée, le document sera redimensionné selon le plus faible ratio. C’est à dire qui si le rapport largeur réelle / largeur demandée est supérieure à hauteur réelle / hauteur demandée, l’image sera redimensionné selon le rapport defini par le ratio hauteur.

Agrandissement

Dans certains cas le pdf est sauvegardé dans un format d’impression petit (A5 ou autre), le script ne peux pas par lui meme determiner si c’est le format réel du document ou juste le format d’impression.

Pour palier à ce point, il est possible de forcer le script à prendre les tailles définies meme si celles ci sont inférieures à celle detectées par le plugin.

Convertir à la volée
SI cette option est activée, lorsqu’un document est téléchargé depuis l’espace privée celui est directement convertit en succession d’images.

Utilisation

Si l’option « Convertir à la volée » n’est pas activé, il est nécessaire de sélectionner le document à convertir. Ceci se fait depuis la partie privée.

Choissisez un article pour lequel un document de type pdf ou tiff a été importé. Dans la colone de gauche, une liste déroulant est présente.

Sélection d’un document
Sélection minimaliste pour convertir un document

Sélectionnez le document voulu et cliquez sur le bouton convertir. Patientez un peu, en fonction du document le temps de conversion est plus ou moins long.

Espace public

Un squelette par défaut minimaliste est disponible. Saisissez l’adresse suivante dans la barre de votre navigateur : http://votresite/?fond=doc2img

exemple d’un squelette
Le squelette par défaut de doc2img

(c) Calvin et Hobbes

Le squelette

L’idée est d’être au plus proche de la logique SPIP. Ainsi les images générées sont accessibles par un squelette quelconque.

[(#REM) On liste les documents ayant été convertis]
<B_listed2c>
    Liste des documents
<BOUCLE_listed2c(DOC2IMG) > 
    [(#ID_DOCUMENT|unique|?{' ',''})
        <a href=#URL_PAGE{doc2img,id_document=#ID_DOCUMENT}> #ID_DOCUMENT </a>
    ]
</BOUCLE_listed2c>

[(#REM) On navigue parmi les images d'un document]
<B_d2c>
    #ANCRE_PAGINATION
<BOUCLE_d2c(DOC2IMG) {id_document} {pagination 1} >
    <img src="#FICHIER" />
</BOUCLE_d2c>
    <p>
    Ce document poss&eacute;de #GRAND_TOTAL page(s)
    </p>
    #PAGINATION{page_precedent_suivant}
</B_d2c>
    table vide
<//B_d2c>

Comme vous pouvez le constatez le code est simple. C’est un squelette des plus basiques qui utilise la #PAGINATION pour se déplacer dans les images.

Les balises

Nous avons comme balises statiques :

  • #FICHIER : le chemin depuis IMG/ de chaque page
  • #PAGE : numero de la page, commence à 0
  • #LARGEUR : largeur de l’image de la page
  • #HAUTEUR : hauteur de l’image de la page
  • #TAILLE : taille en octets

Comme balises calculées nous avons :

  • #URL_DOC2IMG : URL de la page selon le contexte
  • [(#CONFIG{php::doc2img/#ID_DOCUMENT/pages})] : nombre de pages pour un document
  • [(#CONFIG{php::doc2img/#ID_DOCUMENT/statut})] : statut de conversion, « en cours », « réalisée »

Les filtres

  • #ID_DOCUMENT|d2c_convertir : converti le document, retourne
    • true si conversion réussie
    • deja converti si le document est déjà converti
    • non convertible si le document ne peut être converti
  • #ID_DOCUMENT|d2c_can_convert : retourne true si le document peut être converti.
  • #ID_DOCUMENT|d2c_is_convert : retourne true si le document est deja converti.

A faire

-  Les traductions
-  Support de la configuration (version 0.4)
-  lLa génération automatique lors d’un chargement d’un doc
-  suppression des images lors de la suppression du document maître
-  cacher les documents deja converti dans la liste de selection de convestion
-  mettre une barre de progression
-  tester avec php5
-  support complet de l’api sql_*
-  controler automatiquement les prérequis (imagick, gs, ...)

Discussion

Une discussion

  • 2

    Bonjour,

    Nous utilisons ce plugin sur des sites en version 4.1.9 avec succès, avec le plugin FACD.

    • Bonjour,
      Est-ce que cela fonctionne toujours pour vous en SPIP 4.2 ?
      J’ai installé le plugin en local (+ghostscrpt)
      mais le clic sur « Convertir la première page en vignette » ne retourne rien lorsque je veux générer une vignette pour un PDF.

      J’ai créé le répertoire IMG/doc2img à la main car par défaut il n’existait pas.

      J’ai un doute car le plugin est indiqué « Mis à jour le 5 février 2020
      SPIP 4.2
      1.5.1 stable déprécié »

      Et c’est vraiment dommage car pour les PDF avoir une vignette distinctive est vraiment un besoin.
      Merci
      dd

    • Oui, en modifiant les bornes, cela fonctionne jusqu’à la version 4.2.9.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom