繁体   English   中英

PHP,Fpdf分析错误:使用AddFont()时

[英]PHP , Fpdf Parse error: When using AddFont()

更改字体时,在显示PDF文件中的内容时出现问题。

<?php
session_start();
include $_SERVER['DOCUMENT_ROOT'] . "/library/fpdf.php";
$pdf = new FPDF('P',"mm",'A4');
$pdf->AddPage();
$pdf->AddFont('DejaVu','','DejaVuSans-Bold.ttf',true);
$pdf->SetFont('DejaVu','',14);
foreach ($_SESSION['settings'] as $settings) {
    $pdf->Cell(130,5,$settings,1,1);
}

$pdf->Output();
?>

我尝试与其他文件一起更改字体,但不断出现随机错误,例如:

警告:输入中出现意外字符:

要么

解析错误[我的ttf文件路径]

即使我不打印PDF中的任何内容,也只能将其保留为空白,但由于AddFont,我仍然会收到错误消息,

如果我删除

$pdf->AddFont('DejaVu','','DejaVuSans-Bold.ttf',true);
$pdf->SetFont('DejaVu','',14);

并替换为

$pdf->SetFont('Arial','',14);

它工作正常。

AddFont函数需要特定类型的文件才能使用字体,而不仅仅是字体文件本身。 如果您使用DejaVuSans-Bold.ttf文件并将其上传到此处 ,它将把它转换为您所需的格式。

将生成2个文件DejaVuSans-Bold.phpDejaVuSans-Bold.z 将这两个都复制到您的项目中,然后将代码行更改为以下内容:

$pdf->AddFont('DejaVu','','DejaVuSans-Bold.php');

以下教程中,有更多有关如何添加新字体的信息。 它包含有关如何在自己的PC上手动生成字体文件的详细信息,但是有一个在线工具(如上链接)可以为您完成:

最后,对于TrueType和OpenType字体,您也可以在线生成文件,而无需手动进行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM