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
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');
Discussions par date d’activité
62 discussions
J’ai fait une liste d’améliorations possibles :
http://zone.spip.org/trac/spip-zone/browser/_plugins_/pdfjs/TODO.txt
Je suis prêt à travailler dessus, mais je veux bien un avis avant de commencer.
Bonjour,
le mieux serait d’en discuter sur la liste SPIP-Zone. Dans tous les cas, il faudrait prévoir une branche de dev pour tester tout cela. Créer trunk/branches. Copier la version actuelle en branche et faire pointer le zip dessus. Faire mumuse dans le trunk avec une version 1.
Pour l’installation dans lib/, le souci est de disposer des versions compilées des différents éléments, qui ne sont pas fournies par défaut dans le ZIP de github. Par ailleurs, ce ZIP contient bp de fichiers inutiles qui du coup ne sont actuellement pas embarqués dans le plugin. Enfin, le lecteur, fichier pdfjs.html, à la racine du plugin, doit être mis à jour en fonction de la version de la lib, sachant qu’il y a une petite adaptation à faire. C’est pourquoi aujourd’hui la solution d’une lib n’a pas été retenue, car il faudrait générer un ZIP spécifique => c’est aussi simple de tout embarquer.
A voir de toute façon en faisant.
Gogogo
OK je crée la branche, et je continue sur la liste spip_zone
Répondre à ce message
Bonjour,
J’utilise les plugins pdf.js 0.2.2 et Modèles media 1.1.0, j’arrive à inserrer et lire un fichier pdf de moins de 100ko, mais dès que ça fait 6 à 10 pages ou environ 300 à 500ko, j’ai tous les caractères qui ne s’affichent pas correctement !!
Si quelqu’un aurait déjà rencontré ce soucis, ou saurait m’aider !!
Je vous remercie d’avance...
PS : Je joins une image de ce que ça me donne...
La librairie PDF.js a parfois du mal avec certains PDF mal encodés.
En premier lieu, essayez d’ouvrir votre PDF problématique avec la démo de la dernière version en ligne : http://mozilla.github.io/pdf.js/web/viewer.html
Cliquez sur l’icône ’répertoire avec flèche vers le haut’ pour charger un fichier de votre PC. Est-ce que le même PDF est bien lu ?
Bonjour et merci de la reponse,
Mais oui en utilisant la demo, mon fichier s’ouvre correctement... :(
Cela peut suggérer qu’il y a eu des corrections de bugs dans la librairie. Il faudrait mettre à jour la version de PDF.js inclue dans le plugin et tester si cela résoud ton problème.
Je le ferai dès que possible (désolé mais pas le temps cette semaine).
D’accord pas de soucis j’attends alors ta version de PDF.js mise à jour !!
D’ici là je vais voir aussi de mon coté si je peux apporter quelque chose..
Merci
Je viens de mettre à jour le plugin avec la dernière version de PDF.js.
Il s’agit du numéro de version 0.2.3 pour le plugin. Est-ce que cela résoud le problème avec le PDF incriminé ?
Je viens de télécharger la dernière version, pour le cas de mes pdf incriminé, je les repassais une fois sur pdfcreator pour recréer un nouveau fichier pdf et ça marchait.
Merci encore une fois pour ce plugin très pratique !
Là je vais avoir des soucis de navigateur car l’entreprise ne veut pas se débarrasser de son IE8, pour l’instant je regarde si je peux avoir d’autres alternatives en modifiant un peu le code sur le plugin pour qu’il affiche le contenu avec IE8...
IE 8 n’arrive pas à faire fonctionner le lexteur PDF.js ?? (je n’en ai pas de version pour tester).
Il semble que ça fonctionne avec IE10 (pour IE9 aucune idéee).
Une option serait peut être de rajouter des commentaires conditionnels dans le modèle. Pour IE<10, on place dans l’iframe directement le PDF, sinon on inseère dans l’iframe le lecteur PDF.js
Cela résoudrait-il une partie du problème ?
Oui IE8 n’arrive pas à faire fonctionner le lecteur PDF.js :(
Depuis hier je suis sur les modifications, mais je n’arrive toujours pas ! J’ai essayé de voir vos suggestions sur l’iframe, mais je ne sais pas sur quel fichier exactement il faut toucher à cet iframe(lecteurpdf.hmtl ou media_pdfjs.html ?)
merci encore
En fait il faudrait modifier les deux avec des commentaires conditionnels (http://www.alsacreations.com/astuce/lire/48-commentaires-conditionnels.html). Je peux m’en charger ce week end. Il faudrait juste vérifier avant comment se comporte IE si dans l’iframe on renvoie directement le lien vers le PDF (au lieu du lien vers le viewer). Si tu as l’occasion de tester cela.
Au fait une solution qui marche avec IE mais au détriment d’un recours Google (et donc tout ce qui suit en terme de collecte de données) : Plugin Google Viewer
Re bonjour,
Au fait j’ai essayé tous ces astuces, mais il n’y a aucune qui marche, le plugin Google Viewer ne pourrait pas fonctionner chez moi car je développe un intranet, donc pas accès à internet :(
Pour les commentaires conditionnels, je ne suis pas pro, mais je les ai rajouté selon différentes façons(avant et après l’iframe par exemple), mais ça ne fonctionne pas !! si t’avais eu le temps de voir quelque chose...
merci encore
Correction effectuée avec un peu de retard. Les commentaires conditionnels sont implémentés dans la version 0.3.0
Cordialement
Répondre à ce message
Bonjour
Très bonne extension pour Firefox et merci de vous en occuper.
Je rencontré un petit problème, et impossible de trouver la solution.
J’ai coché la case « retenir » quand j’ai refusé qu’un PDF se lise en mode présentation et depuis, impossible de modifier mon choix et donc je n’ai plus de mode présentation.
Je ne sais pas où aller pour réinitialiser le lecteur pdf.js
Merci
Répondre à ce message
Bonjour
Excellent plugin merci beaucoup
Je l’ai mis en place sur un site à largeur fluide qui affiche mon pdf à 80% de la largeur.
Quand un visiteur reduit sa page en largeur, dans la toolbar, ce sont les boutons « recherche » et les « fulscreen, print etc.. » qui disparaissent en premier, J’aimerais que la recherche s’affiche toujours quelque soit la largeur et que ce soit les boutons next/previous page qui disparaissent (bouton moins utiles car le scroll fonctionne).
Est-ce possible ?
spip 3.0.10
merci
A priori, il vous faut surcharger le fichier lib/pdfjs/web/viewer.css Attention : peut-être vous faudra-t-il refaire votre surcharge lors d’une mise à jour du plugin.
Répondre à ce message
Bonjour,
Je reviens vers vous pour deux petites questions.
Je syndique des site, en article complet.
Or les fichiers pdf sur le site original, intègre mon site au format « Binary Data »
Est-il alors possible de :
1) les faire convertir en pdf automatiquement,
2) encore mieux, d’appliquer une extension du type de la balise lecteurpdfXX ?
Sinon, pour les fainéant, une option "mettre tous les pdf en lecteur pdf automatique est-elle envisageable ?
Merci !
Nico
J’avoue ne pas comprendre la question. Moyen d’être plus précis ?
Répondre à ce message
Bonjour et merci de ce plugin.
Pour moi (Spip 2.1.19), pdfjs marche impec sur google chrome et IE mais pas sur Firefox (20).. J’ai en effet le message suivant :
Fatal error : Call to undefined function lang_dir() in /.../.../www/ecrire/inc/filtres.php on line 1954
cette ligne correspond à : $voulue = lang_dir() ;
dans la fonction : function direction_css ($css, $voulue=’’)
Auriez-vous une idée pour m’aider ou m’orienter ?
Merci.
Bonjour,
il est difficile de pouvoir répondre sans plus de détails ou un lien de test. L’erreur soulevée concerne une fonction du core concernant les fichiers CSS.
En premier lieu, je vous conseille de mettre à jour SPIP en 2.1.21 et de vider le cache.
Cordialement
Répondre à ce message
Bonjour,
je pense que ce script est incompatible avec http://contrib.spip.net/Galleria-fr , voilà ce que me renvoi le cadre du pdf :
Fatal error : Call to undefined function : url_absolue() in /mnt/113/sdb/d/5/mon.site/plugins/galleria/head.php on line 17
la ligne 17 c’est l’appel du javascript (galleria-1.2.5.min.js)
bizarrement quand je vide le cache, le pdf apparait mais quand j’y retourne plus tard rebelote ...
Bonjour,
d’après votre message d’erreur, il y a un problème PHP dans Gelleria. A indiquer du côté de ce plugin.
Bien cordialement
Répondre à ce message
Bonjour,
Certains textes (notamment les titres) ne sont pas affichés correctement avec le lecteur, alors qu’ils le sont en local.
Qu’est-ce qui pourrait provoquer ce problème ?
Le problème se rencontre-il avec http://mozilla.github.com/pdf.js/web/viewer.html ?
Merci de préciser la version du plugin utilisé
La version du plugin est 0.2.0 SVN [66806].
Le problème n’est pas présent si le fichier est chargé depuis l’url http://mozilla.github.com/pdf.js/web/viewer.html
Faut-il mettre un élément à jour ?
Merci
Je n’avais pas vu qu’il y avait une nouvelle version 0.2.2, la mise à jour corrige le problème.
Désolé pour le bruit.
Répondre à ce message
BONJOUR
savez vous comment faire pour ouvrir les documents en PDF et non plus en JS VIEW ??? MERCI
Bonjour, je ne comprends pas bien votre question.
Pour afficher directement le PDF, vous pouvez utiliser les modèles par défaut de SPIP.
Et rien ne vous interdit d’utiliser les deux modèles sur la même page. Exemple : http://www.ceped.org/?La-sante-mentale-un-probleme
Répondre à ce message
Bonjour,
Tout d’abord merci pour ce plugin.
Cependant si le cadre s’affiche, je n’arrive encore à l’utiliser.
J’ai trois petites questions :
1) Est-il possible d’utiliser ce plugin pour un pdf stocké sur un autre site (à savoir sans télécharger le document sur le site).
2) Peut-on utiliser via CKeditor ?
Dans « Options de conversion » > ’Balises SPIP à autoriser dans CKEditor" (là où figure : docXX ;embXX ;imgXX), il m’est impossible de rajouter « lecteurpdfXX »
3) Par hasard, est-il possible dans une seule liseuse de mettre les 3 ou 4 docs pdf qui figurent sur l’article ?
Un grand merci,
Nico
Le viewer fourni par défaut dans le plugin (http://zone.spip.org/trac/spip-zone/browser/_plugins_/pdfjs/pdfjs.html) nécessite que le document soit installé dans SPIP et s’il s’agit d’un fichier distant, une copie locale est effectuée (via le filtre |copie_locale).
Vous pouvez installé votre propre viewer ou adapté celui fourni en vous basant sur http://mozilla.github.com/pdf.js/web/viewer.html
Je suis incapable de répondre à cette question. Il faudrait la poser dans les forums de discussion de CKeditor.
Le viewer fournit ne le permet pas. Il est basé sur celui du projet (http://mozilla.github.com/pdf.js/web/viewer.html). C’est peut-être possible moyennant du développement : création d’une interface permettant de choisir dans une liste de documents et ajout du javascript nécessaire.
Merci pour ces réponses !
2)Bon finalement après un petit vidage de cache la balise « lecteurpdfXX » fonctionne pour ckeditor.
Dernière petite question : est-il possible de centrer le doc. pdf au sein de la page de l’article ?
La balise <lecteurpdfXX|center>n’a pas l’air efficiente(?)
et encore merci pour ce plugin !
Devrait être réglé par la version 0.2.2 du plugin
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 :
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.
Suivre les commentaires : |