2011-01-09 2 views
1

fpdf를 사용하여 테이블을 만드는 데 문제가 있습니다.FPDF 테이블을 만드는 방법은 무엇입니까?

누구나이 페이지를 만드는 데 도움을 줄 수 있습니까 (아니면 최소한 어떻게해야하는지)?

또는 당신은 어떻게 FPDF 테이블에 HTML 테이블을 변환하고, 여기에 코드를 삽입 보일 수 있는가?

$person = mysql_fetch_array($result); 

내가이 = (예)로 테이블 내부에 추가 할 때이 기능을 싶습니다

$pdf->Cell(0,260,''.$person["CA"],'C',0 ,1); --- .$person["CA"] 

수 :

또한 (데이터베이스에 대한 연결과 함께)이이 누구 도와 줘?

+0

무엇이 특정한 문제입니까? – deceze

+0

그냥 테이블을 만들 수 없습니다 ... 예를 들어 fpdf에서 제공하는 자습서를 따라 countries.txt에서 추출한 텍스트를 표시하면 ... 그러나 $ _POST 함수에서 텍스트를 추출하고 싶습니다. http://puertoricohoops.net/invoicestimate/pdf/pdf8.php - 테이블 안의 텍스트는 .txt 파일에서 추출되지만, 내 $ _POST 함수로 채워지는 곳을 원합니다. thnx가 도와 주려고합니다 – NORM

답변

6

글쎄, FPDF는 타자기와 비슷합니다. FPDF는 타자기와 비슷하게 작동합니다. 수동으로 이동할 수 있거나 이동을 할 수있는 로빙 X, Y 포인트가 있습니다.

왼쪽의 거대한 공백이 필요한지 나는 알 수 없습니다. 그렇다면 각 쓰기 전에 $ this-> SetX ($ 좌표)를 호출해야합니다. PDF를 생성 할 때,이 같은 것을 할 거라고 그런

class InvoicePDF extends FPDF //Create a new class to contain the header/footer/etc. which extends FPDF 
{ 
    public function Header 
    { 
    //Header stuff goes here, like the big Invoice 
     $this->SetY(10); //SetY 10 units down from the top, experiment with distance to get appropriate distance 
     $this->SetFont('Arial','',20); //Set Font to Arial/Helvetica 20 pt font 
     $this->SetTextColor(0,0,0); //Set Text Color to Black; 
     $this->Cell(0,9,"INVOICE",0,0,'R'); //Write the word INVOICE Right aligned in a box the width of the page, will put it at the far right of the page 
    } 

    public function Footer 
    { 
     //any footer stuff goes here 
    } 

    public function FillHeadInfo($info) //$info would be an array of the stuff to fill the small table at the top 
    { 
      $this->SetY(0); //reset the Y to the original, since we moved it down to write INVOICE 
      $this->SetFont('Arial','',12); 
      $this->SetFillColor(224,224,224); //Set background of the cell to be that grey color 
      $this->Cell(20,12,"Order #",1,0,'C',true); //Write a cell 20 wide, 12 high, filled and bordered, with Order # centered inside, last argument 'true' tells it to fill the cell with the color specified 
      $this->Cell(20,12,"Coding",1,0,'C',true); 
      $this->Cell(20,12,"Sales Code",1,1,'C',true); //the 1 before the 'C' instead of 0 in previous lines tells it to move down by the height of the cell after writing this 

      $this->Cell(20,12,$info['ordernum'],1,0,'C'); 
      $this->Cell(20,12,$info['coding'],1,0,'C'); 
      $this->Cell(20,12,$info['salescode'],1,1,'C'); 

      $this->Cell(40,12,"Name & Address",1,0,'C',true); 
      $this->Cell(20,12,"Date",1,1,'C',true); 
      $y = this->GetY(); //Need the current Y value to reset it after the next line, as multicell automatically moves down after write 
      $x = this->GetX(); // Might need the X too 
      $this->MultiCell(40,12,$info['customername'] . "\n" . $info['address'] . "\n" . $info['city'] . ', ' . $info['state'] . ' ' . $info['zip'],1,'L',false); //I assume the customer address info is broken up into multiple different pieces 
      $this->SetY($y); //Reset the write point 
      $this->SetX($x + 40); //Move X to $x + width of last cell 

      $this->Cell(20,36,date("format",strtotime($info['date'])),1,1,'C'); //Might be easier to use $this->Rect() to draw rectangles for address and date and then write the address and date into them without borders using SetX and SetY, if the borders don't line up or whatever 

    } 

    public function fillItems($items) 
    { 
      //You'd build the items list much the same way as above, using a foreach loop or whatever 
      //Could also easily combine this function and the one above 
    } 
} 

:

당신은 이런 일을해야 그런데

require_once('fpdf.php'); 
require_once('class.invoicepdf.php'); 
//Get whatever info you need to fill the pdf 
$pdf = new InvoicePDF('P','mm','Letter'); 
$pdf->AddPage(); 
$pdf->FillHeadInfo($info); //Could also pass $_POST and rely on the keys of the $_POST array 
$pdf->FillItems($items); 
$pdf->Output('filename.pdf','I'); 

을, 나는 노력보다는 좋을 것 $ _POST에서 쓰려면 DB에 주문을 저장 한 다음 주문 ID를 스크립트에 전달하여 링크 및 $ _GET을 통해 pdf를 작성하고 스크립트가 DB에서 정보를 검색하도록하십시오. 필요한 정보 만 선택하십시오.

+0

thnx가 응답합니다 . 코드 해봤 니? PHP는이 오류를 제공합니다 : 구문 분석 오류 : 예기치 않은 '{', '('(공개 함수 헤더 아래) 예상 - 또한 필자의 경우 빌드 항목 목록을 이해하지 못한다. "] = address ?? – NORM

+0

이 파일을 얻었습니까? class.invoicepdf.php – NORM

+0

구문 분석 오류 : 예기치 않은 T_OBJECT_OPERATOR ..이 줄은 다음과 같습니다. $ y = this- > GetY (0); $ x = this-> GetX (0); .. 만약 내가 그것들을 제거한다면 나는 왜곡 될 수있다. http://puertoricohoops.net/invoicestimate/pdf/pdf9.php - 예를 들어 링크에서 코드가 좋을 때 .. 고맙습니다. – NORM