Méthode recommandée pour intégrer un PDF dans un HTML ?

Quelle est la méthode recommandée pour intégrer un PDF dans un HTML ?

  • iFrame ?
  • Objet ?
  • Embed ?

Que dit Adobe lui-même à ce sujet ?

Dans mon cas, le PDF est généré à la volée, il ne peut donc pas être téléchargé vers une solution tierce avant d'être effacé.

Solution

La meilleure approche consiste probablement à utiliser la bibliothèque [PDF.JS][1]. Il s'agit d'un pur moteur de rendu [HTML5][2]/[JavaScript][3] pour les documents PDF, sans plugins tiers.

Démonstration en ligne : http://mozilla.github.com/pdf.js/web/viewer.html

GitHub : https://github.com/mozilla/pdf.js

[1] : http://mozilla.github.com/pdf.js/ [2] : http://en.wikipedia.org/wiki/HTML5 [3] : http://en.wikipedia.org/wiki/JavaScript

Commentaires (17)

[FDView][1] combine [PDF2SWF][2] (qui est lui-même basé sur [xpdf][3]) avec une visionneuse [SWF][4] afin de pouvoir convertir et intégrer des documents PDF à la volée sur votre serveur.

xpdf n'est pas un convertisseur PDF parfait. Si vous avez besoin de meilleurs résultats, [Ghostview][5] est capable de convertir des documents PDF dans d'autres formats pour lesquels vous pourrez plus facilement créer une visionneuse Flash.

Mais pour les documents PDF simples, FDView devrait fonctionner raisonnablement bien.

[1] : http://www.code4net.com/archives/000114.html#114 [2] : http://www.swftools.org/pdf2swf.html [3] : http://www.foolabs.com/xpdf/ [4] : http://en.wikipedia.org/wiki/SWF [5] : http://en.wikipedia.org/wiki/Ghostscript#Front_ends

Commentaires (2)

Pour transmettre le fichier au navigateur, consultez la question de Stack Overflow [How to stream a PDF file as binary to the browser using .NET 2.0][1] - notez qu'à quelques variations près, cela devrait fonctionner, que vous serviez un fichier provenant du système de fichiers ou généré dynamiquement.

Cela dit, l'article MSDN cité en référence adopte une vision plutôt simpliste du monde. Vous pouvez donc lire [Successfully Stream a PDF to browser through HTTPS][2] pour connaître certains des en-têtes que vous devrez peut-être fournir.

Avec cette approche, une iframe est probablement la meilleure solution. Ayez un formulaire web qui diffuse le fichier, puis placez la iframe sur une autre page avec son attribut src défini sur le premier formulaire.

[1] : https://stackoverflow.com/questions/84995/how-to-stream-a-pdf-as-binary-to-the-browser-using-net-20 [2] : http://nilangshah.wordpress.com/2007/05/28/successfully-stream-a-pdf-to-browser-through-https/

Commentaires (1)