2014-08-28 5 views
18

Aus irgendeinem Grund dompdf wird kein Bild machen, die in der HTML, die analysiert wird:dompdf: Bild nicht lesbar oder leer

PDF Image missing

Jedoch wird das Bild auf der Seite gemacht wird, wenn es wird als html zurückgegeben:

HTML Image exists

ich bei diesen Themen haben gesucht und darauf achten müssen, dass DOMPDF_ENABLE_REMOTE auf true und verifizierte Dateiberechtigungen festgelegt ist:
Image error in DOMPDF for ZF2

Gibt es noch andere Dinge, nach denen ich suchen sollte?

+2

Ist die PHP-Einstellung 'allow_url_fopen' auf 'true' gesetzt? Wenn Sie 0.6.x verwenden, können Sie dompdf/www/setup.php laden, um zu sehen, ob in Ihrer Installation rote Markierungen vorhanden sind. – BrianS

Antwort

37

following me wie Charme half hilft, zumindest localy und sogar mit

def("DOMPDF_ENABLE_REMOTE", false); 

Die Lösung besteht darin, den Image-SRC in den absoluten Pfad auf dem Server zu ändern:

<img src="/var/www/domain/images/myimage.jpg" /> 

Al l der folgenden arbeitete für mich:

<img src="<?php echo $_SERVER["DOCUMENT_ROOT"].'/placeholder.jpg';?>"/> 
<img src="<?php echo $_SERVER["DOCUMENT_ROOT"].'\placeholder.jpg';?>"/> 
<img src="<?php echo $_SERVER["DOCUMENT_ROOT"].'./placeholder.jpg';?>"/> 

$ _SERVER [ "DOCUMENT_ROOT"] ist C:/wamp/www/ZendSkeletonApplication/public

Thanks to this: lost in code

+0

Danke, Sie haben meinen Tag gerettet. –

+0

funktioniert nicht. Nicht funktioniert – Blauhirn

+0

Putting in Dateisystempfad funktionierte für mich. – FatalError

5

Ok hatte ich das gleiche Problem mit dem Bild mit:

Aber wenn ich ein hinzuzufügen. vor/Bilder, ohne etwas in dompdf_config.custom.inc zu ändern, funktioniert es

<img id="logo" src="./images/flags/fr.png" width="50" alt="Logo"> 

Hoffe, dass es

+3

Der Grund, der funktionierte, ist, weil Sie ursprünglich nach dem Bilderverzeichnis im Stamm suchen. Das "./" bedeutet nur "schau in dieses Verzeichnis". Sie könnten tatsächlich die "./" entfernen und es wird immer noch funktionieren. – hellaminx

+0

Hat nicht geholfen. :( –

+1

Sie Regel. Ich war dabei, eine Menge Sachen neu zu ordnen! –

2

In Pfad:

anbieter/dino/dompdf-modul/config/module.config.php

Einstellungen ändern

enable_remote‘=> false,

то wahr.

+0

Für neuere Versionen hat sich die Art, wie Sie diese Einstellung festgelegt haben, offenbar geändert: https://Stackoverflow.com/a/45362099/405015 – thirtydot

2

Keine der Lösungen hier funktioniert für mich. Stattdessen habe ich einfach das Bild base64 kodiert und dann hat es funktioniert. Sie können diese tool verwenden.

+1

Gleiches mit. Keine der Lösungen funktionierte zuletzt versucht base64 dank dieses Kommentars und es hat funktioniert –

3

Da es eine andere Antwort gab, die vorschlägt, die Fernoption in module.config.php zu aktivieren, und ich noch keine Kommentare hinzufügen kann, dachte ich, es wäre am besten zu beantworten, dass diese Datei in neueren Versionen von DomPDF nicht existiert.

Wenn Sie entfernt gespeicherten Bilder in einer neueren Version enthalten müssen Sie es als Option an den Konstruktor übergeben müssen:

$dompdf = new Dompdf(array('enable_remote' => true)); 

Das reparierte die Frage, die ich hatte.

0

Ich löse dieses Problem, indem ich den vollständigen Pfad des externen CSS benutze. Dieser arbeitete auf meinem Linux-Ubuntu-Server:

<link href="{{ public_path('css/style.css') }}" />

<img src="{{ public_path('images/image.jpg') }}" />

und auf dem Bild arbeiten.

+0

Wenn Sie Beispielcode bereitstellen, stellen Sie es bitte als ein Beispiel zur Verfügung, um das Problem für den Fragesteller zu beheben (IE Beispielcode mit einem vollständigen Pfad zu einem Bild und nicht ein Stylesheet seit dieser Frage ist) über ein Bild.) – Loren