1

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.

2

t'as lu la doc au moins? t'as pas compris quoi?

3

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.

4

cette lib n'est pas faite pour convertir des pages web. Il faut des balises dédiées.

5

c'est bien ce que je me disais. Dans ce cas est ce qu'il existe un moyen de faire ce que je souhaite?

6

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 '

7

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?

8

du css inline ?
et la le mec il le pécho par le bras et il lui dit '

9

du css externe

10

exemple 6
<link type="text/css" href="./res/exemple06.css" rel="stylesheet" >
et la le mec il le pécho par le bras et il lui dit '

11

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

12

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?

13

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+

14

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

15

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 '

16

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



17

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 '

18

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>

19

.'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 '

20

Bonjour à tous.
malgré différentes tentatives, ma page ne s'affiche toujours pas.
J'ai vérifié mais j'ai pas d’erreur php. j'ai même essayé cette ligne mais cela ne fonctionne pas.

background:#fff url("http://localhost:8888/images/header_02.png") left top no-repeat;

il me met comme message : Impossible de charger l'image "http://localhost:8888/images/header_02.png"

alors qu'en collant cette url dans le navigateur j'affiche bien mon image.
Lorsque je mets background-color:#ccc à la place j'ai bien ma div qui apparait en gris.

Quelqu'un sait il comment je dois écrire cette ligne pour que cela fonctionne?
Merci

21

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 '

22

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 '

23

Bonjour r043v
j'ai essayé ta ligne et j'ai le même message.
j'ai essayé celle ci et c'est pareil : background:#fff url("/var/www/localhost:8888/images/header_02.png") left top no-repeat;

Est ce que je dois remplacer "monsite" par une adresse précise?
si on considère que mon image est à cette adresse : http://localhost:8888/images/header_02.png , comment écris tu concrètement cette ligne?

Merci de ton aide.

24

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 '

25


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

26

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 '

27


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"

28

conio73 (./24) :
url("/var/www/localhost:8888/images/header_02.png")


C'est censé être quoi ça? grin

29

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 '

30

> C'est censé être quoi ça? grin

une meilleure quotte ? smile
et la le mec il le pécho par le bras et il lui dit '