conio73 Le 05/07/2011 à 21:46Edité par conio73 le 15/07/2011 à 16:44 Bonjour à tous.
Mon problème : je dois réaliser une page html avec un formulaire comportant plusieurs champs, mise en forme avec des css. Cette partie est accomplie.
Ensuite, et c'est là que je bloque, il faut faire en sorte que, une fois que l'internaute remplit tous les champs et qu'il valide le formulaire, on affiche la même page à l'identique avec les champs qu'il a remplis en PDF pour lui permettre d'imprimer.
Je vous précise que ma page n'est pas constituée de tableaux mais d'un ensemble de div avec des images en background en css.
Peut on le faire avec html2pdf? Si oui, comment procéder?
Si vous pouvez m'aider. Merci.
t'as lu la doc au moins? t'as pas compris quoi?
J'ai lu la doc mais visiblement c'est pas ce que je veux faire puisqu'il faut définir à nouveau la/les police, définir l'entête, le footer ... alors que dans mon cas j'ai déja ma page toute faite.
cette lib n'est pas faite pour convertir des pages web. Il faut des balises dédiées.
c'est bien ce que je me disais. Dans ce cas est ce qu'il existe un moyen de faire ce que je souhaite?
tu extrait le contenu réel du reste des entête, tu le change un poil pour être en adéquation avec ce que requiers html2pdf puis tu l'utilise par un include dans la version html et dans celle pdf
et la le mec il le pécho par le bras et il lui dit '
Mais comment je fais dans ce cas pour mettre mes images d'arrière plan (bref pour utiliser mes css) pour que j'ai la même page?
Je vais essayer de le faire avec tes conseils r043v et si je bloque je reviens vers toi.
Merci bcp pour ton aide et bonne soirée
Bonjour à tous.
Je m'y suis mis et avec ce code j'obtiens un affichage
$content = "
<page>
<h1>Barème</h1>
<br>
<div id='contenuGauche'>
mon contenu
</div>
</page>
";
require_once('lib/html2pdf_v3.22a/html2pdf.class.php');
$html2pdf = new HTML2PDF('P','A4','fr');
$html2pdf->WriteHTML($content);
$html2pdf->Output('bareme.pdf');
Cependant, j'ai deux questions:
- à quel niveau dois je mettre ma ligne pour les css
<link type="text/css" href="general.css" rel="stylesheet" media="all" />
- est ce que je peux mettre du code php entre les balises <page> et </page> puisque je dois récupérer les valeurs des champs envoyées en post? Si oui, comment faire?
Rebonjour à tous,
Finalement ca marche mais il faut que je bidouille les css pour l'affichage du pdf.
Pour ceux que ça intéresse,j'ai mis la ligne de chargement des css juste après la balise <page>
et le code php de cette facon, <span class='consult1'>".$_POST['consultation']."</span>.
A+
salut à tous
j'ai un autre petit problème.
Dans mon css externe j'ai la ligne suivante
background:#fff url("images/header_02.png") left top no-repeat;
mais je reçois le message d'erreur suivant
Impossible de charger l'image "images/header_02.png"
quelqu'un a t-il une solution à mon problème?
Merci
html2pdf fonctionne coté php, les url doivent donc être relative au script html2pdf, sinon met les en absolue depuis directement / -> /var/www/tonsite/imgs/bla.png
tu va peu être devoir faire deux version de ton css, ou peu être plus simplement inclure le normal et ensuite inclure un autre, ou mettre directement du css inline avec <style></style> qui contiendrais les url patchés pour écraser celle par default du fichier css original
tu peu aussi peu être directement inserer le contenu du .css pour le caler dans <style></style> en ayant patché les url au passage
et la le mec il le pécho par le bras et il lui dit '
Bonjour r043v
je ne comprends pas trop comment patcher les url ni ou exactement il faut mettre les balises <style></style> directement dans la page.
voila ce que je fais mais ça ne marche pas
$content = '
<page>
<style type="text/css">
#bandeau{
width:757px;
height:210px;
background:#fff url(.'dirname(__FILE__).'."/images/header_02.png") left top no-repeat;
}
<link type="text/css" href="stylesPdf.css" rel="stylesheet" media="all" />
<div id="bandeau">
>>>>>>>>>>le reste du contenu
Merci de ton aide
essais de mettre ta balise style après l'inclusion du .css, sinon c'est le .css qui va écraser ton url patché
et la le mec il le pécho par le bras et il lui dit '
j'ai fais ca mais j'ai une page blanche
$content = '
<page>
<link type="text/css" href="stylesPdf.css" rel="stylesheet" media="all" />
<style type="text/css">
#bandeau{
width:757px;
height:210px;
background:#fff url(.'dirname(__FILE__).'."/images/header_02.png") left top no-repeat;
}
</style>
.'dirname(__FILE__).'."
tu n'as pas une erreur php la ?
regarde le log php -> cat /var/log/apache2/error.log
et ton " devrais contenir aussi le dirname
et la le mec il le pécho par le bras et il lui dit '
ne met pas une url mais l'adresse locale du fichier
background:#fff url("/var/www/monsite/images/header_02.png") left top no-repeat;
ou peu etre un truc du style : background:#fff url("c:\program file\easyphp\www\monsite\images\header_02.png") left top no-repeat;
et la le mec il le pécho par le bras et il lui dit '
et si html2pdf.php est dans un repertoire de la racine de ton site un truc du style "../images/truc.png" devrais aussi marcher
et la le mec il le pécho par le bras et il lui dit '
tu doit donner l'adresse de ton image depuis le disque dur et non le site
si tu est sous linux et que ton répertoire web est dans /var/www/ alors ce sera /var/www/images/header_02.png (si tu est direct à la racine du serveur, sinon rajoute le bon sous répertoire -> le /mon-site/ )
et la le mec il le pécho par le bras et il lui dit '
Je suis sur mac et je n'arrive toujours pas à un résultat.
Je me dis finalement que j'ai plus intérêt à utiliser un chemin relatif et non absolu pour le faire parce que là je suis sur mon mac chez moi, quand je serai au bureau le chemin sera différent et quand la page sera en ligne, le chemin sera encore autre.
Peux tu me dire comment écrire la ligne pour faire cela, sachant que mes images se trouvent dans un dossier images qui lui même se trouvent dans le même dossier que le script de la page qui génère le pdf?
Merci
je crois bien que le path doit être relatif depuis le fichier html2pdf.php
donc si celui ci est dans un répertoire placé au même endroit que "images" ../images/bg.png devrais être ok
et la le mec il le pécho par le bras et il lui dit '
j'ai mis ça : background:#fff url("../images/header_02.png") left top no-repeat;
et j'ai ce résultat : Impossible de charger l'image "../images/header_02.png"
je viens de tester, l'image est relative à ton fichier php à toi, et il ne faut pas mettre les "
(enfin j'ai testé depuis l’exemple 6 direct en éditant le style inline dans les <style></style> donc c'est peu etre relatif à ton .css)
et la le mec il le pécho par le bras et il lui dit '