2014-03-29 2 views
0

영수증을 출력하는 PHP/HTML 페이지가 있습니다. 실제로 인쇄 할 때마다 페이지 나누기를 만들려고합니다. 몇 가지 스타일과 클래스 코드를 시도했지만 가장 먼저 할 수 있었던 것은 첫 번째 이후에는 깨지기 쉽지만 반복되지는 않습니다. IOW 나는 코드에서 언급 된 테이블을 인쇄 할 때마다 페이지 나누기를 원한다.한 페이지 만 번지기

enter code here 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"   "http://www.w3.org/TR/html4/loose.dtd"> 
<html><head> 
<style type="text/css"> 
@media all { 
.page-break { display: none; } 
} 

@media print { 
.page-break { display: block; page-break-before: always; } 
} 
</style> 

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>North Atlanta Riding Club</title> 
<link href="../styles.css" rel="stylesheet" type="text/css"> 
<style type="text/css"> 
<!-- 
.style45 { 
    color: #FF0000; 
    font-weight: bold; 
    font-style: italic; 
} 
--> 
</style> 
</head> 

<body> 
<?php 
do{ 
     //THIS SEES IF THE LOGGED IN MEMBER HAS CONFIRMED CLOTHING 
     $colname_confirmed = "1"; 
     if (isset($row_roster['key1'])) { 
      $colname_confirmed = (get_magic_quotes_gpc()) ? $row_roster['key1'] : addslashes($row_roster['key1']); 
     } 
     mysql_select_db($database_connection1, $connection1); 
     $query_confirmed = sprintf("SELECT * FROM clothingorder WHERE who = %s AND confirmed = 'Y' ORDER BY key1 ASC", $colname_confirmed); 
     $confirmed = mysql_query($query_confirmed, $connection1) or die(mysql_error()); 
     $row_confirmed = mysql_fetch_assoc($confirmed); 
     $totalRows_confirmed = mysql_num_rows($confirmed); 

     if($totalRows_confirmed<>0){?> 

        <table width="990" border="0" align="left" cellpadding="0" cellspacing="0"> 
         <!--DWLayoutTable--> 
         <tr> 
         <td width="990" height="31" valign="top"><!--DWLayoutEmptyCell-->&nbsp;</td> 
         </tr> 
         <tr> 
         <td height="83" valign="top"> 
          <table border="1" align="left" cellpadding="2" cellspacing="0" bordercolor="#000000"> 
          <tr bgcolor="#FFFFFF" class="style5"> 
           <td colspan="9"><p>Member- <strong><?php echo $row_roster['fname']." ".$row_roster['lname']; ?><br> 
            </strong>Telephone- <strong><?php echo $row_roster['tel']; ?></strong>&nbsp;&nbsp;&nbsp;Email- <strong><?php echo $row_roster['email']; ?></strong><br> 
            Address- <br> 
            <strong> 
            <?php if($row_roster['add1']<>''){echo $row_roster['add1']."<br>";} ?> 
            </strong>    
            <strong> 
            <?php if($row_roster['add2']<>''){echo $row_roster['add2']."<br>";} ?> 
            </strong> 
            <strong> 
            <?php if($row_roster['city']<>''){echo $row_roster['city'].", ";} ?> 
            </strong> 
            <strong> 
            <?php if($row_roster['state']<>''){echo $row_roster['state']." ";} ?> 
            </strong> 
            <strong> 
            <?php if($row_roster['zip']<>''){echo $row_roster['zip'];} ?> 
            </strong><br> 
           </p> 
           </td> 
          </tr> 
          <tr bgcolor="#FFFFFF" class="style5"> 
           <td><div align="center"><strong>Qty</strong></div></td> 
           <td><strong>Item</strong></td> 
           <td><strong>PO?</strong></td> 
           <td><div align="center"><strong>Paid?</strong></div></td> 
           <td><div align="center"><strong>Mens/Womens</strong></div></td> 
           <td><div align="center"><strong>Style</strong></div></td> 
           <td><div align="center"><strong>Cut</strong></div></td> 
           <td><div align="center"><strong>Size</strong></div></td> 
           <td><div align="center"><strong>Price</strong></div></td> 
         </tr> 
          <tr bgcolor="#FFFFFF" class="style5"> 
           <td colspan="8"><div align="right">Narc Membership </div></td> 
           <td><div align="center"> 
           <?php if($row_roster['paid']=="Y"){echo "Paid";$total=0;}else{echo "$".$row_dues['dues'];$total=$row_dues['dues'];} ?></div></td> 
          </tr> 
          <?php 
          do { 
            $colname_item = "1"; 
            if (isset($row_confirmed['item'])) { 
            $colname_item = (get_magic_quotes_gpc()) ? $row_confirmed['item'] : addslashes($row_confirmed['item']); 
            } 
            mysql_select_db($database_connection1, $connection1); 
            $query_item = sprintf("SELECT key1, item, price, free FROM clothing WHERE key1 = %s", $colname_item); 
            $item = mysql_query($query_item, $connection1) or die(mysql_error()); 
            $row_item = mysql_fetch_assoc($item); 
            $totalRows_item = mysql_num_rows($item); 
            ?> 
          <tr class="style5"> 
           <td><div align="center"><?php echo $row_confirmed['qty']; ?></div></td> 
           <td><?php echo $row_item['item']; ?></td> 
           <td><div align="center"><span class="style45"> 
           <?php if($row_confirmed['postorder']=='Y'){?>YES<?php }?></span></div></td> 
           <td><div align="center"><?php echo $row_confirmed['paid']; ?></div></td> 
           <td><div align="center"><?php echo $row_confirmed['mf']; ?></div></td> 
           <td><div align="center"><?php echo $row_confirmed['style']; ?></div></td> 
           <td><div align="center"><?php echo $row_confirmed['cut']; ?></div></td> 
           <td><div align="center"><?php echo $row_confirmed['size']; ?></div></td> 
           <td><div align="center"> 
           <?php if($row_confirmed['price'] == 0){echo "Free"; 
           }else{ 
            if($row_confirmed['paid']=="Y"){echo "Paid";}else{echo $row_confirmed['price'];$total = $total + $row_confirmed['price'];} 
            } ?> 

           </div></td> 
          </tr> 
          <?php 

          } while ($row_confirmed = mysql_fetch_assoc($confirmed)); ?> 
            <tr bgcolor="#FFFFFF" class="style5"> 
           <td colspan="8"><div align="right"><em><strong>Total Owed</strong></em></div></td> 
           <td><div align="center" class="style6"><em><strong><?php echo "$".$total.".00";?></strong></em></div></td> 
          </tr> 
        </table> 
        </td> 
         </tr> 
        </table> 
        <div class="page-break"></div> 
     <?php 
     } 

}while($row_roster = mysql_fetch_assoc($roster)); 
?> 
</body> 
+0

테스트 할 수는 없지만 테이블 태그를'

'로 작성하십시오. –

+0

도와주고 싶지만 스파게티 코드에서 눈이 피고 있습니다. ( – arma

답변

-1

@media print {}의 페이지 나누기가 "넘어져"넘어 가고 있습니다. 사실 지금까지 @media 인쇄본이 완전히 벗겨지기 쉽습니다. 수레가 잘 작동하지 않고 몇 가지 스타일 정보가 구상 된 것처럼 보이지 않는 것 같습니다. "인쇄"에 대한 브라우저 지원이 부족한 것 같습니다. 이름 배지를 인쇄해야하는 응용 프로그램에서 작업 중이며 정밀도는 배치 및 크기 조정에 중요합니다. 나는 그것이 웹에 정통한 온라인으로 보이기를 원했지만 나는 예상대로 인쇄하기를 원했지만 @media print {} 스타일을 포기하는 것에 가깝다. 배지처럼 보이도록 정착해야 할 수도 있습니다. 나는 페이지 브레이크 클래스 div마다 6 "레코드"를 추가하는 코드를 사용하고있다. (배지는 3 열의 4 열에 6-x 3 "w)이다.

나를 좋아한다면 @media print {}를 사용하는 방법을 찾을 수 없으므로 영수증을 인쇄 할 때 화면에 표시하는 것이 효과가 있습니까? 브라우저가 w3c 협약을 따라 잡을 때까지 (그리고 그럴 경우) 귀하의 해결책이 될 수도 있습니다. 나는 @media 인쇄 스타일링에 관해서 무엇이 효과적이지 않은지를 설명하는 좋은 출판물을 찾고 싶다. 그렇지 않으면 스크린 스타일링이 효과가있다.

관련 문제