2012-04-10

PHP 產生 PDF 郵政劃撥單

採用 TCPDF 輸出 PDF,先把劃撥單圖檔放上,再用 SetXY 設定座標後填上字。劃撥單可至郵局下載,建議輸出成 150dpi 的圖檔之後轉 pdf 會比較清楚。
require_once('./tcpdf/tcpdf.php');

$pdf = new TCPDF('L', 'mm', 'A4', true, 'UTF-8', false);
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(false);
$pdf->AddPage();
$pdf->Image('./post.png', '', '', 210, '', 'PNG', '', '', true, 300, '', false, false, 0, false, false, false);
$pdf->SetFont('msungstdlight', '', 28);
$pdf->SetXY(16, 16);
$pdf->Write(0,'1 2 3 4 5 6 7 8');
$pdf->SetFont('msungstdlight', '', 28);
$pdf->SetXY(123, 19);
$pdf->Write(0,'2 6 0 0');
$pdf->SetFont('msungstdlight', '', 20);
$pdf->SetXY(84, 31);
$pdf->Write(0,'XXXX基金會');
$pdf->SetFont('msungstdlight', '', 14);
$pdf->SetXY(10, 30);
$msg = '
 【客戶資料】
  姓名:測試用
  電話:0900000000
 【訂單資料】
  Ax1000
  Bx1000';
$pdf->Write(0, $msg);
$pdf->Output('example.pdf', 'I');

3 則留言:

  1. 請教您,我輸出pdf的結果,中文都ok,但英文與數字有些奇怪,像是字體會變大,字與字之間空隙也變大,甚至英數字型看起來與您的結果不一樣,請問是不是我有那些設定沒有注意到呢?謝謝。

    回覆刪除
    回覆
    1. 我猜可能和系統與字型處理有關。範例只是大概秀一下,實際使用的話我也是花不少時間在微調內容的字型、大小、位置。例如帳號範例中是用空白來拉開數字間的距離,仔細看的話並沒有每個字都對在格子中央,龜毛一點的作法就是每個字都定位,先定好 y 後再慢慢調整 x。

      刪除
  2. 謝謝,原來是字型不對,終於找到合適的字型了。

    回覆刪除