Sur mon serveur, le pdf généré via dompdf n’affichait pas les images. Parce qu’il s’agit d’images url distantes (les images locales fonctionnent bien) , Alors je sais qu’il faut quelques paramètres pour restituer les images distantes. .
allow_url_fopen = true => i can not as server control is not in my hand.(and no one will suggest to do this due to security reasons)
read/write access to the DOMPDF_TEMP_DIR (already have this)
DOMPDF_ENABLE_REMOTE = true (already have this)
Donc, pour être certain du problème de allow_url_fopen, j’ai mis la valeur false dans mon hôte local qui donne maintenant le même résultat que serveur.
Le problème est maintenant que je souhaite afficher des images distantes dans PDF avec allow_url_fopen = false
Quelqu'un peut-il me suggérer comment afficher une image au format pdf, s'il vous plaît? L'erreur que j'obtiens toujours est ...
Image not found
http://localhost/dompdf/image.php
et
Image not found
http://localhost/dompdf/image.jpg
J'ai eu le même problème, image dompdf introuvable sur le serveur actif
J'ai trouvé sa solution, il vous suffit de vérifier le chemin de l'image,
Considérant le chemin de votre image de serveur live
<img src="http://www.example.com/public/images/thumb.png">
Vous devez juste le changer en,
<img src="public/images/thumb.png">
Remarque: assurez-vous que tous les paramètres sont identiques à ceux que vous avez déjà définis.
J'espère que cela t'aidera.
Essayer
$options = new Options();
$options->set('isRemoteEnabled', true);
$dompdf = new Dompdf($options);
Il y a deux choses à prendre en compte.
Si vous utilisez une image provenant du même serveur, utilisez le chemin de répertoire complet, par exemple /var/www/html/project_folder/images/logo.jpg
Élément de liste Utilisez JPEG
image au lieu de png
ou d'autres types.
Même problème que je rencontrais alors que j'étais également définir le "DOMPDF_ENABLE_REMOTE => true" dans "dompdf/dompdf_config.inc" mais pas travaillé.
Une chose a fonctionné pour moi Changer le src pour images/css de absolu à relatif et les choses faites. Dans ce cas, j'ai tous les css/images sur mon serveur.
Juste au cas où quelqu'un aurait les mêmes problèmes que moi:
J'ai changé src = " https : //" en src = " http : //" et les images chargées très bien.
J'ai également ajouté tous les CSS en ligne dans un <style>
au lieu de charger via <link>
et assurez-vous que le CSS <style>
est dans le <head>
et non le <body>
Pouvez-vous atteindre ces URL dans votre navigateur Web sur la machine que vous utilisez pour ouvrir le fichier PDF? Sinon, le lecteur PDF ne le pourra pas non plus.
Je soupçonne que le domaine "localhost" signifie que ces URL ne sont visibles que depuis le serveur Web qui a généré le PDF. Vous devez générer une URL du type http://example.com/dompdf/image.jpg
(Pour éviter ce problème, gardez à l'esprit qu'il existe de bonnes raisons de ne pas utiliser d'images distantes. Le document aura une mauvaise image si le lecteur n'est pas connecté à Internet, par exemple. document?)
À l'heure actuelle, dompdf ne dispose pas d'un mécanisme permettant de distinguer les domaines local et distant. Par conséquent, toute URL commençant par http: // ... est traitée comme distante. De plus, toute image utilisant un intermédiaire basé sur PHP (comme pic.php) ne peut pas utiliser un chemin d'accès local car le fichier PHP ne sera pas analysé à moins que vous n'utilisiez un serveur Web.
C'est une perspective difficile, mais vos pages sont générées dynamiquement. Je vois donc deux options:
Puisque vous avez déjà travaillé à obtenir l’image en utilisant curl, vous devriez pouvoir implémenter l’un ou l’autre.
Je pense que vous pourriez ajouter ceci
private function change_url_image($data, $url) {
$str = $url; //for example "http://localhost/yoursite/";
$str2 = str_replace($str, "", $data);
return $str2;
}
changer d'url pour l'image