【发布时间】:2015-08-07 19:26:05
【问题描述】:
我正在使用 mPDF 生成工资单。但是,工资单中的图标一旦生成就不会显示。它只留下一个空白,就像这样:
图标应显示在这些突出显示的位置上。 到目前为止,这是我所做的:
我正在使用 Yii2 PHP 框架,这是我的动作控制器:
public function actionPdf($id)
{
$model = $this->findModel($id);
$earnings = EarningDetails::find()->where(['payslip_id' => $model->_id, 'status' => 1])->all();
$deductions = DeductionDetails::find()->where(['payslip_id' => $model->_id, 'status' => 1])->all();
$html = $this->render('view', [
'model' => $model,
'earnings' => $earnings,
'deductions' => $deductions,
]);
$mpdf = new mPDF('c','A5-L','0','',0,4,1,1,0,0);
$mpdf->allow_charset_conversion = true;
$mpdf->charset_in = 'windows-1252';
$mpdf->SetTopMargin(0);
$user_password = User::find()->where(['_id' => $model->user_id ])->one();
$password = $user_password->fname.$user_password->lname;
$mpdf->SetProtection(array(), $password, $password);
$mpdf->WriteHTML($html);
$mpdf->Output('Payslip.pdf', 'D');
exit;
}
我错过了什么吗?请告诉我。
【问题讨论】:
-
正如我在对C# ItextSharp Fontawesome Icons ( currency ) - PDF 的回答中所解释的,您正在对可能需要 UNICODE 的符号使用 Windows-1252 编码。
-
那你是什么意思?这个问题与c#有关
-
它是法语的,但请看一下此博客中的屏幕截图:Utilisation de polices: PDF et iText。您会看到某些屏幕截图中缺少某些字符,因为使用了错误的编码。双字节 Unicode 字符
\uf0d6与两个单独的单字节字符之间存在差异,其值为 240 (0xF0) 和 214 (0xD6)。也许这就是你的问题。 -
对不起,我不太明白。你建议我做什么?
-
你可以开始学习更多关于字体和编码的知识。向我们展示 PDF。也许您甚至没有使用 Fontawesome 字体(它可能不会显示在“文档”>“属性”下的“字体”面板中)。