Version imprimable du sujet

Cliquez ici pour voir ce sujet dans son format original

Forums MacBidouille _ Les Langages Du Web _ phpToPDF et mamp

Écrit par : Mayol 11 Aug 2012, 08:59

Bonjour à tous.
J'ai un problème assez "étrange" puisque (apparemment) sur le net, après mes recherches,
tout le monde a le problème contraire du mien.
Je m'explique :
J'utilise MAMP en local et veux générer une page en PDF avec phpToPDF.
Je n'arrive qu'à obtenir un fichier VIDE (0 Ko) qui ne peux évidemment pas être lu. :

CODE
include_once('phpToPDF.php') ;
$le_nom="lenom";
$mon_nom=($le_nom.".pdf");
// Je vais transformer ma page en PDF et l'enregistrer (en local) dans mon_dossier 'dossier_pdfs' :
phptopdf_url('localhost:8888/si/index.php','dossier_pdfs/', $mon_nom);
// J'affiche le lien du PDF enregistré
// pour l'ouvrir afin de le visualiser et/ou l'imprimer :
echo ("<a href='dossier_pdfs/".$mon_nom."'>Download PDF</a>");


Alors que tout se passe à merveille si je fonctionne avec mon site en ligne :
CODE
include_once('phpToPDF.php') ;
$le_nom="lenom";
$mon_nom=($le_nom.".pdf");
// Je vais transformer ma page en PDF et l'enregistrer (en local) dans mon_dossier 'dossier_pdfs' :
phptopdf_url('http://www.monsite.net/si/index.php','dossier_pdfs/', $mon_nom);
// J'affiche le lien du PDF enregistré
// pour l'ouvrir afin de le visualiser et/ou l'imprimer :
echo ("<a href='dossier_pdfs/".$mon_nom."'>Download PDF</a>");

Quelqu'un peut-il venir à mon secours ?
Ce serait génial !!
Merci d'avance.

Écrit par : yponomeute 11 Aug 2012, 09:50

La réponse est dans la FAQ : http://www.phptopdf.com/faq/

Citation
Does it require heavy server resources ?
All the pdf generation is performed on our server. So, it does not consume your resources.


our server ne pourra jamais accéder à http://localhost:8888/si/index.php qui se trouve sur ton ordinateur.

Écrit par : Mayol 11 Aug 2012, 10:11

Merci pour ta réponse rapide.
Mais celà ne fait évidemment pas mon affaire.
Je veux utiliser phpToPDF parce que, bien sûr, pas besoin de s'investir, pour redéfinir mes pages à imprimer, dans un "codage"
soit-disant facile (FPDF ou MPDF54) mais que je trouve assez coton à gérer même si je pars des exemples à notre disposition.
En un mot, je n'y arrive pas.
Donc, dans ce contexte, pas de solution ?
Merci encore.

Écrit par : yponomeute 11 Aug 2012, 11:15

Tu as tcpdf qui est plutôt simple à utiliser et qui transforme ton code html en pdf. Il y a de nombreux exemples en php sur le site.
http://www.tcpdf.org/index.php

Écrit par : Mayol 11 Aug 2012, 12:14

J'y cours voir.
Merci.

Écrit par : Mayol 11 Aug 2012, 20:50

Euh ! Bon, merci mais ...
Ça ne me parait pas plus simple que les autres.
Merci quand même.

Écrit par : Ifmy 12 Aug 2012, 07:35

Tu peux aussi utiliser dyndns par exemple pour conserver phpToPdf

Écrit par : Mayol 12 Aug 2012, 09:05

Ah !
Tu peux m'expliquer un peu en quoi ça consiste ?
Je croyais que c'était pour obtenir une adresse fixe avec une IP dynamique, mais j'ai un IP fixe (Free).
L'adresse de la page de mon site (en local et avec Mamp) que je veux transformer en PDF est " localhost:8888/Projets En Cours/sci/index-print.php ".
Je vais donc donner à http://phptopdf.com la permission de " venir " sur mon ordi, à cette adresse locale ?
Si oui (si j'ai bien compris), comment ?
Rien à voir avec LittleSnitch ?

Écrit par : Ifmy 13 Aug 2012, 21:44

Encore mieux dans ce cas. Plutôt que d'indiquer au serveur de phptopdf : localhost:8888 indique lui ton.ip.fixe:8888

edit : Attention à bien générer les liens en absolu dans le html (avec l'ip et non localhost)

Écrit par : Mayol 14 Aug 2012, 08:39

Merci à tous.
C'est bon.

Écrit par : Mayol 14 Aug 2012, 15:14

Euh, eh bien non, finalement ça ne fonctionne pas.
Que veux-tu dire par :
avec l'ip et non localhost
L'adresse de ma pge est :
http://localhost:8888/Projets%20En%20Cours/sci/f/print_pdf_f4.php
Que dois-je mettre ? à la place de :
phptopdf_url('http://localhost:8888/Projets%20En%20Cours/sci/f/print_pdf_f4.php','dossier_pdfs/', f4.pdf);
Merci encore.

Écrit par : Ifmy 14 Aug 2012, 20:06

Il faut remplacer :

phptopdf_url('http://localhost:8888/Projets%20En%20Cours/sci/f/print_pdf_f4.php','dossier_pdfs/', f4.pdf);

par

phptopdf_url('http://ADRESSEIP:8888/Projets%20En%20Cours/sci/f/print_pdf_f4.php','dossier_pdfs/', f4.pdf);

Écrit par : Jaypee 15 Aug 2012, 07:20

Vous deux, êtes-vous sûr que tout ça était nécessaire ?

- Pourquoi ça marche ? Parce que vous avez simplement placé le fichier .php sur un serveur http, il aurait pu être sur l'Apache du port 80, c'était pareil.

- Ce que j'en comprends : Le php fourni encapsule le client pré-configuré du Service Web. Le service est à une certaine adresse ?wsdl, en lui POSTant une "enveloppe" contenant le source à transformer en PDF, le service répond à l'appeleur par une autre "enveloppe" que le client déballe.

- Le service n'a pas besoin de connaître explictement votre adresse, elle est déjà présente dans la requête HTTP, et n'a besoin d'aucun accès, c'est une réponse HTTP à travers la même soquette TCP que la requête...

Edit: L'exemple fonctionne parfaitement dans l'Apache standard. Note pour ceux qui ont Mountain Lion et qui n'ont pas encore touché à Apache, un coup de plumeau s'impose
- Plus de tableau de bord partage web => Terminal

Code
sudo apachectl restart

- Les config php/http etc sont conservées mais inactives,
* Pour Apache, elles sont dans /etc/apache2/extra
* Pour PHP, configurer le fuseau horaire, après avoir recopié /etc/php.ini.default en php.ini, le rendre modifiable
Code
sudo cp /etc/php.ini.default /etc/php.ini
sudo chmod 644 /etc/php.ini

Et dans php.ini:
Code
;;;;;;;;;;;;;;;;;;;
; Module Settings;
;;;;;;;;;;;;;;;;;;;

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Paris


Donc...
- Copier tcpdf/ dans /Library/WebServer/Documents
- sudo apachectl restart
- http://localhost/tcpdf/examples

Edit2: C'est du total pipeau ! le package est totalement indépendant, j'ai coupé le Wifi, et je peux regarder les exemples sur un autre navigateur (pas de cache client)
J-P

Écrit par : Mayol 15 Aug 2012, 08:54

Merci à vous, je regarde ça (après le week-end, désolé)
A bientôt.

Écrit par : Ifmy 16 Aug 2012, 22:20

Citation (Jaypee @ 15 Aug 2012, 08:20) *
Vous deux, êtes-vous sûr que tout ça était nécessaire ?


biggrin.gif

Mis à part, on ne demande pas l'adresse de quelqu'un si celui-ci nous livre. Note qu'on peut ce passer en partie du service enlèvement à domicile.

"En partie" car pour citer la FAQ

Citation
All the stylesheet / image links should have absolute URL. That means, if you have a stylesheet, at "css/styles.css", you should set path to stylesheet as "http://yoursite.com/css/styles.css".


CQFD

Écrit par : Jaypee 17 Aug 2012, 06:37

Nous ne sommes pas en contradiction...

Je dis que le traitement est complètement indépendant du serveur de tcpdf, et je le prouve en visionnant les 65 démos sans Wifi dans un browser "neuf", donc je ne relis pas un cache construit lors d'une connexion en Wifi. Donc pas besoin de dyndns. Ta comparaison sur l'adresse de livraison me semble incorrecte. Quand j'envoie une requête à MacBidouille pour lire le forum, je reçois la réponse implicitement par "retour à l'envoyeur", pas parce que MacBidouille se connecte sur mon Mac. Tout se passe dans une session.

Toi, tu insistes sur le fait que l'appli A distinct de l'appli B, hébergés sur le même serveur web, ne se connaiisant pas, elles ne peuvent dialoguer que par URL complète.
Pas convaincu, je vais faire un test avec tcpdf et une page web utilisant image et css. La FAQ me semble fantaisiste, une fantaisie de plus ou de moins...

Jean-Pierre



Écrit par : yponomeute 17 Aug 2012, 09:18

Il y a une légère confusion smile.gif

il y a un service en ligne qui permet de générer du pdf mais qui a besoin d'avoir accès à la page web pour cela : http://www.phptopdf.com/ (c'était la question de départ)

et il y a tcpdf qui est une librairie php qui permet de générer du pdf en lui fournissant simplement du code html solution que j'ai proposée et qui tourne bien sur "offline"

Écrit par : Jaypee 17 Aug 2012, 13:08

Merci, je comprends mieux smile.gif

"Toutes mes confuses"

J-P

Écrit par : Mayol 21 Aug 2012, 17:54

C'est tout OK :
phptopdf_url('http://ADRESSEIP:8888/Projets%20En%20Cours/sci/f/print_pdf_f4.php','dossier_pdfs/', f4.pdf);
Merci à tous.
smile.gif

Écrit par : Mayol 22 Aug 2012, 09:15

Bonjour.
Alors là, j'ai un ENORME SOUCI :
D'un seul coup, SANS RIEN CHANGER, depuis la fin d'après-midi d'hier
Cela ne fonctionne plus.
Ni en local, ni en ligne, alors que c'était "nickel-chrome".
Il semblerait que www.phptopdf.com soit fermé.
Apparemment, le "moteur" était là (là que la traduction en pdf se faisait)
Puisque le fichier phpToPDF.php y fait appel.
Donc :
- Soit je trouve l'équivalent :
un moteur en ligne qui me traduise mes pages en pdf comme le faisait phpToPDF
Quelqu'un connait-il la même chose.
- Soit, il existe une autre solution, mais, s'il vous plait, qui en connait une ?
Evidemment, comme je le précisais plus haut, je ne me sens pas capable de démarrer un apprentissage de codage avec FPDF, MPDF54, ftpdf, tcpdf ou autre ...
Merci à tous, d'avance.

Propulsé par Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)