fpdf希腊字符显示像中文

时间:2016-09-10 22:52:33

标签: php email fpdf

我正在使用带有php条形码的fpdf,使用以下代码从表单创建pdf附加邮件

  // -------------------------------------------------- //
  //                      USEFUL
  // -------------------------------------------------- //
    class eFPDF extends FPDF{
    function TextWithRotation($x, $y, $txt, $txt_angle, $font_angle=0)
    {
        $font_angle+=90+$txt_angle;
        $txt_angle*=M_PI/180;
        $font_angle*=M_PI/180;

        $txt_dx=cos($txt_angle);
        $txt_dy=sin($txt_angle);
        $font_dx=cos($font_angle);
        $font_dy=sin($font_angle);

        $s=sprintf('BT %.2F %.2F %.2F %.2F %.2F %.2F Tm (%s) Tj ET',$txt_dx,$txt_dy,$font_dx,$font_dy,$x*$this->k,($this->h-$y)*$this->k,$this->_escape($txt));
        if ($this->ColorFlag)
            $s='q '.$this->TextColor.' '.$s.' Q';
        $this->_out($s);
    }
  }


  // -------------------------------------------------- //
  //                  PROPERTIES
  // -------------------------------------------------- //

  $fontSize = 10;
  $marge    = 10;   // between barcode and hri in pixel
  $x        = 430;  // barcode center
  $y        = 660;  // barcode center
  $height   = 25;   // barcode height in 1D ; module size in 2D
  $width    = 1;    // barcode height in 1D ; not use in 2D
  $angle    = 0;   // rotation in degrees

  $code     = ''.$_POST['barcode'].''; // barcode, of course ;)
  $type     = 'code128';
  $black    = '000000'; // color in hexa


  // -------------------------------------------------- //
  //            ALLOCATE FPDF RESSOURCE
  // -------------------------------------------------- //

  $pdf = new eFPDF('P', 'pt');
  $pdf->AddPage();
  $pdf->Image('e-invitation-gr.jpg',0,0,600);



  // -------------------------------------------------- //
  //                      BARCODE
  // -------------------------------------------------- //

  $data = Barcode::fpdf($pdf, $black, $x, $y, $angle, $type, array('code'=>$code), $width, $height);

  // -------------------------------------------------- //
  //                      HRI
  // -------------------------------------------------- //

  $pdf->SetFont('Arial','B',$fontSize);
  $pdf->SetTextColor(0, 0, 0);
  $len = $pdf->GetStringWidth($data['hri']);
  Barcode::rotate(-$len / 2, ($data['height'] / 2) + $fontSize + $marge, $angle, $xt, $yt);
  $pdf->TextWithRotation($x + $xt, $y + $yt, $data['hri'], $angle);
  $pdf->SetY(610);
$pdf->SetX(370);
$txt=''.$_POST['surname'].'  '.$_POST['name'].'';
$field = iconv('UTF-8', 'cp1252', $txt);
  $pdf->Cell(0,0,$field);
 $pdf->SetY(630);
$pdf->SetX(390);
  $pdf->Cell(0,0,''.$_POST['company_name'].'');


// email stuff (change data below)
$company_name =$_REQUEST['company_name'];
$surname =$_REQUEST['surname'];
$mail =$_REQUEST['mail'];
$email =$_REQUEST['mail'];
$name= $_REQUEST['name'];

我已经测试了所有可能的解决方案,但iconv根本不起作用,utf8解码显示????个字符。 无论如何使用fpdf或者我应该更改插件吗?

2 个答案:

答案 0 :(得分:1)

忘记fpdf并转到 tfpdf 以获得解决方案。 关于字体的最新fpdf文档。它支持如下角色 cp1250(中欧)
cp1251(西里尔文)
cp1252(西欧)
cp1253(希腊文)
cp1254(土耳其语)
cp1255(希伯来语)
cp1257(波罗的海)
cp1258(越南语)
cp874(泰国)
ISO-8859-1(西欧)
ISO-8859-2(中欧)
ISO-8859-4(波罗的海)
ISO-8859-5(西里尔文)
ISO-8859-7(希腊文)
ISO-8859-9(土耳其语)
ISO-8859-11(泰国)
ISO-8859-15(西欧)
ISO-8859-16(中欧)
KOI8-R(俄语)
KOI8-U(乌克兰语)。

答案 1 :(得分:0)

这可能有所帮助:

drawableRight