Imprimer DIV sur plusieurs pages

Signaler
Messages postés
7
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
10 avril 2010
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,
tout d'abord je tiens à signaler que j'ai effectué pas mal de recherches avant de poster ici. C'est seulement la 2eme fois que je poste sur un forum d'aide. Tout simplement parce que je n'y arrive pas.
Merci donc de m'aider si le cœur vous en dit.

mon problème : Je souhaite imprimer une liste de positions (lat,lng) contenues dans un tableau html, généré dynamiquement lors d'un appel webservice (+ javascript derrière). Ce tableau est contenu dans une div. J'ai ajouté un bouton (image) permettant l'impression de ce tableau. D,après plusieurs codes du net, on récupère la div à imprimer, on créé une page html qu'on affiche et on imprime la nouvelle fenêtre.

La div est bien recopiée, mais dès que le tableau est trop grand (plus de 40 lignes), et qu'il est nécessaire d'imprimer une seconde page, l'impression ce termine à la fin de la 1ere page et la seconde est tout simplement ignorée. Pourquoi ??

Par ailleurs, je ne veux pas utiliser les média, car je veux que l'utilisateur puisse imprimer le tableau ou toute la page.

Merci,
en espérant qu'on puisse m'aider.

10 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
Bonjour,
pourquoi ne pas récupérer seulement le contenu de ta DIV pour l'impression, le tableau en fait.

Il se peut qu'il est du CSS qui soit à l'origine de ton problème

;O)
Messages postés
7
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
10 avril 2010

Bonjour et merci pr la réponse. En ce qui concerne la solution de récupérer le tableau, c'est ce que je fait déjà. J'ai tester mon site sur firefox (souvent utilisé pr le dev) et sur chrome. Il apparait que sur chrome, tout mon tableau est imprimé correctement sur plusieurs pages, tandis que sur ff, non. Que la première page est imprimée, les autres restent vierges.
C'est à rien y comprendre !

Connaissez vous une solution ?

PS: Il y a des css sur mon tableau (pr la mise en forme de certaines cellules) et sur les div. Pour l'instant j'insère manuellement ces css dans la nouvelle fenêtre popup, ce qui n'est pas très propre.
Je précise que je ne veux pourtant pas utiliser @media.

Merci

A bientot
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
quand je dis récuper le contenu de la DIV, il sentant qu'en final le document ne contient aucun conteneur et est de la forme...
<html>
<head>
</head>

  


</html>

dans ce cas aucune raison qu'il ne s'imprime pas en entier...
;O)
Messages postés
7
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
10 avril 2010

il est de forme :

<html>
<head>
</head>








</html>
Et pourtant rien ne s'imprime. C'est vraiment étange. Viendrait-il de firefox ?
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
il y a donc lourd à parier que le DIV englobant la table perturbe l'impression, essaies de la supprimer.
;O)
Messages postés
7
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
10 avril 2010

Ben je ne peux pas faire ceci, car je créé mon tableau dynamiquement après un appel a un webservice. Je créé les cellules dynamiquement et ai besoin que chaque cellule soit une div car je l'update de façon asynchrone.
Je sais pas si c'est très clair. Je l'espère.
J'avoue ne pas savoir comment faire autrement.
En fait j'ai une table t1. Dans un <td> j'ai une
div_1 qui contient une table t2. Dans cette table t2 j'ai une
div_2 qui contiendra le tableau "dynamique" des données, t_dynData. Chaque cellule de t_dynData est une <td>
</>. Pour imprimer, je récupère la div div_2 que j'insère dans une popupwindow et que j'imprime.
Messages postés
7
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
10 avril 2010

Ci dessous le code source de mon popup:

<html>
<style type="text/css">
#div_tabDataReport{margin: auto;}
.tableHeaderCellReport{
color: white;
background-color: #000000;
border-style: solid;
border-width: 1px;
border-color: #000000;
font-weight: bold;text-align: center;}

.tableBodyCellReport{
color: black;
border-style: solid;
border-width: 1px;
border-collapse: collapse;
border-spacing: 0px;
border-color: #000000;}
</style>

        
,
Du: 29/03/2010
Au: 07/04/2010
Durée ON: 1 sem. 2 jrs. 18 h. 6 min. 27 s.
Durée OFF: 1 sem. 11 h. 21 min. ,

----

Rapport de ON/OFF
Boitier: BMW Rodolphe (2000020000),

----

<!-- div pr inserer le tableau plus tard -->

<!-- Div Généré par le tab dynamique -->

<!-- Div Header -->

ON

OFF

DURÉE ON

DURÉE OFF

<!-- Div Data (cells) -->

31/03 - 20:00

31/03 - 20:40

40 min. 50 s.

2 h. 4 min. 40 s.

31/03 - 20:00

31/03 - 20:40

40 min. 50 s.

2 h. 4 min. 40 s.

31/03 - 20:00

31/03 - 20:40

40 min. 50 s.

2 h. 4 min. 40 s.

31/03 - 20:00

31/03 - 20:40

40 min. 50 s.

2 h. 4 min. 40 s.

31/03 - 20:00

31/03 - 20:40

40 min. 50 s.

2 h. 4 min. 40 s.

31/03 - 20:00

31/03 - 20:40

40 min. 50 s.

2 h. 4 min. 40 s.

31/03 - 20:00

31/03 - 20:40

40 min. 50 s.

2 h. 4 min. 40 s.

31/03 - 20:00

31/03 - 20:40

40 min. 50 s.

2 h. 4 min. 40 s.

31/03 - 20:00

31/03 - 20:40

40 min. 50 s.

2 h. 4 min. 40 s.

31/03 - 22:45

31/03 - 22:54

9 min.

6 min.

31/03 - 22:45

31/03 - 22:54

9 min.

6 min.

31/03 - 22:45

31/03 - 22:54

9 min.

6 min.

31/03 - 22:45

31/03 - 22:54

9 min.

6 min.

31/03 - 22:45

31/03 - 22:54

9 min.

6 min.

31/03 - 22:45

31/03 - 22:54

9 min.

6 min.

31/03 - 22:45

31/03 - 22:54

9 min.

6 min.

31/03 - 22:45

31/03 - 22:54

9 min.

6 min.

31/03 - 22:45

31/03 - 22:54

9 min.

6 min.

31/03 - 23:00

31/03 - 23:30

30 min.

5 min.

31/03 - 23:00

31/03 - 23:30

30 min.

5 min.

31/03 - 23:00

31/03 - 23:30

30 min.

5 min.

31/03 - 23:00

31/03 - 23:30

30 min.

5 min.

31/03 - 23:00

31/03 - 23:30

30 min.

5 min.

31/03 - 23:00

31/03 - 23:30

30 min.

5 min.

31/03 - 23:00

31/03 - 23:30

30 min.

5 min.

31/03 - 23:00

31/03 - 23:30

30 min.

5 min.

31/03 - 23:00

31/03 - 23:30

30 min.

5 min.

01/04 - 09:02

01/04 - 10:02

1 h.

2 h.

01/04 - 09:02

01/04 - 10:02

1 h.

2 h.

01/04 - 09:02

01/04 - 10:02

1 h.

2 h.

01/04 - 09:02

01/04 - 10:02

1 h.

2 h.

01/04 - 09:02

01/04 - 10:02

1 h.

2 h.

01/04 - 09:02

01/04 - 10:02

1 h.

2 h.

01/04 - 09:02

01/04 - 10:02

1 h.

2 h.

01/04 - 09:02

01/04 - 10:02

1 h.

2 h.

01/04 - 09:02

01/04 - 10:02

1 h.

2 h.

01/04 - 12:02

01/04 - 13:12

1 h. 10 min.

8 h. 50 min.

01/04 - 12:02

01/04 - 13:12

1 h. 10 min.

8 h. 50 min.

01/04 - 12:02

01/04 - 13:12

1 h. 10 min.

8 h. 50 min.

01/04 - 12:02

01/04 - 13:12

1 h. 10 min.

8 h. 50 min.

01/04 - 12:02

01/04 - 13:12

1 h. 10 min.

8 h. 50 min.

01/04 - 12:02

01/04 - 13:12

1 h. 10 min.

8 h. 50 min.

01/04 - 12:02

01/04 - 13:12

1 h. 10 min.

8 h. 50 min.

01/04 - 12:02

01/04 - 13:12

1 h. 10 min.

8 h. 50 min.

01/04 - 12:02

01/04 - 13:12

1 h. 10 min.

8 h. 50 min.

01/04 - 22:02

01/04 - 22:12

10 min.

50 min.

01/04 - 22:02

01/04 - 22:12

10 min.

50 min.

01/04 - 22:02

01/04 - 22:12

10 min.

50 min.

01/04 - 22:02

01/04 - 22:12

10 min.

50 min.

01/04 - 22:02

01/04 - 22:12

10 min.

50 min.

01/04 - 22:02

01/04 - 22:12

10 min.

50 min.

01/04 - 22:02

01/04 - 22:12

10 min.

50 min.

01/04 - 22:02

01/04 - 22:12

10 min.

50 min.

01/04 - 22:02

01/04 - 22:12

10 min.

50 min.

01/04 - 23:02

02/04 - 00:32

1 h. 30 min.

6 h.

01/04 - 23:02

02/04 - 00:32

1 h. 30 min.

6 h.

01/04 - 23:02

02/04 - 00:32

1 h. 30 min.

6 h.

01/04 - 23:02

02/04 - 00:32

1 h. 30 min.

6 h.

01/04 - 23:02

02/04 - 00:32

1 h. 30 min.

6 h.

01/04 - 23:02

02/04 - 00:32

1 h. 30 min.

6 h.

01/04 - 23:02

02/04 - 00:32

1 h. 30 min.

6 h.

01/04 - 23:02

02/04 - 00:32

1 h. 30 min.

6 h.

01/04 - 23:02

02/04 - 00:32

1 h. 30 min.

6 h.

02/04 - 06:32

03/04 - 03:23

20 h. 50 min. 53 s.

...

02/04 - 06:32

03/04 - 03:23

20 h. 50 min. 53 s.

...

02/04 - 06:32

03/04 - 03:23

20 h. 50 min. 53 s.

...

02/04 - 06:32

03/04 - 03:23

20 h. 50 min. 53 s.

...

02/04 - 06:32

03/04 - 03:23

20 h. 50 min. 53 s.

...

02/04 - 06:32

03/04 - 03:23

20 h. 50 min. 53 s.

...

02/04 - 06:32

03/04 - 03:23

20 h. 50 min. 53 s.

...

02/04 - 06:32

03/04 - 03:23

20 h. 50 min. 53 s.

...

02/04 - 06:32

03/04 - 03:23

20 h. 50 min. 53 s.

...


</html>




Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
il semblerait que tu ai un problème de flux interprété différemment par FireFox

C'est lié au fait que tes DIV sont en position absolute.

Chaque ligne n'est pas encadrée par une TR.

;O)
Messages postés
7
Date d'inscription
dimanche 20 juillet 2008
Statut
Membre
Dernière intervention
10 avril 2010

Ok, je vais revoir ma fabrique du tableau. Je vous tiens au courant. Merci en tous cas de vous être penché sur mon problème.
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
je pense que c'est le mieux car il te faut rester compatible et des display:inline-block ou autres astuces foirent d'un navigateur à l'autre
essaies d'avoir par ligne une construction
<tr>
  <td>
...
</td>
  <td>
...
</td>
  <td>
...
</td>
</tr>
comme je pensais que tu avais...
;O)