Php FPDF错误:无法包含字体度量文件

Php FPDF错误:无法包含字体度量文件,php,pdf-generation,fpdf,Php,Pdf Generation,Fpdf,我有一个应用程序是别人做的,现在我被要求调查一个问题 生成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::i

我有一个应用程序是别人做的,现在我被要求调查一个问题

生成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 Error:无法包含字体度量文件仍然存在。 在网上搜索时,可能的原因如下:

  • 缺少字体目录

  • 没有字体文件的访问权限

  • 我不确定需要为字体文件夹或文件夹中的文件授予什么权限。
    这方面的任何帮助都会大有帮助。

    我也有同样的问题。问题是到包含所有字体的文件夹的路径不正确。因此,我在PHP文件中添加了以下行,以反映所有字体的文件夹的正确路径

    定义('FPDF_字体路径','class/FPDF_字体/')


    因此,请仔细检查此行定义的路径,它应该可以正常工作。

    我相信您已经将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();
    ?>
    
    
    

    现在享受一下

    在我使用Linux(Debian)的情况下,我遇到了同样的问题,并且目录是正确的。我解决了向/font目录添加777权限的问题。现在它的工作原理就像charm=)

    我的问题是,由于从页面下载fpdf库,他们那里的一些脚本使用Arial字体,但是,特别是那种字体,没有包含在字体目录中。我刚刚添加了
    define('FPDF_FONTPATH','FPDF/font/')具有fpdf目录的相对路径,并将字体更改为Courier和ready

    如果您使用的是扩展FPDF的外部类

    如文件名自定义\u 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();
    
    它会很好的工作

    谢谢


    很抱歉出现了英文错误…

    在Ubuntu 10.4上,所需的定义是:define('FPDF_FONTPATH','/usr/share/php/FPDF/font/');在Debian上也是/usr/share/php/fpdf/font。请记住,如果不是,那是因为您没有安装php fpdf;)