2016-02-05 107 views
2

我想在PDF文件中以編程方式添加了一些條形碼,但我認爲我沒有正確理解有關positioning.Here的我的代碼如何手動位置TCPDF

$pdf = new TCPDF("L", "mm", array(80, 40), true, 'UTF-8', false); 
    $pdf->SetMargins(3, 3, 3); 

    // remove default header/footer 
    $pdf->setPrintHeader(false); 
    $pdf->setPrintFooter(false); 

    $pdf->setFontSubsetting(true); 
    $pdf->SetFont('freeserif', '', 12); 

    foreach ($barcodes as $barcode){ 

     $pdf->AddPage(); 

     $x = $pdf->GetX(); 
     $y = $pdf->GetY(); 

     $style = array(
      'border' => true, 
      'hpadding' => 'auto', 
      'vpadding' => 'auto', 
      'fgcolor' => array(0,0,0), 
      'bgcolor' => false, //array(255,255,255), 
      'text' => true, 
      'font' => 'helvetica', 
      'fontsize' => 8, 
      'stretchtext' => 4 
     ); 
     //$pdf->Cell(30, 1, 'EAN 13', 0, 1); 
     $pdf->write1DBarcode($barcode, 'EAN13', '5', '6', '60', 14, 0.4, $style, 'N'); 

} 

結果我的東西條形碼得到就像圖像或任何方式甚至不接近輸出的條形碼,我希望它是,我不知道爲什麼。我想感謝所有幫助

at 6

如果我使用 $pdf->write1DBarcode($barcode, 'EAN13', '5', '5', '60', 14, 0.4, $style, 'N');

at 5

沒有空的PDF頁面,但條形碼仍非常高。我希望它從左上角的三分之一左右14毫米這就是爲什麼我試圖撥弄y變量write1DBarcode

+0

下面是文檔:http://www.tcpdf.org/doc/code/classTCPDF.html#a4816d61822a4bad6e35bb441c1699aab 它說:「用戶單位」,你可能要與x玩, y定位更多,使數字更加極端,看看會發生什麼。另外,對齊部分也可能有幫助。 – Asperon

+0

感謝您的迴應。我讀過文檔,用戶單元應該是在tcpdf類的構造函數中定義的用戶度量單位。所以我將它們設置爲mm,這也是默認單位,如果我將y設置爲負數,例如-20,並一直到+5,它將相應地在y軸上移動,因爲它應該如此。我不明白的是,在+6以上,它不會沿着軸向下移動,而是自動啓動一個新頁面。我一直在嘗試不同的值和路線過去2小時,沒有任何顯着差異恐怕 – gabtzi

+0

您是否嘗試過其他單位?像「px」? – Asperon

回答

3

經過大量的擺弄我發現它。

添加

$pdf->SetAutoPageBreak(TRUE, 0); 

作出autobreak行爲正確

我的猜測是,下邊距默認設置是圍繞垂直不能使用設置對齊搞亂$ PDF-> SetMargins 。在任何情況下,問題都解決了。感謝試圖幫助