FPDF - PHP로 PDF 만들기 3
목차
3. 줄바꿈과 색상
양쪽 정렬된 문단을 출력하는 다음 예제를 보자. 이 예제는 색상의 사용법도 같이 다루고 있다.
1 <?php 2 require('fpdf.php'); 3 4 class PDF extends FPDF 5 { 6 function Header() 7 { 8 global $title; 9 //Arial bold 15 10 $this->SetFont('Arial','B',15); 11 //제목의 너비와 위치 계산 12 $w=$this->GetStringWidth($title)+6; 13 $this->SetX((210-$w)/2); 14 //프레임과 배경색, 글꼴 색상 지정 15 $this->SetDrawColor(0,80,180); 16 $this->SetFillColor(230,230,0); 17 $this->SetTextColor(220,50,50); 18 //프레임의 두께 지정 (1 mm) 19 $this->SetLineWidth(1); 20 //제목 21 $this->Cell($w,9,$title,1,1,'C',1); 22 //줄바꿈 23 $this->Ln(10); 24 } 25 function Footer() 26 { 27 //하단에서 1.5 cm 지점 28 $this->SetY(-15); 29 //Arial italic 8 30 $this->SetFont('Arial','I',8); 31 //회색으로 글꼴 색상 지정 32 $this->SetTextColor(128); 33 //페이지 번호 34 $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C'); 35 } 36 function ChapterTitle($num,$label) 37 { 38 //Arial 12 39 $this->SetFont('Arial','',12); 40 //배경색 41 $this->SetFillColor(200,220,255); 42 //제목 43 $this->Cell(0,6,"Chapter $num : $label",0,1,'L',1); 44 //줄바꿈 45 $this->Ln(4); 46 } 47 function ChapterBody($file) 48 { 49 //텍스트를 읽어들임 50 $f=fopen($file,'r'); 51 $txt=fread($f,filesize($file)); 52 fclose($f); 53 //Times 12 54 $this->SetFont('Times','',12); 55 //양쪽정렬된 문단 출력 56 $this->MultiCell(0,5,$txt); 57 //줄바꿈 58 $this->Ln(); 59 //이탤릭 60 $this->SetFont('','I'); 61 $this->Cell(0,5,'(end of excerpt)'); 62 } 63 function PrintChapter($num,$title,$file) 64 { 65 $this->AddPage(); 66 $this->ChapterTitle($num,$title); 67 $this->ChapterBody($file); 68 } 69 } 70 $pdf=new PDF(); 71 $title='20000 Leagues Under the Seas'; 72 $pdf->SetTitle($title); 73 $pdf->SetAuthor('Jules Verne'); 74 $pdf->PrintChapter(1,'A RUNAWAY REEF','20k_c1.txt'); 75 $pdf->PrintChapter(2,'THE PROS AND CONS','20k_c2.txt'); 76 $pdf->Output(); 77 ?>
GetStringWidth() 메소드를 이용하면 현재 폰트에서의 문자열의 길이를 얻을 수 있다. 이 길이는 제목 주변에 그릴 프레임의 너비와 위치 등을 구하는데 사용할 수 있다. SetDrawColor(), SetFillColor(), SetTextColor() 등을 이용해서 색상을 설정했으며, SetLineWidth() 메소드를 이용해서 선의 굵기를 1mm로 정해주었다(기본값은 2mm이다).마지막이 되어서야 cell을 출력해주었는데, 가장 마지막 파라미터가 1로 설정되면 색상이 채워진 cell을 그린다.각 문단을 출력하는데는 MultiCell() 메소드가 사용되었는데, 이 메소드를 사용하면 문자가 각 라인의 끝에 도달하면 자동으로 줄바꿈을 하고 현재의 cell아래에 새로운 cell을 생성한다. 글자는 기본적으로 양쪽 정렬(justified)된다.위를 보면 두 가지의 문서속성(혹은 문서정보) - 제목(SetTitle())과 작성자(SetAuthor()) - 이 정의되어있다.문서속성은 두가지 방법으로 볼 수 있는데, 하나는 Acrobat Reader에서 메인메뉴의 파일(File) -> 문서 속성(Document info) -> 설명(General)으로 가서 보는 것이고, 다른 하나는 플러그인 에서도 가능한 방법으로 세로 스크롤바 상단(화면상에선 우측 상단)의 화살표를 클릭해서 문서 속성(Document info)을 선택하는 것이다.

답글이 없습니다
트랙백 주소 : http://mygony.com/archives/105/trackback/
Leave a comment