2011-10-20 8 views
0


J'essaie de créer un site Web qui lit à partir d'un fichier csv et qui restitue les données à l'écran dans un format imprimable (pour imprimer des tickets). La page crée 2 tickets par ligne et les boucles jaillissent jusqu'à épuisement des données. Tout fonctionne parfaitement et ressemble exactement à ce que je veux, mais, quand je l'imprime, la 3ème rangée descend une des lignes de texte qui monte sur la ligne au-dessus.

Ma question est comment puis-je faire imprimer la façon dont il est vu sur l'écran et pourquoi serait-il visser seulement la 3e rangée lorsque toutes les lignes sont faites avec le même code.

Merci EDIT:Impression correcte du site Web

while (!feof($file_handle)){` 
$csvText = fgetcsv($file_handle, 1024); 
    $username = $csvText[1]; 
    $password = $csvText[2]; 
    $profile = $csvText[3]; 
    $daysValid = $csvText[4]; 
    $expiry = $csvText[5]; 

if($pos == 0) 
{ 
if($count == 5){ 
echo "<p><br /></p>"; 

$count = 0; 
}else{ 
$count++; 
} 
echo "<div class='itemRow'>"; 
echo "<div class='left'>"; 
$pos = 1; 
?> 
<h4 class="centre">Internet Access Voucher</h4> 
<img class="image" src="./icon.jpg" /> 
<div class="info"> 
<table> 
    <tr> 
     <td> 
      Username 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Password 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Profile 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Valid for 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Expiry date 
     </td> 
    </tr> 
</table> 
</div> 
<div class="uniqueInfo"> 
<table> 
    <tr> 
     <td> 
      <?php echo $username;?> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <?php echo $password;?> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <?php echo $profile;?> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <?php echo $daysValid;?> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <?php echo $expiry;?> 
     </td> 
    </tr> 
</table> 
</div> 
<p class="centre"><br />Please remember to disconnect to stop each session.</p> 
</div> 
<br /> 

<?php 
} else { 
?> 
<div class="right"> 
<h4 class="centre">Internet Access Voucher</h4> 
<img class="imageRight" src="./icon.jpg" /> 
<div class="infoRight"> 
<table> 
    <tr> 
     <td> 
      Username 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Password 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Profile 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Valid for 
     </td> 
    </tr> 
    <tr> 
     <td> 
      Expiry date 
     </td> 
    </tr> 
</table> 
</div> 
<div class="uniqueInfoRight"> 
<table> 
    <tr> 
     <td> 
      <?php echo $username;?> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <?php echo $password;?> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <?php echo $profile;?> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <?php echo $daysValid;?> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <?php echo $expiry;?> 
     </td> 
    </tr> 
</table> 
</div> 
<p class="centre"><br />Please remember to disconnect to stop each session.</p> 
</div> 

</div> 

<?php 
$pos = 0; 
} 
} 
?> 

CSS

.centre 
{ 
text-align:center; 
} 

.itemRow 
{ 
position:relative; 
top:0px; 
} 

.left 
{ 
width:500px; 
position:relative; 
font-family:Comic Sans, Comic sans MS, cursive; 
/*border-style:solid; 
border-width:1px;*/ 
} 

.right 
{ 
width:500px; 
position:absolute; 
left:600px; 
top:-20px; 
font-family:Comic Sans, Comic sans MS, cursive; 
/*(border-style:solid; 
border-width:1px;*/ 
} 

.image 
{ 
position:absolute; 
top:70px; 
} 

.info 
{ 
position:relative; 
left:63px; 
} 

.uniqueInfo 
{ 
position:absolute; 
left:250px; 
top:42px; 
} 

.infoRight 
{ 
position:relative; 
left:63px; 
top:0px; 
} 

.uniqueInfoRight 
{ 
position:absolute; 
left:250px; 
top:65px; 
} 

.imageRight 
{ 
position:absolute; 
top:90px; 
} 
+0

Nous ne pouvons pas vous aider sans voir votre code. – Anson

+0

Créez un fichier CSS pour l'impression. – NVTOnline

+0

Mais ce qui en particulier aiderait, Le texte qui fout est dans un tableau, donc je ne vois pas comment il peut se déplacer dans une autre rangée – Darc

Répondre

0

Je pense que cela pourrait être le problème:

if($count == 5){ 
    echo "<p><br /></p>"; 

Vous avez 2 par ligne, et l'incrément $count après chaque billet . Donc, $count = 5 serait après le quatrième billet, ou lorsque la troisième rangée commence. Une page HTML exemple me donnerait une meilleure idée de ce qui se passe exactement, mais je vous suggère de faire quelque chose comme

<br style="clear: both;" /> 

entre les rangs pour les séparer proprement. Donc avant les tickets 3 et 5 ($count = 3 et $count = 5).