我有一个由其他人完成的应用程序,现在我被要求调查一个问题。
生成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文件来解决这个问题
但错误FPDF错误:无法包含字体指标文件仍然存在。 在网上搜索可能的原因是
缺少字体目录
没有字体文件的访问权限。
我不确定该文件夹中的字体文件夹或文件需要什么权限。 在这方面的任何帮助都会有很大的帮助。
答案 0 :(得分:10)
我有同样的问题。问题是包含所有字体的文件夹路径不正确。所以,我添加了更新PHP文件中的以下行,以反映包含所有字体的文件夹的正确路径。
定义( 'FPDF_FONTPATH', '类/ fpdf_font /');
因此,请仔细检查此行定义的路径,它应该可以正常工作。
答案 1 :(得分:5)
我相信你已经将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();
?>
现在享受
答案 2 :(得分:1)
我的问题是,由于从页面下载了fpdf库,他们在那里使用的一些脚本使用了Arial字体,但特别是那种字体没有包含在fonts目录中。我刚刚添加了define('FPDF_FONTPATH','fpdf/font/');
与fpdf目录的相对路径,并将字体更改为Courier并准备就绪!
答案 3 :(得分:0)
在我的情况下,我使用Linux(Debian),我有同样的问题,目录是正确的。我解决了向/ font目录添加777权限的问题。现在它就像魅力=)))
答案 4 :(得分:0)
如果您正在使用扩展FPDF的外部类
如文件名 Custom_pdf.php
在那个文件中你写了你的cutom代码
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();
它会正常工作......
谢谢
抱歉英语错误......