Rechercher : dans
Par :

PHP-HTML -> PDF

Dernière réponse le 2 nov 2009 à 22:40:51 NiKo, le 2 mai 2001 à 13:03:41 
 Signaler ce message aux modérateurs

Je recherche comment faire pour pouvoir créer un fichier .pdf à partit d'un site en html/PHP.
Est-ce que c'est possible? Comment faire?

Meilleures réponses pour « PHP HTML > PDF » dans :
[PHP] Upload de fichiers VoirLe langage PHP permet de gérer des fichiers envoyés (uploadés) grâce à un formulaire HTML. Formulaire d'envoi de fichiers Configuration de PHP pour permettre l'upload Récupération du fichier avec PHP Formulaire d'envoi de fichiers La...
Publier un fichier PDF sur son site VoirSommaire: Publier un PDF sur son site Conseils Afficher un PDF intégré à une page Téléchargement Convertir un PDF en SWF (Flash) Publier le SWF Astuces et conseils Publier un PDF sur son site Publier un fichier PDF en ligne est en...
Caractères spéciaux HTML VoirCodage des caractères spéciaux Le standard HTML demande de respecter le codage des caractères ASCII 7 bits, c'est-à-dire que les caractères accentués ne sont pas autorisés. Il faut pour cela utiliser un codage particulier. Pour...

1

Seb, le 2 mai 2001 à 13:35:39
  • +2

Salut,

Tout dépend de ce que tu veux faire en fait. Si tu veux simplement afficher les pages Web au format PDF, c'est possible. En effet, nous parlons sur ce forum, depuis quelques jours, d'une manière de convertir n'importe quel fichier au format PDF, dès lors que l'application d'origine permette d'imprimer. Or, un navigateur permet d'imprimer les pages Web. Tu peux trouver cet excellent document (ça marche ! j'ai testé !!) à l'adresse suivante :

http://sebsauvage.net/pdf

Par contre, si tu veux prendre en compte la gestion des bases de données prises en charge par le Php, c'est, à mon avis impossible. En effet, ces pages (Php, ASP, Cold Fusion...) sont dites dynamiques car elles dépendent directement de certaines données extraites ou ajoutées à des bases de données liées. Or, sur un document PDF, tu ne peux afficher que des pages Web dites statiques.

Voilà ce que je peux te dire à ce sujet.

@+

Seb

Répondre à Seb

2

kony, le 2 mai 2001 à 13:42:17

Merci !
Je me doutais un peu que ce serai la merde mais je ne savais pas que c'était impossible !

Répondre à kony

3

Seb, le 2 mai 2001 à 13:52:41

Resalut !

De rien ! Mais attention ! Je n'ai pas la science infuse non plus !! Peut-être que d'autres auront une solution à ton problème mais franchement, je ne pense pas que cela soit possible !

@+

Seb

Répondre à Seb

4

Nephiston, le 10 nov 2003 à 11:44:47

Utilises le logiciel "HTMLdoc", qui permet de transformer dynamiquement un fichier HTML/PHP/... en un fichier PDF.
Par php, tu peux appeler l'exécutable de HTMLdoc en ligne de commande via la fonction "passthru()", et choisir d'afficher le PDF a l'ecran (dans le navigateur), ou de le stocker sur le serveur.

@++

Répondre à Nephiston

6

sam, le 30 déc 2003 à 16:39:38

Salut g téléchargé HTMLdoc et g voulu le tester avec ce bout de code:


include "../HTMLDOC/html.inc.php4";// Globals...

header("Content-Type: application/pdf");
flush();
$url = "exemple.htm";
$file_name = "http://".$_SERVER['HTTP_HOST']."".dirname($_SERVER['PHP_SELF'])."/".$url."\n";
$commandline= "htmldoc -t pdf --quiet --jpeg --webpage '' '$file_name'";
passthru($commandline);




mais ça ne fait rien!!! le fichier pdf n'est pas généré, si tu peus m'aider ça serait cool ça fait un bout de temps que je suis dessus, merci.

Répondre à sam

8

khaled, le 27 fév 2007 à 00:13:20

Salut
est ce que vous avez une solution sur le probleme de convertir un fichier html en pdf avec php ? si qqun a une solution je suis preneur

Répondre à khaled

25

DIP, le 1 oct 2008 à 06:04:47
  • +1

Salut Khaled,
J'arrive sans doute trop tard, mais la solution, c'est dompdf (http://www.digitaljunkies.ca/dompdf/ )
Il y a des exemples et ça marche nickel.
Après avoir installé le dossier "dompdf" à la racine de ton site, tu changes le mode des dossiers (777) et tu appelles la page php à afficher en lui passant les paramètres nécessaires:
<a href="/dompdf/dompdf.php?base_path=%2Fdata%2F.home%2Fwww%2Fnom_de_ton_site.com2Fwww%2F&orientation=portrait&output_file=<?php echo $nom_de_la_page.".pdf"?>&input_file=%2Fdata%2F.home%2Fwww%2Fnom_de_ton_site.com/www%2Fnom_de_la_page_a_transformer.php&variable_a_passer=<?php echo $variable ?>" target="_blank" class="actions">Imprimer la page</a>
Et bingo.
Bonne chance

Répondre à DIP

26

houba_houbi, le 21 oct 2009 à 11:50:02

Bonjour,
Je me permets de répondre à ce post ancien... car aujourd'hui j'essaies d'installer dompdf, mais je n'y arrive pas et je ne trouve pas de tuto en français. Et si vous pouviez m'aider, ce serait sympa !

Voilà ce que j'ai fait :
j'ai installer le dossier dompdf sur la racine de mon site (plus exactement dans un sous dossier, pour tests). L'url de mon site est donc du type : http://test.mondomaine.fr/monsousdossier/index.php
J'ai mis tous les droits sur ce dossier.

Et après j'ai mis votre lien, mais je ne comprends pas ce que sont les %2F et donc ce qu'il faut modifier, et où sont paramétrés les variables $nom_de_la_page, $nom_de_la_page_a_transformer et $variable...
<a href="dompdf/dompdf.php?base_path=%2Fdata%2F.home%2Fwww%2Fnom_de_ton_site.com2Fwww%2F&orientation=portrait&output_file=<?php echo $nom_de_la_page.".pdf"?>&input_file=%2Fdata%2F.home%2Fwww%2Fnom_de_ton_site.com/www%2Fnom_de_la_page_a_transformer.php&variable_a_passer=<?php echo $variable ?>" target="_blank" class="actions">Imprimer la page</a>

Merci d'avance, si vous pouvez m'aider ...

Répondre à houba_houbi

27

DIP, le 21 oct 2009 à 14:46:05

Salut houba_houbi,
Je vais essayer ...!
Dernièrement, j'ai eu des problèmes pour retrouver le chemin vers la racine d'un site. Finalement, j'ai trouvé ceci :
<?php
$Separator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN")) ? "\\" : "/";
// pour retrouver le chemin vers la racine
$DirectoryPath = dirname(__FILE__) . "{$Separator}";
//echo "DirectoryPath : ".$DirectoryPath."<br>"; //si tu enlèves le commentaire, tu connaîtras le chemin
?>

<!--lien pour transformer la page-->

<a href="./dompdf/dompdf.php?base_path=%2Fdata%2F.home%2Fwww%2FNomDeTonSite.com%2Fwww%2F&orientation=landscape&output_file=calendrier.pdf&input_file=<?php echo $DirectoryPath ; ?>NomDeLaPageATransformer.php" target="_blank" class="actions">Cliquer ici pour imprimer la page</a>

Tentative d'explication ;-)
1) ./dompdf/dompdf.php : chemin vers le fichier dompdf.php qui va faire le boulôt.
2) %2F représente le signe '/' encodé
3) orientation=landscape : tu peux choisir l'orientation de ton document pdf. 2 possibilités : paysage ('landscape') ou portrait ('portrait')
4) output_file=calendrier.pdf : c'est le nom que tu veux donner au document pdf que tu veux créer à l'aide de dompdf (ici, j'ai choisi le nom "calendrier.pdf")
5) input_file=<?php echo $DirectoryPath ; ?>NomDeLaPageATransformer.php : c'est le chemin vers le document que tu veux transformer en pdf. <?php echo $DirectoryPath ; ?> est la variable trouvée ci-dessus suivie du nom de la page. (Cette dernière peut être une page .html ou .php par exemple.)
Si tu ne t'en sors pas, tu peux m'envoyer ton code et je verrai ce que je peux faire.
@+
DIP

Répondre à DIP

28

DIP, le 21 oct 2009 à 14:58:03

J'oubliais,
Si la page que tu veux transformer est un document php et que tu as besoin de lui transmettre un variable, tu vas ajouter : &variable_a_passer=<?php echo $variable ?> ($variable ayant été définie précédemment)
Ce qui va donner:
<a href="./dompdf/dompdf.php?base_path=%2Fdata%2F.home%2Fwww%2FNomDeTonSite.com%2Fwww%2F&orientation=landscape&output_file=calendrier.pdf&input_file=<?php echo $DirectoryPath ; ?>NomDeLaPageATransformer.php&variable_a_passer=<?php echo $variable ?> " target="_blank" class="actions">Cliquer ici pour imprimer la page</a>
OK?

Répondre à DIP

29

houba_houbi, le 21 oct 2009 à 16:58:10

Super merci pour cette réponse rapide DIP, cela m'éclaire un peu plus. Je vais essayé...

En revanche, la variable $variable, tu l'as définies où ?
Et si ma page est une page .php avec un rewrite l'a transformant en .html, je prends l'option .html ?

Merci

Répondre à houba_houbi

30

DIP, le 21 oct 2009 à 18:54:45

Admettons que tu veuilles imprimer une recette de cuisine dont les éléments figurent dans la table t_recettes.
Dans cette table, tu as défini les champs suivants:
rec_id (l'id de la recette)
rec_titre (le titre de la recette)
rec_ingredients
rec_recette
et rec_photo, etc.

Petit exemple: on commence par la récupération du chemin vers la racine du site:

<?php
$Separator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN")) ? "\\" : "/";
// pour retrouver le chemin vers la racine
$DirectoryPath = dirname(__FILE__) . "{$Separator}";
//echo "DirectoryPath : ".$DirectoryPath."<br>"; //si tu enlèves le commentaire, tu connaîtras le chemin
?>


Tu récupères les informations des différentes recettes :

$select_REC=mysql_query("SELECT * FROM t_recettes ORDER BY rec_titre");
$ii=0;
while($result_REC = mysql_fetch_array($select_REC)){
echo $result_REC["rec_titre"] ;
// et maintenant le lien pour l'impression
?>
<a href="./dompdf/dompdf.php?base_path=%2Fdata%2F.home%2Fwww%2FNomDeTonSite.com%2Fwww%2F&orientation=landscape&output_file=recette_de_=<?php echo $result_REC["rec_titre"] ; ?>.pdf&input_file=<?php echo $DirectoryPath ; ?>impression_recette.php&rec_id=<?php echo $result_REC["rec_id"] ; ?> " target="_blank" class="actions">Cliquer ici pour imprimer la recette</a>

<?php
$ii++;
}
Dans la page impression_recette.php, tu récupère l'id:
<?php
// récupération de l'id
if (isset($_GET["rec_id"]))
$rec_id=$_GET["rec_id"];
else
$rec_id="0";
// tu récupère les infos de la recette
$select_REC_A_IMPRIMER=mysql_query("SELECT * FROM t_recettes WHERE rec_id=' ".$rec_id." ' ");
$result_REC_A_IMPRIMER = mysql_fetch_array($select_REC_A_IMPRIMER));
?>
et ensuite tu composes ta page d'impression selon tes désirs.
<table>
<tr>
<td>Titre : php echo $result_REC_A_IMPRIMER["rec_titre"] ; ?></td>
</tr>
<tr>
<td>Ingrédients : php echo $result_REC_A_IMPRIMER["rec_ingredients"] ; ?></td>
</tr>
<tr>
<td>Recette: php echo $result_REC_A_IMPRIMER["rec_recette"] ; ?></td>
</tr>
</table>
Attention : j'ai constaté que dompdf est très sensible à la correction du code html, ce qui m'a causé qq problèmes. Alors au début fait du basic avec un petit tableau simple avant de compliquer.

Répondre à DIP

31

houba_houbi, le 22 oct 2009 à 18:29:42

Merci DIP pour toutes ces explications.
Mais je n'ai pas de base de données...
j'ai une simple page html, sur laquelle je souhaite avoir un lien "pdf" qui ouvre le fichier pdf de cette page html... et je n'y arrive pas

Répondre à houba_houbi

32

dipi, le 22 oct 2009 à 21:05:19

Ce qui simplifie donc les choses ...
Dans ce cas, tu auras ta page d'appel:
mesRecettes.php
dans laquelle tu colles:
<?php
$Separator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN")) ? "\\" : "/";
// pour retrouver le chemin vers la racine
$DirectoryPath = dirname(__FILE__) . "{$Separator}";
//echo "DirectoryPath : ".$DirectoryPath."<br>"; //si tu enlèves le commentaire, tu connaîtras le chemin
?>
afin de connaître le chemin vers le dossier racine
et ensuite tu tape:
<a href="./dompdf/dompdf.php?base_path=%2Fdata%2F.home%2Fwww%2FNomDeTonSite.com%2Fwww%2F&orientation=landscape&output_file=recette_de_gateau.pdf&input_file=<?php echo $DirectoryPath ; ?>impression_recette_de_gateau.html" target="_blank" class="actions">Cliquer ici pour imprimer la recette</a>

la page impression_recette_de_gateau.html étant la page que tu as préparée et que tu souhaites tranformer en pdf.
(Mais bon, dans ce cas, tu pourrais aussi faire la page en Word et la transformer directement en pdf ...)

Répondre à dipi

33

houba_houbi, le 23 oct 2009 à 09:14:45

Bonjour,
Non désolée cela ne marche pas non plus : cela m'ouvre une page "internal server error 500".

Répondre à houba_houbi

34

dipi, le 23 oct 2009 à 13:19:16

Peux-tu m'envoyer un email et me donner le lien vers ta page? Je vais voir si je peux t'aider de manière plus concrète ;-)
A+

Répondre à dipi

35

houba_houbi, le 24 oct 2009 à 13:18:03

Bonjour Dipi,
A force d'insister, j'ai fini par obtenir l'ouverture d'un pdf avec un logo www.pdflib.com en travers !!! Chouette !
Le hic, c'est qu'il me manque la feuille de styles... et mes images..., comment spécifier où aller chercher ces éléments ?
Voici ce que j'ai mis :
<?php //tests dompdf
$fichier = $_SERVER['REQUEST_URI'] ;
$basesite = 'xxxxhttp://www.urldemonsitexxx';
?>
<a href="dompdf/dompdf.php?base_path=<?php echo $basesite; ?>&orientation=landscape&output_file=test.pdf&input_file=<?php echo $basesite.$fichier; ?>" target="_blank" class="actions">!PDF!</a>

Merci si tu peux encore m'aider sur ce coup là!!!

Répondre à houba_houbi

36

dipi, le 24 oct 2009 à 19:33:01

Salut,
Essaie avec:

<?php
$chemin="/data/.home/www/monSite.com/www/"; // ou le chemin vers la racine
?>

Puis
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="imagetoolbar" content="no" />
<title>Imprimer en PDF </title>
<link rel="SHORTCUT ICON" type="image/x-icon" href="tournesol.ico">
<link href="<?php echo $chemin ; ?>/feuille_de_style.css" rel="stylesheet" type="text/css">
etc.
A+

Répondre à dipi

5

sam, le 30 déc 2003 à 16:06:11

Salut g téléchargé HTMLdoc et g voulu le tester avec ce bout de code:


include "../HTMLDOC/html.inc.php4";// Globals...

header("Content-Type: application/pdf");
flush();
$url = "exemple.htm";
$file_name = "http://".$_SERVER['HTTP_HOST']."".dirname($_SERVER['PHP_SELF'])."/".$url."\n";
$commandline= "htmldoc -t pdf --quiet --jpeg --webpage '' '$file_name'";
passthru($commandline);




mais ça ne fait rien!!! le fichier pdf n'est pas généré, si tu peus m'aider ça serait cool ça fait un bout de temps que je suis dessus, merci.

Répondre à sam

7

younalive, le 14 fév 2007 à 11:19:52

Salut
est ce que vous avez une solution sur le porbleme de convertir un fichier html en pdf avec php merci si vous peuvez m'aider

Répondre à younalive

9

jc, le 22 mar 2007 à 10:41:52

Recherche FPDF et TCPDF dans google, tu devrais trouver ton bonheur !

Répondre à jc

10

SRPROGFOU, le 19 oct 2007 à 18:38:02
  • +1

Perso j'utilise HTML2PDF qui fonctionne très bien pour génerer un PDF d'une page HTML, et même avec des options comme enregistrer le PDF ou l'envoyer par mail avec de petites modif, (modif du nom de destination et recup dans votre source en PHP)

sinon un grande asctuce pour ceux qui veulent générer le PDF sans le voir à l'ecran, utilisez un IFRAME en largeur et hauteur de 0, qui va traiter votre page à imprimer et avec ob_start, =ob_get_contents(), ob_end_clean() vous générer le document HTM sur le serveur que vous utilisez dans votre lien de generation du PDF avec HTML2PDF.

Je sais c'est pas simple, mais avec on peu tout faire avec des idées.

srdev.fr

Répondre à SRPROGFOU

11

Matzik, le 21 oct 2007 à 11:43:49

Bonjour,
Peux tu me dire comment tu as installer html2fpdf ???

Répondre à Matzik

12

meryemezzaytouni, le 15 nov 2007 à 13:55:12

Bonjour,

j'ai demandé s'ils vous plaît un réponse de mes question , mes question comment suivant:

-Est ce que trauvé un possibilté pour liée format PDF avec HTML ?

-Comment va faire téléchargé format PDF dans HTML.

J'éspière que vous réponse de mes question ,dans m'attente votre réponse veuillez agrée mes salutation merci.

Répondre à meryemezzaytouni

13

pretorian, le 16 nov 2007 à 11:51:03
  • +1

Bonjour
je ne sais trop si c'est ce que tu cherches,mais voici un bout de code PHP qui va ouvrir une page pdf dans ton navigateur

include 'class.ezpdf.php';
$pdf =& new Cezpdf();
$pdf->addJpegFromFile('image.jpg',250,770,100);//si tu veux charger un image
$pdf->selectFont('arial');//police
$pdf->ezText('',12);
$pdf->addText(60,720,12,'hello world');// ton texte, 60=marge gauche, 720=marge haut, 12= taille police
$pdf->ezStream();

tu peux mettre autant de ligne de texte que tu veux ($pdf->addText(60,720,12,'hello world');)

bon c'est pas tout il faut que tu crée un dossier 'font' dans le même dossier que ta page, dans lequel tu logera des fichier AFM de la police que tu auras utilisés(ces fichiers accompagnenet souvent les polices).j'aurai bien aimé t'en mettre en téléchargement mais le forum ne me permet pas. si tu veux, tu peux me filer ton mail pour que je te les envoi.

j'espere que ça t'aura un peu aidé :-)

Répondre à pretorian

24

aaaa, le 3 sep 2008 à 11:53:58

Télécharger un page dynamique php en format pdf

Répondre à aaaa

14

erl, le 13 déc 2007 à 15:09:49
  • +2

La librarie FPDF est concu pour ca ...
http://www.fpdf.org/
De plus le premier f signifie FREE ! :P

Répondre à erl

15

erl, le 13 déc 2007 à 15:13:35

En passant, SEB est dans le champs pour son 2 eme paragraphe ... un PDF ca peut etre dynamique! et être relier à ta base de donné mysql, ... utilise la lib fpdf et c'est tout simple d'y incorporer ton propre php ...

Répondre à erl

16

Spipu, le 18 avr 2008 à 16:16:31

Pour ceux que ca intéresse, j'ai programme un convertisseur HTML => PDF en PHP, très facile à utiliser.

ca se situe ici : http://prgm.spipu.net/?cat=prgm

Répondre à Spipu

17

Spipu, le 18 avr 2008 à 16:18:06

Aoups, désolé, je me suis trompé dans le lien... le voici :

ca se situe ici : http://prgm.spipu.net/?cat=php

Répondre à Spipu

18

Fouineur, le 13 mai 2008 à 01:48:13
  • +1

OUAH ! Super je vais tester cela, c'est exactement ce que je cherche depuis plusieurs jours..et je désespère, comment lancer le PHP depuis la page HTML, un bouton serait pas mal, il faut sans doute une image ? Qu'est-ce que tu recommande pour être efficace ??
Merci d'avance !

Répondre à Fouineur

19

christobal, le 15 mai 2008 à 10:10:51

Bonjour,
je souhaiterais savoir si ton script html2pdf gérait les <link href="toto.css" rel="stylesheet" type="text/css" />
si oui merci de m'indiquer la marche a suivre car je n'est pas trouvé sur ton site.

Répondre à christobal

21

Spipu, le 23 mai 2008 à 09:49:26
  • +3

Bonjour,

j'ai mis à jour HTML2PDF, il gère maintenant les feuilles de style CSS.

téléchargement ici : http://html2pdf.spipu.net/

Répondre à Spipu

20

zemeckis, le 15 mai 2008 à 11:49:37

Bonjour,

est ce que quelqu'un qui utilise htmldoc pourrait m'aider ?

j'arrive pas à l'installer sur mon serveur... j'ai suivi ce tuto http://doc.quickdev.org/?module=index&act_idx=88 mais je sais pas quoi faire maintenant. j'ai des fichiers un peu de partout et je sais pas lequel il faut utiliser pour génerer un pdf

HELP PLEASE !!!!!

Répondre à zemeckis

22

algerienne, le 9 jun 2008 à 13:25:30

J'ai un probleme pour remplir ma base de donnée

Répondre à algerienne

23

Dr Zoidberg, le 9 jun 2008 à 13:34:30
  • +1

C'est sur qu'avec ca on va pouvoir t'aider :-) ...
Et quel est le rapport avec le sujet ?

Répondre à Dr Zoidberg

37

 vyk, le 2 nov 2009 à 22:40:51

Mais qu'est-ce qu'ils foutent les modo à laisser des messages pareils?????????????????

Répondre à vyk