2017-04-11 107 views
0

我想在PDF模板上寫一些文本,並使用以下代碼實現: FPDF & FPDI庫。使用FPDF&FPDI&TCPDF

我的代碼:

<?PHP 

include_once('fpdf.php'); 
require_once('fpdi.php'); 

$dbhost="xxx"; 
$dbuser="xxx"; 
$con = mysqli_connect($dbhost,$dbuser, ""); 
if (!$con) 
    { 
     printf("Connect failed: %s\n", mysqli_connect_error()); 
     exit(); 
    } 
mysqli_select_db($con,'ecertificate'); 

$id = $_GET['id']; 

$result = mysqli_query($con,"SELECT `eventinfo`.`Date`,`eventinfo`.`template`,`eventinfo`.`cer_title`, `attendeesinfo`.`fullName`, 
`attendeesinfo`.`email`,`attendeesinfo`.`eventID` 

FROM `attendeesinfo` INNER JOIN `eventinfo` ON 
`attendeesinfo`.`eventID`=`eventinfo`.`ID` WHERE `attendeesinfo`.ID='$id'"); 
if (mysqli_num_rows($result) > 0) 
    { 
     while($row = mysqli_fetch_assoc($result)) 
      { 
       $cer_title =$row['cer_title']; 
       $date =$row['Date']; 
       $template =$row['template']; 
       $fullName =$row['fullName']; 
       $email =$row['email']; 
       $event_ID = $row['eventID']; 
      } 
$newDate = date("d-m-Y", strtotime($date)); 

$pdf =& new FPDI(); 
$pdf->addPage('L'); 
$pagecount = $pdf->setSourceFile('template/'.$template); 
$tplIdx = $pdf->importPage(1); 
$pdf->useTemplate($tplIdx); 
$pdf->SetFont('Times','IB',30); 
$pdf->SetTextColor(0,0,0); 
$pdf->SetXY(0,62); 
$pdf->Cell(0, $height, $fullName, 0, 0, 'C'); 
$pdf->SetXY(0, 102); 
$pdf->Cell(0, $height, $cer_title, 0, 0, 'C'); 
$pdf->SetFont('Times','IB',20); 
$pdf->SetXY(0, 140); 
$pdf->Cell(0, $height, $newDate, 0, 0, 'C'); 
$pdf->Output(); 
} 
?> 

問題是

在寫阿拉伯文字(UTF-8編碼)的情況下,文本顯示爲問號。

我解決這個問題

旅程我發現TCPDF支持UTF-8的Unicode和從右到左的語言(https://tcpdf.org/),當我用它,我發現了一些像setSourceFile方法是不支持(調用未定義的方法TCPDF :: setSourceFile()) 然後我發現這個問題的解決方案是從FPDI和FPDF繼承類,我無法實現這一點,所以我在這裏停止...

請問幫幫我吧n改變我的代碼使用所有的庫,所以英文和阿拉伯文後面的情況不會成爲問題。

回答

0

在FPDI之前只需要TCPDF而不是FPDF。然後FPDI將擴展TCPDF。

+0

非常感謝你^ _ ^ – Learner