FPDF – PHP로 PDF 만들기 1

목차

1. 간단한 예제
간단한 예제를 살펴보자.

< ?php
define('FPDF_FONTPATH','font/');
require('fpdf.php');

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

[데모보기]
첫번째 줄은 글꼴이 있는 위치를 현재 위치에 대한 상대적인 위치로 지정한 것입니다. 그 후에, fpdf 라이브러리를 포함한 후, FPDF 클래스의 인스턴스를 생성합니다. 여기에서 FPDF() 생성자는 파라미터를 기본값으로 설정합니다: 용지를 A4 세로방향으로, 측정단위를 밀리미터로. 이는 다음과 같이 표현할 수도 있습니다. 몰론, 실행결과는 같습니다.

$pdf = new FPDF('P','mm','A4');

P 대신 L을 쓰면 가로방향(landscape)으로 용지를 설정하며, 다른 용지크기(Letter 혹은 Legal)나 측정단위(pt, cm, in)를 설정할 수도 있습니다.현재까지는 아직 페이지가 없는 상태입니다. 따라서 AddPage() 로 새 페이지를 추가해야 합니다. 좌표의 기준은 대게가 그렇듯이 왼쪽 상단을 기준으로 하고 기본값은 상단과 왼쪽에 1cm 씩 여백이 있습니다. 여백은 SetMargins() 로 변경할 수 있습니다.글자를 출력하기 전에 반드시 SetFont() 로 글꼴을 정해줘야 합니다. 그렇지 않으면 문서가 제대로 생성되지 않습니다. 여기서는 Arial bold 16 을 값으로 줍니다.

$pdf->SetFont('Arial','B',16);

이탤릭을 주려면, ‘I’, 밑줄을 주려면 ‘U’ 를 주거나 그냥 공백을 넘겨서 보통 모양으로 지정할 수 있습니다. 폰트 크기의 기준은 포인트입니다. 다른 폰트로는 Times, Courier, Symbol 등을 사용할 수 있습니다.이제 Cell() 명령으로 셀을 출력합니다. 셀이라는 것은 사각형 모양의 영역으로 텍스트를 포함할 수 있습니다. 크기나 텍스트를 지정하는 것은 물론, 경계선을 그릴 것인지 셀 다음의 현재 위치는 어떻게 정해줄 것인지(오른쪽, 아래 혹은 다음줄 맨앞) 등을 설정해줄 수 있습니다. 셀로 (경계선이 있는) 프레임을 출력하려면 다음과 같이 합니다.

$pdf->Cell(40,10,'Hello World !',1);

중간정렬하는 새로운 셀을 추가하고 다음 위치를 다음줄로 옮기려면 다음과 같이 합니다.

$pdf->Cell(60,10,'Powered by FPDF.',0,1,'C');

추가 : 줄바꿈은 Ln() 으로도 할 수 있습니다. 이 메소드는 줄바꿈의 크기도 정해줄 수 있습니다.

끝으로, Output() 으로 문서를 브라우저로 출력합니다. 파일명과 해당값을 전달하면, 파일로 저장할 수도 있습니다.

경고: PDF 문서를 출력하기 전이나 후에 다른 어떠한 출력도 있어서는 안됩니다. 만약에 PDF 문서를 출력하기 전에 다른 출력이 먼저 있었다면 다음과 같은 에러가 발생합니다. “Some data has already been output to browser, can’t send PDF file” PDF 문서를 출력한 이후에 다른 출력이 있었다면, 아마도 브라우저는 빈 페이지만 표시하게 될 것입니다.
________________________________________
이 글은 fpdf.org 의 tutorial 을 번역하고 일부 추가한 내용입니다.

  1. pdf문서의 내용을 추출해서 웹상에서 보여주는 걸 만들려고 하는데
    방법을 잘 몰라서요.
    그리고 pdf변환할 때 보안(내용복사 추출 불가)항목이 설정된 PDF 문서도
    텍스트를 뽑아오는 것이 가능한지요?

    다른 사이트에서 보안 설정된 PDF문서도 텍스트만 출력이 되더라구요.
    문서의 미리보기를 만들어 보려고 합니다.

  2. 안녕하세요…질문이 있어서 이렇게 글 올립니다.
    다름이 아니고 php로 FPDF를 만들고 싶은데
    도무지 어떻게 하는지 모르겠네요.
    예제를 실행하면 페이지를 표시할수 없습니다.
    이런식으로 나와요.
    그리고 fphf.php로 위에 있는 예제를 저장하면
    역시 페이지를 표시할수 없다고 나오네요?
    pdf를 만들기 위해서는 어떤 프로그램을 깔아야 하는건지요?
    홈페이지를 가보니 tuto1.php에서 fpdf.php를 불러오는듯한데
    fpdf.php파일에 뭐가 들어가 있는지 궁금합니다.

  3. 안녕하세요 먼저 소중한 자료 감사합니다..
    질문이 있습니다.

    output 함수를 쓰면 해당 pdf 파일이
    웹브라우저에서 열리는 것 같네요..
    웹브라우저에서 열리는 것 말고 서버로 바로 저장 되는 함수는 없는건가요?
    메뉴얼을 살폈는데.. 없는 것 같지만 혹시나 해서 여쭙니다~

  4. 고니님
    ‘Hello World!’
    대신에 변수를 집어넣으려면 어떻게 해야 하는지요?
    DB에 들어있는 컨텐츠를 PDF로 뿌려주려고 합니다.
    변수명은 $contents 입니다.

Leave a Reply