인쇄 페이지 만들기. > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

인쇄 페이지 만들기. 정보

인쇄 페이지 만들기.

첨부파일

print1.php (10.0K) 262회 다운로드 2013-02-08 14:24:27

본문

list 스킨 또는 view 스킨 이나 인쇄 버튼을 넣을 부분에 아래 와 같은 부분을 넣어주고요

<a href="#" onClick="javascript:window.open('<?=$board_skin_path?>/print1.php?bo_table=<?=$bo_table?>','pop','width=800,height=768,left=0,top=0,scrollbars=yes,resizable=yes,toolbar=no,menubar=no,location=no,location=no,status=no')" onFocus=blur()><img src="<?=$board_skin_path?>/img/btn_print.gif" align="absmiddle" border='0'></a>


print1.php 파일은 아래와 같은 내용입니다. 아래의 내용은 간편장부 인쇄페이지에서 발췌한 내용이구요

이걸 제게 맞도록 수정한겁니다.  출력페이지 설정 및 조정은 IEPageSetupX 를 이용해서 사용했습니

다. IEPageSetupX은 http://isulnara.com  여기서 참고하시기를 바랍니다.

-----------------------------------------------------------------------------------------------

<?
include_once("./_common.php");
//include_once("$g4[path]/lib/latest.lib.php");

$g4['title'] = "$board[bo_subject] 출력용 검색화면";
//include_once("$g4[path]/_head.php");
include_once("$g4[path]/head.sub.php");
?>

<style type="text/css">

  @media print{

    #noPrint1{display: none;}
  }

  </style>


<script language="javascript" type="text/javascript">

function Installed()
{
try
{
return (new ActiveXObject('IEPageSetupX.IEPageSetup'));
}
catch (e)
{
return false;
}
}

function PrintTest()
{
if (!Installed())
alert("컨트롤이 설치되지 않았습니다. 정상적으로 인쇄되지 않을 수 있습니다.")
else
alert("정상적으로 설치되었습니다.");
}

function printsetup()
{
IEPageSetupX.header = ""; // 헤더설정
IEPageSetupX.footer = ""; // 푸터설정
IEPageSetupX.leftMargin = 10; // 왼쪽여백설정
IEPageSetupX.rightMargin = 10; // 오른쪽여백 설정
IEPageSetupX.topMargin = 20; // 윗쪽여백 설정
IEPageSetupX.bottomMargin = 10; // 아랫쪽 여백설정
IEPageSetupX.PrintBackground = true; // 배경색 및 이미지 인쇄
IEPageSetupX.Orientation = 1; // 가로 출력을 원하시면 0을 넣으면 됩니다. 세로출력은 1입니다.

IEPageSetupX.PaperSize = 'A4'; // 용지설정입니다.
// IEPageSetupX.Print(); // 인쇄하기
//IEPageSetupX.Print(true); // 인쇄대화상자 띄우기
// PrintTest(); // 컨트롤설치여부 테스트
// IEPageSetupX.RollBack(); // 수정 이전 값으로 되돌림(한 단계 이전만 지원)
// IEPageSetupX.Clear(); // 여백은 0으로, 머리글/바닥글은 모두 제거, 배경색 및 이미지 인쇄 안함
// IEPageSetupX.SetDefault(); // 기본값으로 되돌림
// IEPageSetupX.SetDefault(); // 기본값으로 복원(여백 모두: 0.75mm, 머리글:&w&b페이지 &p / &P, 바닥글:&u&b&d, 배경색 및 이미지 인쇄: 안함)
// IEPageSetupX.Preview(); // 미리보기
// IEPageSetupX.SetupPage(); // 페이지설정창 띄우기
}



</SCRIPT>

<SCRIPT language="JavaScript" for="IEPageSetupX" event="OnError(ErrCode, ErrMsg)">
alert('에러 코드: ' + ErrCode + "\n에러 메시지: " + ErrMsg);
</SCRIPT>

<div style=" wwedig:12px; line-height:1px; font-size:1px;">&nbsp;</div>

<OBJECT id=IEPageSetupX classid="clsid:41C5BC45-1BE8-42C5-AD9F-495D6C8D7586" codebase="http://192.168.0.3/IEPageSetupX/IEPageSetupX.cab#version=1,4,0,3" width=0 height=0>
<param name="copyright" value="http://isulnara.com">
<div style="position:absolute;top:276;left:320;width:300;height:68;border:solid 1 #99B3A0;background:#D8D7C4;overflow:hidden;z-index:1;visibility:visible;"><FONT style='font-family: "굴림", "Verdana"; font-size: 9pt; font-style: normal;'>
<BR>  인쇄 여백제어 컨트롤이 설치되지 않았습니다.  <BR>  <a href="http://192.168.0.3/IEPageSetupX/IEPageSetupX.exe"><font color=red>이곳</font></a>을 클릭하여 수동으로 설치하시기 바랍니다.  </FONT>
</div>
</OBJECT>

<?
 
if (!$fr_date)    $fr_date = "20110101"; // 처음부터 검색
// if (!$fr_date)    $fr_date =  substr(date("Ymd", time()),0,6)."01"; // 이번달검색
if (!$to_date)   $to_date = date("Ymd", time());
if ($sort1 == "") $sort1 = "wr_1";
    if ($sort2 == "") $sort2 = "desc"; //asc

    $sql  = " select * from g4_write_fuel";

if ($fr_date && $to_date)
{
$fr_date=date('Ymd', strtotime($fr_date));
$to_date=date('Ymd', strtotime($to_date));
$sql .= " WHERE (wr_1 between '$fr_date' and '$to_date') ";
}


if ($gubun1) { $sql .= " AND ca_name like '$gubun1' "; }

  $sql .= " order by $sort1 desc ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);

//$rows = $config[cf_page_rows];
$rows = 500; // 한화면에 나올 게시물수 합계를 보기위해 많이잡음.인쇄시 페이지 나눔.
    $pagerows    = 30; // 페이지당 인쇄 라인수
    $printpage  = ceil($total_count / $pagerows); //인쇄페이지수
    $firstpage  =  0;

$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if ($page == "") { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

$rank = ($page - 1) * $rows;

$sql = $sql . " limit $from_record, $rows ";
$result = sql_query($sql);

$qstr = "page=$page&sort1=$sort1&sort2=$sort2";
$qstr1 = "fr_date=$fr_date&to_date=$to_date&sel_ca_id=$sel_ca_id";
?>

<div id="noPrint1"> <? // 인쇄시 미포함 영역 1 ?>

<!-- 메인화면 최신글 시작 -->
<table width=750 border=0 cellpadding=0 cellspacing=0 align=center>
<form name=flist>
<? /* <form name=flist method=get style="margin:0px;"> */ ?>
<input type=hidden name=doc  value="<?=$doc?>">
<input type=hidden name=sort1 value="<?=$sort1?>">
<input type=hidden name=sort2 value="<?=$sort2?>">
<input type=hidden name=page  value="<?=$page?>">
<input type=hidden name=bo_table value="<?=$bo_table?>">

<tr><td colspan=3 height=20 ></td></tr>
<tr>
    <td colspan=3>
        &nbsp;&nbsp;<font color=green size=3><b> | <?=$board[bo_subject]?> <?=$gubun1?> 조회 |</b></font>
    </td>
</tr>
<tr>
    <td colspan=3 align=right>
        <a href="javascript:printsetup();" onClick="IEPageSetupX.Preview();"><img src="미리보기 버튼 이미지" align=absmiddle border='0'></a>
       
        <a href="javascript:printsetup();" onClick="IEPageSetupX.Print(true);"><img src="인쇄하기 버튼 이미지" align=absmiddle border='0'></a>
       
        <a href="javascript:printsetup();" onClick="IEPageSetupX.CloseIE();"><img src="창 닫기 버튼 이미지" align=absmiddle border='0'></a>
       
    </td>
</tr>
<tr><td colspan=3 height=10 ></td></tr>
<tr>
   
    <td width=84% align=center>
        검색기간 : 
                    <input type=text name=fr_date size=20 maxlength=25 itemname='기간' required value='<?=$fr_date?>'readonly title='옆의 달력 아이콘을 클릭하여 날짜를 입력하세요.'>
                    <a href="javascript:win_calendar('fr_date', document.getElementById('fr_date').value, '');"><img src='<?=$member_skin_path?>/img/calendar.gif' border="0"
                            align="absmiddle" title='달력 - 날짜를 선택하세요' /> </a>
       
                          &nbsp;&nbsp;<font size="4" > ~ </font>&nbsp;&nbsp;
                     
                    <input type=text name=to_date size=20 maxlength=25 itemname='기간' required value='<?=$to_date?>' readonly title='옆의 달력 아이콘을 클릭하여 날짜를 입력하세요.'>
                    <a href="javascript:win_calendar('to_date', document.getElementById('to_date').value, '');"><img src='<?=$member_skin_path?>/img/calendar.gif' border="0"
                              align="absmiddle" title='달력 - 날짜를 선택하세요' /> </a> &nbsp;&nbsp;
             
        <? /* <form name="category2" method="get"> */ ?>
               
     
    <select name=gubun1>
<option value=''>분 류</option>
<option value='식당(석유)'>식당(석유)</option>
            <option value='강당(석유)'>강당(석유)</option>
            <option value='목욕탕(등유)'>목욕탕(등유)</option>
            <option value='자활센타(등유)'>자활센타(등유)</option>
            <option value='화장실온수기'>화장실온수기</option>
        </select>
                       
      <script> document.flist.gubun1.value = '<?=$gubun1?>';</script>
       
       
        <input type=image src="./img/btn_search.gif" border=0 align=absmiddle>

    </td>
  <td width=10% align=right>건수 : <? echo $total_count ?>&nbsp;</td>
</tr>
<tr><td colspan=3 height=1 bgcolor=#CCCCCC></td></tr>
</table>

</div> <? // 인쇄시 미포함 영역 1 끝 ?>
<? // 인쇄영역 시작 ?>
<div id="startPrint">

 <?
  $fr_date = date("Y-m-d 부터",strtotime($fr_date));
  $to_date = date("Y-m-d 까지",strtotime($to_date));
  $total_count = $total_count +1 ; // 번호를 뒤집어 표현하기 위해서 1을 더해 줌. 안해주면 맨 마지막 줄 0으로 표시됨.
 ?>


<TABLE width=96%  align="center" border=1 cellspacing="0" bordercolordark="white" bordercolorlight="#FFFFFF" bordercolor='#FFFFFF'>

 
<?
for ($i=0; $row=mysql_fetch_array($result); $i++)
{
  //  $num = $rank + $i + 1;  // 번호 순방향
      $total_count-- ;       
  $num = $total_count;  // 번호 역방향
    if($i % 30 == 0) {
        $subpage  = $subpage + 1;

    $firstpage = 1;

?>
</table>
<div align="center">
<font size="+2"><b><?=$board[bo_subject]?> <?=$gubun1?> 내역서 </font></b></div>

<div align="center">&nbsp;</div>
  <div  style="float:left">  <font>&nbsp;&nbsp;&nbsp;&nbsp;사회복지시설&nbsp;&nbsp; <b>홍길동</font> </b>  </div>
  <div  style="float:right"> [ <?=$fr_date?> ~ <?=$to_date?> ]  &nbsp;&nbsp;&nbsp;&nbsp; </div>
 
<span style=" 10px solid;10px solid; Z-INDEX: 1; 10px solid; WIDTH: 351px; 10px solid; POSITION: absolute; HEIGHT: 75px; left: 40px;"><img src="백그라운드 이미지 주소" width="650" height="838" /></span>



<TABLE width=96%  align="center" border=1 cellspacing="0" bordercolordark="white" bordercolorlight="black" bordercolor='#990066'>
<?

echo "
<tr align=center height=29>
    <td width=70 bgcolor=#e7e7e7>순 번</td>
    <td width=210 bgcolor=#e7e7e7>수급 & 지급일자</td>
    <td width=310 bgcolor=#e7e7e7>물품명_적요</td>
    <td width=200 bgcolor=#e7e7e7>지급자</td>
    <td width=500 bgcolor=#e7e7e7>지급사유</td>
<td width=100 bgcolor=#e7e7e7>구입량</td>
<td width=100 bgcolor=#e7e7e7>소모량</td>
<td width=150 bgcolor=#e7e7e7>재고량</td>";
  echo "
</tr>";
}

    $list = $i%2;
$row[wr_1] = date("Y-m-d",strtotime($row[wr_1]));

   
echo "

    <tr class='list$list center' height=30 >
        <td align=center>$num</td>
        <td align=center>$row[wr_1]</td>
        <td align=center>$row[ca_name]_$row[wr_subject]</td>
<td align=center>";if($row[wr_4] != ''){ echo"$row[wr_4]"; }else{ echo "&nbsp;";} echo "</td>
        <td align=center>$row[wr_content]</td>
<td align=center>$row[wr_3] </td>
<td align=center>$row[wr_5] </td>
<td align=center>$row[wr_10]</td>";
echo "
    </tr>";

// 라인사이 공백
}

if ($i == 0) {
    echo "<tr><td colspan=12 align=center height=100 bgcolor=#ffffff><span class=point>자료가 한건도 없습니다.</span></td></tr>\n";
}
?>
</table>


<!-- 메인화면 최신글 끝 -->

<?
//include_once("$g4[path]/_tail.php");
include_once("$g4[path]/tail.sub.php");
?>
추천
1

댓글 10개

문제점이 하나 있습니다. IEPageSetupX 를 이용시  처음 미리보기하면 가로세로 용지 설정 과 테이블 테두리 부분이 설정한 부분은 맞지 않게 나오네요... 제가 설정을 잘못한건지는 모르겠지만... 다시 미리보기 하시면 정상적으로 나옵니다.. 참고하세요..
데이타가 없을 경우 줄이 안나옵니다 if($row[wr_2] == '')  {echo "&nbsp; </td>";} else {echo "$row[wr_2]</td>";}  한줄 씩 이렇게 써주는것 보다 for 문으로 데이타가 없을 경우 공백을 넣는 방법이 있을까하고 찾아보니 간단한 방법이 있더라구요...

for($j = 11; $j < 119; $j++) {

if($row[wr_.$j] == '') $row[wr_.$j] = "&nbsp;";

    }
이렇게 하시면 손 쉽게 빈공간을 출력 할 수 있답니다...^^
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT