affiche un fichier PDF dans un bloc de la page ou un lien pour le voir ou le télécharger

Cette action utilise principalement la bibliothèque pdf.js de Mozilla

D'autres méthodes sont proposées, mais présentent moins de fonctionnalités et ne sont pas compatibles avec tous les navigateurs

🆙 pdf : Affiche un PDF dans le contenu ou génère un bouton pour l'afficher dans une fenêtre

Cliquer pour lire la documentation

Le fichier PDF peut-être hébergé sur le serveur ou ailleurs (url absolue)
syntaxe {up pdf=chemin du fichier PDF}
integration libraire TurnJs http://turnjs.com/ depuis https://github.com/iberan/pdfjs-flipbook
@author: LOMART @version: UP-1.4 @license: GNU/GPLv3 @credit: Mozilla PDF.js @tags: File
  • pdf: chemin du fichier pdf ou masque si plusieurs (v311)
  • method (methode) = PDFJS: ou Google, Embed ... ou 0
  • maxi: nombre maxi de fichiers affichés. 0 sans limite
  • view = 1: 0 = masque le PDF
  • width (l,largeur,w) = 100%: largeur iframe
  • height (h,hauteur) = 500px: hauteur iframe

Gestion du lien pour télécharger le PDF

  • download = 1: 1 pour afficher lien téléchargement
  • download-name: nom du fichier téléchargé
  • download-text = en=Download %s;fr=Telecharger %s: texte pour lien
  • download-icon: image affichée devant le lien
  • download-class: class(s) pour bouton lien seul
  • download-style: style inline pour bouton lien seul

Gestion bouton pour afficher le PDF

  • btn (bouton): 1 pour afficher un bouton
  • btn-target = _blank: cible : _blank, _parent, popup ou _popup
  • btn-text = voir %s: texte pour bouton
  • btn-icon: image affichée devant le texte du bouton
  • btn-class = btn btn-primary: class(s) pour bouton lien seul
  • btn-style: style inline pour bouton lien seul

Divers

  • close-left: 1=croix de fermeture en haut à gauche. 0=haut-droite par défaut
  • flip: activer le mode flipbook uniquement si PDFJS
  • background: couleur fond perdu du PDF au format #rrggbb
  • zoom: zoom par défaut (100%)
  • pdfjs-model = web: ou mobile (non opérationnel)

Style CSS

  • id: identifiant
  • class: classe(s) pour bloc parent
  • style: style inline pour bloc parent
  • tag = div: balise pour bloc parent - v2.9
  • css-head (base-css): style ajouté dans le HEAD de la page
Version 2.1
ajout option background pour couleur fond perdu du PDF (merci Pascal)
Version 2.9
mode magazine pour method=pdfjs
Version 3.1.1
Affichage de plusieurs fichiers PDF

La méthode la plus simple

{up pdf=files/doc/demo/UP-memo-actions.pdf | background=#336699}

Il suffit d'indiquer le chemin du fichier PDF pour obtenir la vue ci-dessous.

L'action utilise la bibliothèque JavaScript PDF.js de Mozilla. La vue occupe toute la largeur de son bloc parent pour une hauteur de 500px. Au-dessous, un lien permet télécharger le fichier.

v2.1 J'ai ajouté la nouvelle option "background" proposée par Pascal. Elle permet de changer la couleur du fond perdu pour le PDF. La couleur doit être au format hexadécimal RGB.

Choisir la méthode d'affichage

PDFJS

{up pdf=files/doc/demo/UP-memo-actions.pdf 
| method=PDFJS}

GOOGLE

{up pdf=https://up.lomart.fr/files/doc/demo/UP-memo-actions.pdf 
| method=Google}
aucun fichier trouvé pour https://up.lomart.fr/files/doc/demo/UP-memo-actions.pdf

Le fichier PDF doit être accessible d'Internet

EMBED

{up pdf=files/doc/demo/UP-memo-actions.pdf 
| method=Embed}

Ne fonctionne pas sur mobile

Le lien pour téléchargement

Ce lien est disponible si le fichier est hébergé sur le même serveur que le site.

Il est possible de renommer le fichier téléchargé avec le paramètre download-name

 

{up pdf=files/doc/demo/UP-memo-actions.pdf | debug
  | view=0 
  | download-icon=images/img16/pdf.png
  | download-name=lang[en=UP Actions - my memo.pdf;fr=UP - Aide mémoire actions.pdf]
}

view=0 empêche l'affichage du PDF. download-icon est le chemin pour l'icône affichée. download-name permet d'indiquer le nom sous lequel sera téléchargé le fichier PDF. Cette possibilité permet d'avoir un nom "sans espace, ni caractères accentués" pour être "Unix friendly", mais avoir un nom humanisé pour le fichier téléchargé.

Généralisées avec la version 1.4 de UP, les chaînes de texte peuvent être en plusieurs langues. Il suffit d'indiquer le code pays (en, fr, de, it, ..), le signe égal (=), la traduction, un séparateur point-virgule (;)/ Plus d'infos sur cette page : Gestion des traductions

Un bouton pour afficher le PDF

{up pdf=files/doc/demo/UP-memo-actions.pdf | btn }

Le shortcode est minimal. Le paramètre btn demande l'affichage sous forme d'un bouton et exclut de fait l'affichage du PDF et du lien de téléchargement.

Aucune indication pour btn-text, et pourtant le style et le texte du bouton sont différents de ceux par défaut (btn-text=voir %s | btn-class=btn btn-primary) ?

Il s'agit d'une nouveauté introduite avec la version 1.4 de UP. Les préférences des actions sont surchargeables par le concepteur du site. Dans notre cas, le fichier plugins/content/up/actions/pdf/custom/prefs.ini contient les lignes suivantes :

[options]
btn-class = btn btn-success
btn-text="<img src="/"plugins/content/up/actions/file/img32/pdf.png""> Afficher le fichier : %s"

Attention si cela évite la saisie répétitive des mêmes paramètres, cela veut aussi dire que les paramètres par défaut indiqués dans les démonstrations sont à relativiser

Plus d'infos sur cette page : 🆙 fichier custom/prefs.ini

Astuce le texte du bouton devenait bleu après le clic. Plutôt qu'ajouter une règle dans le fichier custom du template, j'ai simplement utilisé l'action addCssHead ci-dessous

{up addcsshead=a.btn-success:visited[color:yellow]}

Ouverture dans une fenêtre modale

Pour éviter que votre visiteur quitte la page, vous pouvez demander l'affichage dans une fenêtre modale avec l'option btn-target=popup

Cette démonstration montre l'utilisation de btn-icon et btn-text pour personnaliser le bouton

{up pdf=files/doc/demo/UP-memo-actions.pdf
| btn | btn-target=popup 
| btn-text=Ouvrir le fichier PDF des actions UP dans une fenêtre modale 
| btn-icon=images/img32/pdf.png
| close-left
}

Notes

Tableau des compatibilités selon serveurs et navigateurs

Méthode Localhost Ordinateur Android iPhone
PDF.js OUI OUI OUI
Google NON OUI OUI ?
Embed OUI OUI NON ?

Download : Uniquement si fichier sur serveur du site

 

Mode magazine

Sur une idée de Pascal Leconte, parcourir un PDF comme un magazine en tournant les pages

La syntaxe :

{up pdf=files/doc/demo/UP-doc-actions.pdf | method=PDFJS  | flip
| btn | btn-target=popup | btn-text=Voir %s en mode magazine}

Pour mémoire, le mode classique :

Afficher plusieurs PDF

Pour la mise à disposition de plannings, j'ai eu besoin d'afficher les 2 derniers fichiers (celui du mois en cours et celui du mois suivant).
Comme il est délicat d'utiliser les dates des fichiers, le tri est fait sur le nom du fichier qui doit être du type AAAA-MM-planning ou planning-AAAA-MM
Pour actualiser les plannings, il suffira de copier les nouveaux plannings dans le sous-dossier prévu.

{up pdf=images/plannings/planning-*.pdf 
  | maxi=2}

A la place du nom complet du fichier, j'utilise un masque qui va me retourner tous les fichiers nommés planning suivi de l'année et du mois.

l'option maxi limite l'affichage aux 2 plus récents (dans l'ordre alphabétique)

Cette action peut être incluse dans une action flexauto pour une présentation en colonnes responsive.

Attention, cette possibilité bloque l'utilisation d'un chemin relatif.

Il faut indiquer le chemin à partir de la racine du site.
Pour un fichier dans le sous-dossier pdf du dossier images, on utilise images/pdf/fichier.pdf ou images/pdf/*.pdf
Les formes  /images/pdf/fichier.pdf ou  ../images/pdf/fichier.pdf ne sont plus reconnues

Notes

Pour les utilisateurs d'aesecure

Si vous avez une erreur 782 à la place du pdf, il faut :

  • éditer votre fichier .htaccess
  • rechercher la ligne avec la mention 782
  • quelques lignes avant, rechercher cette ligne :
    RewriteCond %{QUERY_STRING} !option=com_akeeba&view=backup(.*)$ [NC]
  • ajouter cette ligne au-dessous en remplaçant votresite\.fr par le nom de votre site
    RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?votresite\.fr [NC]
    
Pour info, cette page utilise 21 action(s) :
upactionslist (1) readmore (1) csv2def (1) _scroll-to (1) pdf (9) modal (1) addcsshead (1) csv2table (1) flexauto (1) div (1) jcontent-info (1) tabslide (1) toc (1)