첫페이지 > 한글화&번역 > FPDF - PHP로 PDF 만들기 2

FPDF - PHP로 PDF 만들기 2

2005/03/13

목차

2. 헤더, 푸터, 페이지 나눔 그리고 이미지
다음의 헤더와 푸터, 로고가 있는 두페이지를 출력하는 예제를 보자.

  1  <?php
  2  require('fpdf.php');
  3    
  4  class PDF extends FPDF
  5  {
  6      //페이지 헤더
  7      function Header()
  8      {
  9          //로고
 10          $this->Image('logo_pb.png',10,8,33);
 11          //Arial bold 15
 12          $this->SetFont('Arial','B',15);
 13          //오른쪽으로 이동
 14          $this->Cell(80);
 15          //제목
 16          $this->Cell(30,10,'Title',1,0,'C');
 17          //줄바꿈
 18          $this->Ln(20);
 19      }
 20      //페이지 푸터
 21      function Footer()
 22      {
 23          //아래쪽에서 1.5cm 만큼 떨어진 위치
 24          $this->SetY(-15);
 25          //Arial italic 8
 26          $this->SetFont('Arial','I',8);
 27          //페이지 번호
 28          $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
 29      }
 30  }
 31  //상속받은 클래스를 인스턴스로 생성
 32  $pdf=new PDF();
 33  $pdf->AliasNbPages();
 34  $pdf->AddPage();
 35  $pdf->SetFont('Times',",12);
 36  for($i=1;$i<=40;$i++)
 37  $pdf->Cell(0,10,'Printing line number '.$i,0,1);
 38  $pdf->Output();
 39  ?>

이 예제는 Header()Footer() 메소드를 이용하여 페이지의 헤더와 푸터를 처리하고 있다. Header() 와 Footer() 메소드는 자동으로 호출되며, 이미 FPDF 안에 구현이 되어있으나 그 안에 있는 것은 아무런 역할도 하지 않는다. 따라서, 클래스를 상속받아서 오버라이드 해야한다.

로고는 Image() 메소드에 왼쪽, 상단의 위치와 너비를 주어서 출력했다. 높이는 이미지의 비율에 맞게 알아서 계산된다.

페이지 번호를 출력하기 위해서 너비를 주고 빈 셀을 출력했다. 이것은 곧 셀의 오른쪽 여백이 그 너비만큼 늘어났다는 것을 의미하며, 텍스트를 중간에 위치시키기 위해서 사용되었다. 현재 페이지의 번호는 PageNo() 메소드의 리턴값을 통해 얻을 수 있고, 전체 페이지번호를 얻으려면, {nb}라는 값을 전체 페이지를 출력하고자 하는 위치에 출력한다음, AliasNbPages() 메소드를 실행한다.
SetY() 메소드를 이용하면, 페이지의 상단 혹은 하단을 기준으로 하는 절대좌표를 설정할 수 있다.

다른 흥미로운 기능은 자동 페이지 넘김이다. 셀이 페이지의 범위(하단으로부터 2cm이 기본값)를 넘어가면, 페이지가 자동으로 바뀌며, 글꼴 설정도 복원된다. 그래서 헤더와 푸터가 Arial 폰트로 출력되어도 본문은 계속 Times 로 출력되는 것이다. 이 자동 복원 기술은 색상과 선 굵기에도 적용된다.

자동으로 페이지가 바뀌는 영역은 SetAutoPageBreak()으로 설정할 수 있다.
________________________________________
이 글은 fpdf.org 의 tutorial 을 번역하고 일부 추가한 내용입니다.

한글화&번역 , ,

  1. 느낌표
    2006/06/20 12:03 | #1

    한번 해보았습니다. 헌데 다음과 같은 에러가 나는군요 ^^

    Parse error: parse error, unexpected ‘;’, expecting ‘)’ in g:\htdocs\pdf\image_insert(demo).php on line 38

  2. doskey
    2007/08/03 14:14 | #2

    코드 36번 줄의 코드가 잘못되어 있군요
    for($i=1;$iCell(0,10,’Printing line number ‘.$i,0,1);

    원본 tutorial 에는
    for($i=1; $iCell(0, 10, ‘Printing line number ‘.$i, 0, 1);
    }

    좋은 도움 글 감사합니다.

  3. doskey
    2007/08/03 14:16 | #3

    헉~ 입력처리를 제대로 받지 못하네요.
    http://www.fpdf.org/en/tutorial/tuto2.htm 참조하시길~

  4. 2007/08/03 14:49 | #4

    WP가 가끔 <에 대해서 먹어버리는 경우가 있어서 그런 것 같습니다. ^^;; 알려주셔서 고맙습니다. (__)

  1. 아직은 트랙백이 없습니다.
댓글이 닫혀 있습니다.