2013-02-22 25 views
26

Sto cercando di ottenere dompdf in esecuzione su un server interno. Con le impostazioni predefinite file config.inc.php, ricevo il seguente quando si esegue l'equivalente della demo script 'Ciao Wolrd':dompdf non riesce a caricare

Warning: require_once(/var/www/dompdf-master/lib/php-font-lib/classes/font.cls.php): failed to open stream: No such file or directory in /var/www/dompdf-master/dompdf_config.inc.php on line 335 
Fatal error: require_once(): Failed opening required '/var/www/dompdf-master/lib/php-font-lib/classes/font.cls.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/dompdf-master/dompdf_config.inc.php on line 335 

Quando spengo DOMPDF_ENABLE_AUTOLOAD, ottengo non è più questo avviso, ma il codice riesce con il seguente:

Fatal error: Class 'DOMPDF' not found in /var/www/rfq/test.php on line 115 

Quello che segue è il codice:

require_once("/var/www/dompdf-master/dompdf_config.inc.php"); 

$dompdf = new DOMPDF(); // this is the line that fails 
$dompdf->load_html($quotehtml); 
$dompdf->render(); 
$dompdf->stream("rfq".$_REQUEST['quoteid'].".pdf"); 

si tratta di Ubuntu 12.04, up-to-date sulle patch, con le impostazioni predefinite di Apache.

Grazie mille.

+3

possibile duplicato del [PHP-font -lib deve essere installato tramite compositore o copiato in lib/php-font-lib] (http://stackoverflow.com/questions/13431905/php-font-lib-must-deither-be-installed-via-composer- o-copiato-a-lib-php-font-lib) –

+0

Chiunque stia leggendo e avendo problemi anche dopo aver aggiunto 'php-font- lib' cambia il nome del file 'Font.php' in' font.cls.php' sulla riga 332 di 'dompdf_config.inc.php' – Sisir

risposta

72
  • Vai a https://github.com/PhenX/php-font-lib e scarica la libreria.
  • Creare la directory dompdf/lib/php-font-lib/classes/.
  • Nel file zip, prendere il contenuto della cartella src/FontLib/ e incollarlo nella directory appena creata.

Sembrava funzionare per me.

+0

Funziona bene. Upvoted. Grazie :) – Gogol

+0

Grazie mille ... – ravisoni

+0

Grazie .... Sta funzionando ... –

0

Se si utilizza il compositore per installare dompdf, è necessario inserire define("DOMPDF_ENABLE_AUTOLOAD", false); in dompdf_config.custom.inc.php. Ciò consentirà quindi al compositore di caricare automaticamente php-font-lib come è già installato. (Vedere questo numero: https://github.com/dompdf/dompdf/issues/636)

Se non si sta utilizzando il compositore, vedere la risposta di Mikepote.

0

Se l'errore non viene corretto dopo aver fatto quello che altre risposte suggeriscono:

In dompdf_config.inc.php, change line 332 to point to the actual location of your Font.php file. 
mine was /php-font-lib/src/FontLib 

Non c'è nessuna cartella classi che è stato menzionato lì.

0

Avevo quasi lo stesso identico problema. Il mio codice stava lavorando sulla mia macchina di sviluppo locale - una scatola di Windows - ma non funzionava sul nostro server di produzione - una scatola Linux

Il problema era che la directory "classes" era minuscola (\ app \ Vendor \ dompdf \ lib \ php-font-lib \ classes) a cui Windows non dispiaceva, ma Linux faceva distinzione tra maiuscole e minuscole!

Semplicemente modificando la seguente riga in dompdf_config.inc.php ha risolto il problema:

require_once(DOMPDF_LIB_DIR . "/php-font-lib/Classes/Font.php"); 

Per coerenza ho rinominato la directory con una maiuscola "C" sulla scatola di Windows.

0

La nuova versione di dompdf non funziona con "compositore install" o "compositore di aggiornamento". Ha bisogno di versioni speciali di librerie di font che potrebbero non essere sempre le ultime versioni, quindi questo potrebbe cambiare in futuro. Ma puoi trovare come installarlo tramite la documentazione di dompdf. Non so perché gli autori non abbiano codificato hardcoded queste versioni di font all'interno di composer.json, ma comunque ecco come farlo.

Attualmente il modo più semplice e migliore di utilizzare la libreria è via git (preso dalla documentazione ufficiale)

git clone https://github.com/dompdf/dompdf.git 
cd dompdf 

git clone https://github.com/PhenX/php-font-lib.git lib/php-font-lib 
cd lib/php-font-lib 
git checkout 0.4 
cd .. 

git clone https://github.com/PhenX/php-svg-lib.git php-svg-lib 
cd php-svg-lib 
git checkout v0.1 

allora si può solo fare

use Dompdf\Dompdf; 
$dompdf = new Dompdf(); 
$dompdf->loadHtml('hello world'); 
$dompdf->setPaper('A4', 'landscape'); 
$dompdf->render(); 
$dompdf->stream("/path-to-save-pdf-file/sample.pdf"); 
Problemi correlati