Souci d'impression

Fermé
isabelle - 26 juil. 2013 à 09:52
 isabelle - 26 juil. 2013 à 13:04
Bonjour,

Je fait appelle au connaisseur php, voilà je rencontre un souci j'aimerais que cette page contenant ceci :

<!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=utf-8" />
<title>testpdf</title>
</head>

<body>
<table width="265" height="183" border="1">
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
<p><a href="pdftraitement.php" target="_blank">test</a></p>
</body>
</html>


Imprime le tableau suivant grâce au fichier de traitement ...

<?php
header('Content-Type: application/pdf');


$tableau='
<table width="265" height="183" border="1">
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>';

?>



Le souci est que :

1- Le tableau ne s'affiche pas en sortie
2- Quand je clique sur lien test une seconde page s'ouvre avec Content-Type: application/pdf contenant l'erreur suivante il est possible que ce document PDF ne s'affiche pas correctement.

Pourriez-vous m'aider a peaufiner mon fichier de traitement afin que le tableau s'imprime
(Attention ne me proposer pas de librairie comme dompdf etc ...), je voudrais le coder moi-même de façon beaucoup plus simple.

Merci de vos réponses et de votre aide
A voir également:

2 réponses

astuces72 Messages postés 7756 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 13 septembre 2024 1 639
Modifié par astuces72 le 26/07/2013 à 11:59
hello

moi, je serais toi, je ferais une feuille de style en css plutôt que d'utiliser des tableau dans ta page.
regarde cette page qui explique comment ça fonctionne:
https://www.alsacreations.com/tuto/lire/586-feuille-style-css-print-impression.html

et je te donne ton code modifier:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="ecran.css" media="screen" />
<link rel="stylesheet" href="imprimante.css" type="text/css" media="print" />
</head>

<body>
<div id="div1">
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
<div id="div_int"></div>
</div>

<div id="cont_lien">
<a class="lien1" href="pdftraitement.php" target="_blank">lien<br />
</a>
<a class="lien2" href="pdftraitement.php" target="_blank">lien2<br />
</a>
<a class="lien3" href="pdftraitement.php" target="_blank">lien3</a>
</div>

</div>
</body>


pour le css de l'affichage à l'écran, fichier: ecran.css
#div1 {
 width: 252px;
 height: 140px;
 }
#div_int {
 width: 40px;
 height: 40px;
 border: 1px solid #FF0000;
 float: left;
 }
#cont_lien {
 width: 252px;
 height: auto;
 background-color:#CCC ; 
}


pour le css de l'impression, fichier: imprimante.css
#div1 {
 width: 252px;
 height: 124px;
 }
#div_int {
 width: 40px;
 height: 40px;
 border: solid 1px #333;
 float: left;
 }
.lien1, .lien3{
display: none;
}
#cont_lien {
 width: 252px;
 height: auto;
 background-color:#930 ; 
}


comme tu vois, j'ai juste changer la couleur de la bordure des div, rouge à l'écran, et noir pour l'impression, ce qui permet de faire des impressions avec le meilleur formatage et surtout comme tu veux.

en ce qui concerne les 3 liens que j'ai mis, à l'affichage à l'écran on les voit bien, mais à l'impression on ne verra que le lien2, pourquoi ?
Parce que j'ai mis un .lien1, .lien3{ display: none; } sur les class .lien1 et lien2

et à l'impression, les couleurs de fond des div ne sont pas géré en html, mais avec l'option du navigateur, tu as une option au moment de l'impression qui te permet d'imprimer le fond, sur Chrome c'est: "Couleurs et images d'arrière-plan"

à toi de voir :)
0
Merci pour ton aide cela est fort intéressant !

merci !
0