FPDF 错误:无法包含字体度量文件
Posted
技术标签:
【中文标题】FPDF 错误:无法包含字体度量文件【英文标题】:FPDF error: Could not include font metric file 【发布时间】:2011-09-25 03:31:48 【问题描述】:我有一个由其他人完成的应用程序,现在我被要求调查一个问题。
生成 pdf 报告时会引发错误。此应用使用 FPDF 生成 PDF
FPDF error: Could not include font metric file
之前它抛出以下错误
Warning: FPDF::include(helveticab.php) [function.FPDF-include]: failed to open stream: No such file or directory
Warning: FPDF::include() [function.include]: Failed opening 'helveticab.php' for inclusion
FPDF error: Could not include font metric file
这是通过包含一个包含 helveticab.php 和其他与其他字体相关的 php 文件的字体文件夹来解决的
但错误 仍然存在。 在网上搜索可能的原因是
字体目录丢失
没有字体文件的访问权限。
我不确定需要对字体文件夹或文件夹中的文件授予什么权限。 在这方面的任何帮助都会有很大帮助。
【问题讨论】:
【参考方案1】:我有同样的问题。问题是包含所有字体的文件夹的路径不正确。因此,我在 PHP 文件中添加了更新的以下行,以反映包含所有字体的文件夹的正确路径。
define('FPDF_FONTPATH','class/fpdf_font/');
所以,仔细检查这条线定义的路径,它应该可以正常工作。
【讨论】:
在 Ubuntu 10.4 上,需要的定义是:define('FPDF_FONTPATH','/usr/share/php/fpdf/font/'); 在 Debian 上也是 /usr/share/php/fpdf/font。请记住,如果不是,那是因为您没有安装 php-fpdf ;)【参考方案2】:我相信您已经将 fpdf zip 文件解压到您的本地主机或系统中
解压 zip 文件后,您会看到如下图所示的目录结构
并在test.php中插入以下代码
<?php
define('FPDF_FONTPATH','font/');
//above line is import to define, otherwise it gives an error : Could not include font metric file
require('fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>
现在享受
【讨论】:
【参考方案3】:我的问题是,由于从页面下载 fpdf 库,他们那里的一些脚本使用 Arial 字体,但是,特别是该字体,不包含在字体目录中。我刚刚添加了 define('FPDF_FONTPATH','fpdf/font/');
和 fpdf 目录的相对路径,并将字体更改为 Courier 并准备好了!
【讨论】:
【参考方案4】:在我使用 Linux (Debian) 的情况下,我遇到了同样的问题,并且目录是正确的。我解决了向 /font 目录添加 777 权限的问题。现在它就像魅力一样工作 =)))
【讨论】:
【参考方案5】:如果您使用的是扩展 FPDF 的外部类
喜欢的文件名Custom_pdf.php
在那个文件中你写了你的自定义代码
require_once('fpdf.php')
class Custom_PDF extends FPDF
...
然后你像这样包含在你的编码中
require_once('custom_pdf.php');
$pdf = new Custom_pdf();
$pdf->Write();
....
$pdf->output();
这是个问题……
所以你直接把代码放到你需要的文件里
require_once('fpdf.php')
class Custom_PDF extends FPDF
....
$pdf = new Custom_pdf();
$pdf->Write();
...
$pdf->output();
它会正常工作...
谢谢
抱歉英文错误...
【讨论】:
以上是关于FPDF 错误:无法包含字体度量文件的主要内容,如果未能解决你的问题,请参考以下文章
FPDF 错误:一些数据已经输出,无法发送 PDF 文件。尝试了一切,但没有任何帮助