Lire un fichier pdf

Salut,

j’ai créé un bouton et je veux bien que son role soit d’ouvrir un
fichier pdf déjà existant…
J’ai cherché dans le net et j’ai essayé pdf-reader…

J’ai créé un bouton qui exécute l’action lirepdf ci-dessous:

require ‘rubygems’
require ‘pdf/reader’

def lirepdf
receiver = PDF::Reader::RegisterReceiver.new
docPdf = PDF::Reader.file(“app/reports/output/rapport_final.pdf”,
receiver)
end

et j’ai créé une vue lirepdf

En cliquant sur le bouton, ça pointe sur la vue lirepdf déjà vide…
Donc j’ai pas pu ni lire ni ouvrir mon fichier pdf… qqun a une idée?

Merci d’avance

Je ne suis pas sur de bien comprendre, mais si tu veux que ton
utilisateur lise un pdf qui se trouve sur le serveur un link_to avec
le chemin vers ce pdf marche et le navigateur automatiquement te
propose de l’ouvrir ou de l’enregistrer, du style

<%= link_to(“Lire”,"/documents/fichier.pd") %>
Le répertoire document dans cet exemple se trouve dans le répertoire
public.

Après pour uploader des fichiers tu as des plugins style paperclip ou
attahcment_fu

Nicolas

Oui pour uploader des fichiers tu as un plugin : paperclip

Et aussi il y a une usine à gaz illisible qui sait parler avec amazon S3
:
attachment_fu

Michel B.

2009/6/25 Tranquiliste [email protected]

@tranquiliste: merci pour ce coup de main

Mais je cherche à appuyer sur un bouton qui permet d’exécuter une
action dont cette dernière a pour role de visualiser le fichier pdf…

Cad

bouton présent dans la vue (appuyé)----> exécute une action dans le
controlleur --> cet action a pour role de faire visualiser le fichier
pdf

Merci d’avance :slight_smile:

Ok. Apparemment, le terme “visualiser” a pour toi un sens bien
spécifique.
Là on avait cru comprendre : “laisser la navigateur du client récupérer
le
document pdf et en faire ce qu’il veut, le sauvegarder ou le donner Ã
manger
à un programme de visualisation du client”, parce que je doute que le
but ce
soit de lancer sur ton serveur un programme qui affichera sur l’écran du
serveur situé loin de la machine client une vue du document pdf. En
gros, il
n’y a qu’un moyen pour le client de “visualiser” un fichier du serveur :
le
lui fournir. Maintenant, on peut le servir de plusieurs façons.

  1. activer un module (en flash, en applet java, etc.) permettant de
    visualiser le PDF à même la fenêtre du navigateur, et lui faire
    passer ledit
    pdf (au final, on va toujours en revenir là )
  2. envoyer via une action d’un contrôleur le document de façon Ã
    activer
    un module de protection, ou de comptage des téléchargements, etc
  3. juste envoyer le pdf au client comme expliqué précédemment et le
    laisser se débrouiller avec

Solutions :

  1. ça nécessite d’avoir un plugin / applet / flash adapté, d’avoir un
    moyen de lui faire passer le fichier pdf (en général de la même façon
    qu’au
    navigateur client), perso je ne sais pas faire (et si je tombe sur un
    site
    web qui fait ça je vais chercher ailleurs les informations, j’ai un
    très bon
    programme pour visualiser les PDFs sur ma machine, merci beaucoup
    gardez
    votre flash que je ne saurais voir)
  2. dans le contrôleur :

ton code de vérification, logging, etc…

render :file => ‘/sur/ton/serveur/chemin/vers/le/fichier.pdf’
3. dans la vue :
<%= link_to ‘mon petit pdf’,
‘/depuis/le/repertoire/public/chemin/vers/le/fichier.pdf’ %>

Si tu voulais autre chose, précise…

Michel B.

2009/6/25 Zied [email protected]

Le 25 juin 2009 09:38, Zied [email protected] a écrit :

pdf
Zied,

Si tu ne souhaites pas que l’ouverture du PDF soit gérée par le
navigateur
(comme proposé par Tranquiliste) tu peux utiliser un widget type Smart
Look
de Issuu http://issuu.com/smartlook
Je n’ai pas testé mais si j’ai bien compris il s’agit d’une sorte de
visionneuse on line de PDF.

Florent

c fait

il faut tt simplement utiliser la method “send_file” dans le
controlleur

send_file(‘app/reports/output/rapport_final.pdf’, :type =>
‘application/pdf’, :disposition => ‘inline’)

:slight_smile: