2014-03-06 11 views
8

Ich versuche, eine Schriftart über die Befehlszeile hinzuzufügen.DOMPDF - Class 'Font' nicht gefunden

Jedes Mal, wenn ich versuche, bekomme ich den folgenden Fehler.

Fatal error: Class 'Font' not found in 
/home/scripts/public_html/MarketingPalv2/load_font.php on line 139 

Ich habe auch einen ähnlichen Fehler, wenn ich @ font-face zu verwenden versuchen

Fatal error: Class 'Font' not found in 
/home/scripts/public_html/MarketingPalv2/include/font_metrics.cls.php on line 346 

euch Hoffnung helfen können.

+1

Dieser Beitrag nahe „fehlenden Informationen“, aber * die Fehlermeldung und der Dateiname gewählt werden war alles was ich brauchte * um das zu finden und die Lösung unten. Thx, David :) – brasofilo

Antwort

8

Ich fand heraus, was es war.

Ich habe die neueste Version von php-font-lib heruntergeladen, aber ich brauchte eine ältere Version.

+4

Sie könnten anderen helfen, indem Sie uns sagen, welche Version von php-font-lib wir herunterladen müssen. – FlorianH

+3

Versionen unter 3 sind comptabile, zB: Version 0.2.2 –

2

diese Gelöst für dompdf 0.6.1 den pdf-font-lib mit von load_font.php Bearbeitung und Herstellung der Header wie folgt aussehen:

require_once "dompdf_config.inc.php";

require_once "lib/php-font-lib/classes/Autoloader.php"; Verwenden Sie FontLib \ Font;

3

Ich habe das für die Version 0.3.1/0.4 von pdf-font-lib (commit: b8af0ca) und DomPDF v6.1.0 (commit: c3527d9) funktioniert, indem Sie eine Font-Klasse, die FontLib \ Font erweitert;

<?php 
class Font extends FontLib\Font { 
    //this is a namespace fix: 
} 

Und in der Klasse, wo ich dompdf verwenden:

require_once('lib/dompdf/include/autoload.inc.php'); 
require_once('lib/dompdf/lib/php-font-lib/src/FontLib/Autoloader.php'); 
require_once('dir/where/you/placed/the/file/Font.php'); 

Nun ist die Klasse Font ist im globalen Namensraum zur Verfügung.

Ich wähle diesen Ansatz, weil ich in einer etwas dynamischeren Situation bin und die Originalbibliothek nicht ändern/bearbeiten wollte, da sie vom Master-Zweig stammt und LGPL lizenziert ist.

Beachten Sie jedoch, dass DomPDF 0.7.0 beta, das am 1. Mai veröffentlicht wird, mit der neuesten pdf-font-lib kompatibel ist. Check it out: https://github.com/dompdf/dompdf/releases/tag/v0.7.0-beta

1

I dompdf-Master V.0.6.1 verwendet, ich löste es durch

require_once "../lib/php-font-lib/classes/Autoloader.php"; use FontLib\Font;-font_metrics.cls.php, wenn ich neue Schriftart installieren

1

Ich habe diese Arbeit für die Version v6.1 dompdf von

use FontLib\Font; 

in die Datei font_metrics.cls.php oben

class Font_Metrics { 
Zugabe
0

Ich hoffe, das wird jemandem helfen.

Falls Sie diese Fehlermeldung erhalten,

Fatal error: Class 'Font' not found in dompdf/include/font_metrics.cls.php on line xxx 

Sie haben, wie unten dompdf/include/font_metrics.cls.php Datei zu ändern. So wird es aussehen;

require_once DOMPDF_LIB_DIR . "/class.pdf.php"; 
require_once DOMPDF_LIB_DIR."/php-font-lib/classes/Autoloader.php"; 
use FontLib\Font; 

Sie müssen nur die zweiten & dritten Zeilen hinzuzufügen.Der Erste wird schon da sein.

0

fixiert ich das Problem durch Änderung dompdf/include/font_metrics.cls.php Datei als Gebrüll

require_once DOMPDF_LIB_DIR . "/class.pdf.php"; 
require_once DOMPDF_LIB_DIR."/php-font-lib/classes/Autoloader.php"; 
use FontLib\Font; 

kopieren hinter diesem Code auf