PHP , Fpdf 解析错误:使用 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 字体,您还可以在线生成文件,而不是手动生成。

注意:在线转换时,您可能会收到一些警告,指出缺少某些字符。如果您滚动到底部,转换后的文件仍然可以下载,只是您将无法使用 PDF 中列出的任何缺失字符。

最新更新