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

  • Pour info après changement des bornes

    compatibilite=« [3.0.0 ;3.2.*] »

    RAS

    Répondre à ce message

  • 1

    Bonjour,
    Je note un pb récent (changement d’hébergeur ???) un document ( un pdf, n°614) s’ouvre et s’affiche bien quand on clique dessus mais n’a pas l’air d’exister avec pdf.js
    Le lien où on voit cela : http://internet22.catholique.fr/Creer-et-animer-un-site-paroissial
    le documente est le PDF joint à l’article. J’ai vérifié qu’il n’y avait pas d’erreur de numéro.
    Merci d’avance !

    • Je reviens un peu sur ce sue j’ai dit : le document joint en bas de l’article est le 612. mais le 614 s’ouvre bien dans l’interface privée (mais pas dans pdf.js même en privé).

    Répondre à ce message

  • Bonjour
    je suis sur spip 2.1 et v 0.5.1 du plugin avec le dernier version du Access Restreint
    Sur le site en ligne Message : « Missing PDF
    PDF.js v0.8.1017 (build : 35f5a1e)
    Messaggio : Missing PDF ... »

    Sorry for my francais.
    Any idea ?

    Répondre à ce message

  • 10

    Bonjour Joseph,

    Quel bonheur ce plugin que je découvre et qui fonctionne à merveille. Un petit bijou !
    Oui, je confirme, le plugin ne fonctionne pas avec Accès Restreint mal paramétré (SPIP 3.0.20 et dernières versions des plugins) .
    Dans mon cas, il me faudrait idéalement les 2, du coup, je me retrouve devant un choix Cornélien... Access Restreint ou Lecteur PDF ? Aille aille aille...
    A moins qu’il ne soit te possible d’éliminer cette incompatibilité, auquel cas « Massive respect ! » ;-)

    En tout cas, déjà un grand merci pour ce plugin que je m’en vais de ce pas intégrer à d’autres de mes petits sites !

    • Vous voulez dire pouvoir utiliser le lecteur javascript lorsque l’option Interdire la lecture des documents joints est activée ?

    • Vous avez un site de test avec les deux activés ? Je n’ai pas de configuration test sous la main.

      Qu’est-ce que vous obtenez ?

      Pourriez-vous essayer, dans le fichier pdfjs.html à la racine du plugin de remplacer [(#URL_DOCUMENT|copie_locale)] par [(#URL_DOCUMENT)], lignes 29 et 31 ?

      Est-ce que ca change quelque chose ?

    • Bonsoir Joseph,
      Merci pour ta réponse aussi rapide qu’efficace. Je suis repassé en mode « interdire la lecture » et le PDF se génère correctement.
      Ta solution me semblerait à ajouter à l’avertissement sur la compatibilité avec Access Restreint situé dans le cœur du texte explicatif du plugin...
      Juste pour comprendre, à quoi peut servir d’utiliser une version en Cache d’un PDF ?
      En tout cas, merci, et... massive respect !

    • Bonsoir Joseph,

      Mon message a disparu... oui, j’ai fait comme tu as dit, et ça marche au poil ! bravo, et Massive Respect !
      M’est avis que ce petit hack pourrait être ajouté au paragraphe sur le problème de compatibilité de ce plugin avec Access Restreint...

      Par curiosité je pourrais poser une question sur l’intérêt d’utiliser le Cache pour les PDF ?
      Merci encore !

    • OK merci pour le retour. Je ferai une mise à jour un peu plus tard.

      De mémoire, le filtre copie_locale avait été ajouté car un bug était observé avec les fichiers distants. Du coup il faudrait probablement faire un test sur la balise #DISTANT pour couvrir les deux cas

    • be,olaos

      bonsoir Joseph,

      Oui certainement, même si je ne comprends pas ce que ça implique en terme de développement ;-|
      A mon sens, Accès Restreint est une fonctionnalité suffisamment importante pour que cette incompatibilité soit documentée ; j’insiste d’ailleurs sur le fait d’écrire explicitement dans le tutoriel ta soluc’ car elle fonctionne et n’est pas difficile à implémenter. Et ça répond à une demande de confidentialité qu’on peut chercher à préserver, dans le cadre de certains sites.

      Merci encore pour tes réponses rapides et efficaces, et si je peux t’être utile dans d’autres tests... n’hésite pas.

    • Je viens de mettre à jour le plugin. Merci de tester la version 0.5.1.

      Attention : normalement cela devrait fonctionner avec la toute dernière version de Accès Restreint mais sans garantie, des tests poussés étant nécessaires.

      La documentation a également été mise à jour.

      Cordialement

    • Bonjour Joseph,
      Je viens d’essayer la nouvelle version du plugin (0.5.1), pour ma part ça ne semble pas fonctionner.

    • Le cache a été vidé ?

      Le site est en ligne ? Exemple accessible ?

      Peux tu préciser les détails de ta configuration ?

    • Bonsoir Joseph,
      Finalement, ça fonctionne très bien sur le site en ligne. Par contre, je confirme qu’en local, impossible de le faire fonctionner. Message : « Missing PDF ». Tests réalisés plusieurs fois avec caches vidés, puis activé, puis désactivé... franchement déroutant, mais certainement du à une erreur humaine ;-)
      Massive merci en tout cas, d’avoir répondu et résolu aussi rapidment à ce problème !

    Répondre à ce message

  • Bonjour,
    Ce plugin donne un affichage pour le moins exotique sur un de mes sites : http://www.ayn.fr/spip.php?article485&var_mode=preview
    Pourtant, sur un autre site de configuration identique qui me sert justement à tester les modifications avant de les appliquer sur le « vrai » site, tout va bien : http://territoireetpaysage.free.fr/spip.php?article37

    Et je n’ai pas la moindre idée du bout par lequel prendre la question...
    Une idée ?

    Répondre à ce message

  • Renée Picard

    Je ne suis pas capable de transférer le plugin par FTP voici l’ereeur :
    Le chargement de pdfjs.zip a été annulé, car le fichier contient un virus : Zip.Suspect.MacroDoubleExtension-zippwd FOUND

    Répondre à ce message

  • 1

    Bonjour,
    Le plugin ne marche plus dans la page http://internet22.catholique.fr/Creer-et-animer-un-site-paroissial alors qu’il marche avec le même code dans la page http://fonds-saintyves.fr/Saint-Yves-Enquete-de-canonisation
    Les deux sites sont en SPIP 3.0.20, Sarka-SPIP 3.4.5, plugin PDF.js 0.5.0
    Seul problème que je vois : j’ai utilisé à un moment donné le plugin Accès restreint 3.0 que j’ai désactivé ensuite sur internet22.
    Différence aussi : internet22 est mutualisé avec d(autres sites qui peuvent utiliser Accès Restreint alors que fonds-saintyves est indépendant.
    Est-ce suffisant pour que cela ne marche pas ? Y aurait-il une autre raison ?
    Le message obtenu est le suivant sur internet22 :

    PDF.js v1.1.3 (identifiant de compilation : 05991e9)
    Message : Unexpected server response (403) while retrieving PDF "http://internet22.catholique.fr/sites/internet22.catholique.fr/IMG/pdf/creer_et_gerer_web_paroissial_1411_lecteur.pdf".

    Merci d’avance !

    • You don’t have permission to access /sites/internet22.catholique.fr/IMG/pdf/creer_et_gerer_web_paroissial_1411_lecteur.pdf on this server.

      Tu as dû créer les fichiers .htaccess et .htpassword liés à l’usage avec accès restreint. Il faut les effacer (en ftp dans IMG je crois).

    Répondre à ce message

  • Je viens de mettre à jour la version de la lib dans http://zone.spip.org/trac/spip-zone/changeset/90280

    C’est un gros saut de version, on passe de la version 0.8.1017 à 1.1.3, à priori la dernière version stable d’après ​https://mozilla.github.io/pdf.js/getting_started/#download.

    Je poste ici pour recevoir les mails en cas de problème ;)

    Répondre à ce message

  • 2

    Bonjour,

    Problème avec le plugin depuis ce matin.

    Message d’erreur :

    « PDF.js v0.8.1017 (identifiant de compilation : 35f5a1e)
    Message : Unexpected server response (0) while retrieving PDF »http://adresse.com/IMG/pdf/paris_7941_le_18_05_2015_comite_14.pdf".

    J’ai la même chose sous Mozilla ou Explorer et j’ai aussi la même chose avec l’adresse citée plus haut (http://imagesetpeche.free.fr/?Affiche-les-PDF-directement)

    Que faire ? D’où ça vient ?

    Merci

    Robert

    • merci d’éviter d’utiliser l’adresse xxx.com lorsque tu veux parler d’une url de démo. Ladite adresse pointe en effet sur un site pornographique, ce qui n’est pas vraiment le but de ton message.

      A priori, comme cela, je dirai qu’il faudrait vérifier si le PDF est encore dans le dossier IMG. On dirait que le JS n’arrive pas à le retrouver. Mais sans la vraie adresse du problème, difficile de répondre.

    • Pardon pour les « xxx » !

      J’ai trouvé. C’est Internet Download manager qui court-circuitait l’affichage de pdfjs. J’ai réglé dans IDM et tout marche.

      Merci.

      Robert

    Répondre à ce message

  • Taille d’affichage ?

    Comment se fait-il que lorsque je tente de régler hauteur et largeur pour que la page apparaisse en entier, ce réglage me donne des affichages différents et presque jamais satisfaisants (début de la page suivante, par exemple ou page tronquée...).

    merci

    Robert Caron

    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