2011-05-06 5 views
21

안녕하세요, PHP를 통해 멋지게 형식화 된 PDF 인보이스를 만들 수있는 방법을 알고 계십니까?PHP는 PDF 인보이스를 만듭니다

이상하게도 뭔가 헤더가있는 제품을 찾고 테이블의 일종으로 된 제품 목록을 찾고 있습니다. 빠른 Google 후에 PDF를 생성하는 데 익숙하지만 스타일을 시도하고 멋지게 작성하는 것이 좋을 것입니다.

감사

+1

FPDF를 발견하셨습니까? 나는 전에 그것을 들여다 보았다. .. 많은 일처럼 보였지만 약속했다. –

+1

예, 그것을 지금 보아라 - 여기에서 매우 좋은 튜토리얼 : http://www.web-development-blog.com/archives/create-pdf- documents-online-with-tcpdf/ – Martin

+0

나는 실제 REPORTS.com을 볼 것을 제안한다. 그것들은 API와 브라우저를 기반으로하는 서로 다른 템플릿을 만드는 문서 편집기이다. 머리를 숙여 봉사료를냅니다. – Tanel

답변

16

TCPDF (http://www.tcpdf.org/ 참조)를 사용하면 설정이 쉽고 어렵지 않습니다. 귀하의 데이터 소스에 따라 몇 가지 문제가있을 수 있습니다. 내 경우에는 내 데이터 내 회계 시스템에 SOAP 인터페이스에서 공급되고 내 앱 CodeIgniter의를 사용하고, 나는이 작업을 수행 할 수 있습니다

$address = $extraclient->get_company_address(); 

// generate the PDF invoice 
$this->load->library('pdfinvoice'); 

// set document information 
$this->pdfinvoice->SetSubject("Invoice " . $data_invoice['code_invoice']); 

// add a page 
$this->pdfinvoice->AddPage(); 
$this->pdfinvoice->StartPageOffset(); 

// write the client's details out 
$width = $this->pdfinvoice->GetPageWidth()/2; 
$margins = $this->pdfinvoice->getMargins(); 
$this->pdfinvoice->SetFont('times', 'b', $this->pdfinvoice->bigFont); 
$this->_row($width, array("From:", "To:")); 
$this->pdfinvoice->SetFont('times', 'i', $this->pdfinvoice->smallFont); 
$this->_row($width, array("MY NAME", $customer['name_contact'])); 
$this->_row($width, array($address['phone'], $customer['name_customer'])); 
$this->_row($width, array($address['street'], $customer['address1_street'])); 
$this->_row($width, array($address['city']. ", ".$address['state']." ".$address['zipcode'], 
          $customer['address1_city']. ", ".$customer['address1_state']." ".$customer['address1_zip 

전체 코드는 여기에 삽입 솔직히 너무 오래,하지만 당신은해야 아이디어를 얻으면 상당히 정확한 레이아웃 컨트롤을 얻을 수 있습니다.

+1

이미 phpExcel을 사용하고 있다면, 라이브러리가 내장되어 있습니다 (그래서 클래스를 호출 할 수 있습니다) – rosh3000

23

나는 당신의 PDF를 원하는의 HTML/CSS는 표현을 생성하고 PDF를 생성하는 것을 사용하는 것이 좋습니다 것입니다. 변환을 처리 할 수십 개의 응용 프로그램이 있습니다. 여기에 많은 답변이 포함 된 좋은 스레드가 있습니다. Convert HTML + CSS to PDF with PHP?

+1

답변 해 주셔서 감사합니다 +1. 이것은 좋은 해결책처럼 들리지만, 미래에 이것을 보는 사람들에게 도움이 될 것입니다. 그러나 제 상황에서는 월별로 cron을 사용하여 여러 송장을 생성해야합니다. 이것이 제가 당신의 대답을 옳은 것으로 선택하지 않은 이유입니다. – Martin

+0

전에 약간의 PDF 생성 작업을했는데 정말 고통 스러웠습니다. 티모시 (Timothy)가 이미 알고있는 것처럼 HTML로 디자인하는 것이 훨씬 쉽다. 수동으로 생성하는 유일한 이유는 페이지 나누기를 제어해야하는 경우입니다. – YeB

0

html2Pdf를보고 싶을 수 있습니다. FPDF를 기반으로하는 PHP 클래스이며 HTML에서 PDF 파일을 만들 수 있습니다. html을 사용하여 텍스트 서식을 지정한 다음 pdf 파일을 만드십시오. 매우 유연하고 greate 제어 기능을 제공합니다.

SourceForge Link

0

PDF 생성은 까다로운 경향이있다. 인보이스가 비교적 간단한 한 템플릿 이미지 파일을 만들고 imagettftext을 사용하여 문자열을 인쇄하는 것이 좋습니다 (또는 다른 라이브러리). PDF 변환 도구 제품군을 사용할 수 ImageMagick이 이미지 파일의 경우

(한이 서버에서 사용할 수있게되면) :

exec('convert -units \'PixelsPerInch\' -density 150 '.$filename.'.png '.$filename.'.pdf'); 

는 나를 위해 모든 방법은 원활했다.

0

작곡가의 php-pdf-invoice 라이브러리를 확인하십시오. 라이브러리는 인보이스 생성을 위해 이미 설계되었으므로 쉽고 빠르게 통합 할 수 있습니다!

composer require quickshiftin/php-pdf-invoice

당신은 README에 사용 예제가이

Here's a sample invoice

같이 PDF 파일을 생성 할 수 있습니다. 본질적으로 두 개의 인터페이스를 구현합니다. 하나는 주문 용이고 다른 하나는 주문 용 인터페이스입니다. 글꼴과 색상을 원하는대로 구성 할 수 있습니다.