Lecteur pdf javascript pdf.js

Ce plugin est basé sur le projet pdf.js qui permet une lecture en ligne des pdfs depuis le navigateur.

Ce plugin est expérimental et les contributions sur la zone sont les bienvenues.

Avantages

  • Open source basé en javascript
  • Comportement unifié quelque soit le navigateur employé.

Limitations

  • Certains pdfs (polices non standards, trop lourd) ne passent pas bien.

Utilisation

Sous SPIP 3 et 4

Une fois le plugin installé, utiliser le raccourci pour faire apparaitre le lecteur

<emb23898>

.

Il est aussi possible de préciser la taille du cadre

<emb23898|largeur=800|hauteur=600>

On peut aussi utiliser le lecteur en mode plein écran via la page
spip.php?page=pdfjs&id_document=3

Sous 2.1

Une fois le plugin installé, au lieu d’insérer vos documents pdfs par le raccourci <doc23898>, utiliser le raccourci <lecteurpdf23898> pour faire apparaitre le lecteur [1].

Il est aussi possible de préciser la taille du cadre <lecteurpdf23898|largeur=800|hauteur=600>

On peut aussi utiliser le lecteur en mode pleine écran via la page
spip.php?page=pdfjs&id_document=3

Utilisation avec les modèles <media>

Cette section est valable uniquement si vous utiliser le plugin modèles media.

Une fois installé, pour inclure le document 12 dans un texte, il suffit d’utiliser le modèle <media12|embed> de manière classique. Tous les autres paramètres des modèles <media> (alignement, taille, legende...) peuvent être utilisés (voir la documentation des modèles media).

Cette syntaxe assure une pérennité des appels de modèles dans vos textes. Ainsi, si par la suite vous désactiver le plugin pdf.js pour utiliser un autre plugin étendant les modèles média pour les fichiers pdf (comme le plugin Google Viewer), le raccourci <media12|embed> sera pris en compte par cet autre plugin.

Il est également possible de « forcer » l’utilisation du lecteur pdf.js en utilisant la variante de modèle pdfjs. Par exemple : <media12|pdfjs>.

Apercus

Apercu du lecteur en mode normal
Apercu du lecteur avec le volet mode plan
Aperçu du lecteur inclu dans un article

Incompatibilités

Le plugin ne fonctionne pas correctement avec Acces Restreint 3.0 lorsque l’option Interdire la lecture des documents joints est activée.

Note : à partir de la version 0.5.1, le plugin devrait être compatible avec la dernière version du plugin Accès Restreint, tant que les documents ne sont pas distants (il est donc nécessaire d’avoir une copie locale des PDFs affichés avec pdfjs). Cependant, l’interaction entre pdf.js et Accès restreint n’a pas encore été testée de manière approfondie et des bugs ne sont donc pas à exclure.

Avec le plugin Metaplus, pour éviter d’ajouter les metas sur l’iframe ajoutez dans vos options

// pas de metaplus sur pdfjs
define('_METASPLUS_PAGES_EXCLUES','pdfjs');

Notes

[1Le raccourci <lecteurpdf23898> est aussi fonctionnel sous SPIP 3.

Discussion

62 discussions

  • Bonjour,

    Suite au passage de la mutualisation en SPIP 3.3.0-dev GIT [master : be3b4611], je rencontre un soucis d’affichage des pdf pour lecture.

    pour les pdf que je dépose, j’utilise la ligne

    <embxxxx|insert|center|largeur=800|hauteur=720>

    xxxx étant le numéro du document PDF

    Là, il n’y a que la vignette du pdf qui est présente plus d’affichage du document.

    Merci à vous

    Répondre à ce message

  • bonjour,
    pourriez vous me dire quand il y aura une version compatible avec php 7.4 / spip 3.3
    merci

    Répondre à ce message

  • 1

    Bonjour,

    Nous avons mis notre site à jour avec spip 3.2.1
    Nous avons voulu désinstaller accès restreint qui nous posait régulièrement problème (sous spip 3.2.0)
    Et nous avons maintenant un message d’erreur quand nous voulons lire un pdf, qu’il ait été installé avant ou après notre mise à jour :

    Fichier API docrestreint introuvable.

    Quelqu’un a-t-il une idée de ce qu’il y a à faire pour éviter cette erreur ?
    Merci de votre aide.

    • Bonjour,
      J’ai moi même été dans l’obligation de faire cette manip car avec « Accès restreint » activé cela empéchait l’ouverture et donc la lecture du pdf directement dans le navigateur ( il ne faisait que l’enregistrer systématiquement sur le disque dur).
      j’ai donc carrément désinstallé « Accès restreint » dans l’interface privée de SPIP (3.2.5), et là boum

      Fichier API docrestreint introuvable.

      Plus moyen de lire les PDF et les images agrandies dans IMG/
      seuls les vignettes s’affichent...
      même après avoir vider le cache

      Quelqu’un aurait il une solution ?

      Merci

    Répondre à ce message

  • avec le fichier standard backend et inc-item-rss de squelettes-dist et le plugin . Lorsque j’ai <embxx|center> d’un pdf dans le texte , j’obtiens

    <content:encoded><div class='rss_texte'><!--[if !IE]><!--><iframe src="spip.php?page=pdfjs&id_document=2191" width="490" height="600" class="lecteurpdf lecteufpdf-2191 spip_documents spip_documents_center" name="pdf_2191" allowfullscreen></iframe><!--<![endif]-->
    <!--[if IE]><iframe src="IMG/pdf/lefichier.pdf" width="490" height="600" class="lecteurpdf lecteufpdf-2191 spip_documents spip_documents_center" name="pdf_2191" allowfullscreen></iframe><![endif]--></div>
    		
    		</content:encoded><enclosure url="https://nomsite/IMG/pdf/lefichier.pdf" length="375840" type="application/pdf"/>

    ce qui peut poser un problème de récupération des informations.
    Savez comment il faudrait gérer ce cas dans le backend pour que cela soit correct
    merci

    Répondre à ce message

  • 1

    est-ce que cela peut fonctionner si on regarde le site depuis un mobile ?
    merci

    Répondre à ce message

  • 15

    Bonjour,
    Je suis sous spip 3.2, j’ai installé le lecteur mais en insérant le raccourci dans un article je ne vois pas comment afficher le lecteur et surtout afficher un fichier pdf.
    J’ai dû rater un épisode... comment faiton le lien avec le fichier pdf qu’on veut afficher ?
    Merci
    Yann

    • Résolu. J’ai trouvé.

    • Je me réponds. Résolu.

    • Bonjour, ce qui serait sympa, c’est de dire comment vous avez trouvé... je m’apprêtais à poser la même question... et je n’ai pas trouvé la réponse ;-)

    • Bonsoir,
      En fait je n’avais pas bien saisi la façon d’insérer le raccourci <lecteurpdf23898>. Il suffit de remplacer 23898 par le numéro du document pdf téléversé.

    • Ah ok, merci, yann45 pour cette réponse rapide.
      Maintenant, j’ai effectivement le lecteur, mais bien que j’aie téléversé mon fichier pdf (qui est donc dans le colonne à gauche de mon article, interface rédacteur) j’ai un message me disant que le document est manquant ! J’ai mis dans mon article simplement < emb 290 > (sans espace ! Espaces mis ici pour « casser » le code !) ce qui correspond au N° du fichier pdf qui est sur le côté. Mais y a-t-il autre chose à faire ?

    • Normalement, il n’y a rien d’autre à faire. Je viens de tester à nouveau et tout fonctionne.

    • Bonjour,
      Malheureusement quand je fais ça, j’ai le même message que pgiron ci-dessous : j’ai le lecteur mais on me dit que le fichier est manquant alors que je l’ai téléversé et qu’il est dans la colonne de gauche de mon article ! Comment faire pour qu’il soit reconnu ?

    • Quelle version SPIP ? PHP ? Quel navigateur ? Une copie d’écran de votre espace espace privé avec l’article, le fichier téléversé à gauche et le raccourci que vous insérez.

    • Bonjour,
      La version de spip est 3.2, celle du PHP 5.4.45.
      J’ai essayé plusieurs des codes proposés.
      Ci joints 2 fichiers : L’un du message d’erreur que j’obtiens avec le code <media341|pdfjs> ;
      L’autre avec le code

      Dans les 2 cas l’affichage est le même que celui de pgiron : fichier manquant.

    • voici le deuxième fichier annoncé

    • Quel navigateur utilisez-vous ? Je ne vois pas bien où se situe le problème. Il y a peut-être incompatibilité avec un autre plugin. Dans l’espace privé, lorsqu’on clique sur voir, le lecteur n’apparaît pas, par contre sur le site en ligne le lecteur apparaît bien pour ce qui me concerne en tout cas.

    • En ligne, j’ai comme pgiron, un « tableau noir » avec un ligne rouge « fichier manquant » mais pas d’autre message d’erreur.

    • En dehors d’une incompatibilité entre plugins, une extension manquante du navigateur ou des paramètres trop restrictifs de votre navigateur, je ne vois pas. Avez-vous un exemple en ligne sur votre site ? et quelle est l’url de votre site ?

    • Bonjour,
      Le test est à cette page : http://www.loeilepleumien.fr/?essai-pour-pdf

      C’est ce qui correspond à la copie d’écran ci-dessus.
      Mon navigateur habituel est Firefox. Mais j’ai essayé avec Edge. C’est pareil.
      Cordialement

    • Bonjour,
      Ça y est, ça fonctionne ! Assez curieusement, nous avons installé puis activé accès restreint... et depuis les pdf s’affichent. SUPER !
      SUPER aussi les boutons qui permettent d’afficher le sommaire, de faire un zoom etc. Ça me parait très complet. Grand merci aux concepteurs !

      Par contre, j’ai été surprise quand, en cliquant sur « ouvrir le fichier » je me suis retrouvée dans les fichiers de mon ordinateur ! J’ai pu ouvrir un de mes pdf dans le lecteur sur le site. C’est tout de même un peu surprenant... et ceci, même sans être connecté en tant qu’administrateur.
      C’est normal, docteur ?
      .
      Bon... je n’ai pas vu de moyen de changer le fichier qui était en ligne par l’un des miens, mais je n’ai pas non plus cherché à le faire.

      Merci de votre aide

      Cordialement

    Répondre à ce message

  • Bonjour,
    Après l’ajout récent (décembre 2017) de ce plugin, sur la page d’accueil du site que je gère pour une association, s’affichait <![endif]--> juste avant le résumé éventuel. En remontant la trace, j’ai localisé le problème d’affichage dans les fichiers du plugin, plus précisément dans modeles/lecteurpdf.html. C’est la ligne 25 (la dernière) qui est passée en commentaire (problème de « pinceaux emmêlés » entre les ouvertures et fermetures de balises). J’ai supprimé la ligne qui m’a semblé inutile : solution radicale mais le message parasite ne s’affiche plus sur la page d’accueil.
    Peut-être à corriger sur la version en téléchargement.

    Répondre à ce message

  • 2

    Bonjour,
    Comment obtenir Lecteur pdf javascript pdf.js ?

    Je ne le trouve pas dans la gestion des plugins.

    • Qulle version de SPIP ? trouvez vous d’autres plugins ?

    • Desole pour la fausse alerte. C’etait une mauvaise manipulation de ma part. Je l’ai bien trouve et installe.

    Répondre à ce message

  • 1

    Bonjour,
    quelle est la taille maximale pour afficher correctement un PDF avec PDF.js ? Je suis sn SPIP 3.1.6 (oui je sais ;-) ...), et la dernière version de PDF.js 0.6.3
    Deux fichiers (issus de LivreOffice Impress et convertis en PDF par le logiciel) de 1,4 Mo et 700 Ko ne veulent pas s’afficher.

    Répondre à ce message

  • 5

    Bonjour à tous,

    j’aime bien ce plugin, il correspond à mes attentes mais contrairement à l’image montrée ci-dessus (dans les aperçus), je n’ai pas la petite icone pour mettre le lecteur en « full screen » (l’icône à côté du « download » sur la droite du lecteur.)

    Comment dois je faire pour rajouter l’icone afin de passer mon lecteur en plein écran ?

    • Il semble que cette icône se désactive toute seule quand le lecteur est incrusté dans une iframe. Il faudrait creuser du côté du script pdf.js.

    • merci pour la réponse

    • Excellent plugin, dommage que la fonction plein écran ne soit pas visible. Joseph, tu avais dit plus bas https://contrib.spip.net/Lecteur-pd... que l’icône se désactive toute seule quand le lecteur est incrusté dans un iframe. Ce n’est pas le cas chez moi (le lecteur est appelé par une balise embed comme indiqué), mon site est sous Spipr. j’ai vu le lecteur sur un autre site (sous WordPress) en responsive également, la fonction plein écran apparaît (voir capture ci-dessous).

      Si quelqu’un a une idée, je suis preneur.

    • Peut-être en mettant à jour le plugin avec la dernière version de pdf.js ?

    • La version 0.6.2 publiée ce matin devrait permettre l’ouverture en plein écran, il manquait allowfullscreen sur les appels de iframe pour le permettre

    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