Zied
June 25, 2009, 12:15pm
1
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
Zied
June 25, 2009, 2:06pm
2
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
Zied
June 25, 2009, 2:34pm
3
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]
Zied
June 25, 2009, 4:39pm
4
@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
Zied
June 25, 2009, 5:19pm
5
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.
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à )
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
juste envoyer le pdf au client comme expliqué précédemment et le
laisser se débrouiller avec
Solutions :
ç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)
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]
Zied
June 25, 2009, 5:20pm
6
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
Zied
June 25, 2009, 5:20pm
7
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’)