首先,我知道这个问题已经在这里提出了很多问题,但我已经尝试了所有的解决方案,但仍然无法正常工作。我的账单中的符号 由“?”翻译。
我尝试了什么?
使用iconv:
iconv("UTF-8", "ISO-8859-1//TRANSLIT", '€');
iconv('UTF-8', 'windows-1252', $yourtext);
//etc.
尝试制作新字体并加载:
$pdf->AddFont('DejaVu','','DejaVuSansCondensed.ttf',true);
$pdf->AddFont('DejaVu', 'B', 'DejaVuSansCondensed-Bold.ttf', true);
//etc.
将€字符定义为常量并打印
define('EURO',chr(128));
使用utf8_encode和解码功能等
没什么,abutsutamente什么都没有对我有用。我很惊讶其中一些解决方案适用于其他人
另一个问题也是关于特殊字符。我有问题,当它有重音时保存pdf文件名
$pdf->Output('I',$number.'-'.$client.'.pdf');
windows保存文件,例如“Ô字符
我正在使用Ubuntu 16.04.3 LTS和utf-8
非常感谢你
答案 0 :(得分:0)
FPDF不支持多字节字符。您可以使用tFPDF(FPDF的衍生物)。 tFPDF使用PHP多字节字符串函数并生成以UTF-8编码的输出。 FPDF没有。
答案 1 :(得分:0)
我通常使用$pdf>TEXT(5,5,'Price: '.chr(164).' 5,00');
,它将在创建的pdf文件中写一行价格:€5,00 。
但是仅在已使用(生成的)字体文件中嵌入€符号时,该功能才有效!
开箱即用的是“ verdana或arial”,情况并非如此。
因此,查找一个不错的.TTF字体文件(例如opensans.ttf)并使用
http://www.fpdf.org/makefont/make.php生成2个需要的新字体文件,这些文件将在位置164处包含欧元符号。在该页面上使用ISO-8859-15编码来生成扩展了ascii范围的文件。新生成的字体文件分别名为opensans.php和opensans.z都需要复制到您的Web服务器的字体目录中,以便fpdf.php可以使用它们。现在,使用以下命令将新字体添加到pdf生成器中:
$pdf->AddFont('opensans','','OpenSans-Regular.php'); //regular
$pdf->SetTextColor(0, 0, 100); //textcolor
$pdf->SetFont('opensans','','6'); //activefont
$pdf>Text(5,5,'Price: '.chr(164).' 5,00'); //text starting at 5,5
完成。
答案 2 :(得分:0)
我成功地运用了多种技术:
strtr(iconv('UTF-8','CP1252',$value),[chr(128)=>chr(160)])
有关信息,fdf pdf编码最终功能:
private function encode_fdf_field($value)
{
return trim(addcslashes(strtr(iconv('UTF-8','CP1252',$value),[chr(128)=>chr(160)]),"\n\r\t\\()"));
}
答案 3 :(得分:0)
您只需将php文件编码为 ANSI
然后,如果您在单元格中写入€,它将显示€,等等!