web-dev-qa-db-fra.com

ERREUR TCPDF: [Image] Impossible d'obtenir l'image

J'utilise TCPDF avec le module Drupal print pour générer PDF d'articles, & se terminant par le message d'erreur suivant lorsque je clique sur le lien pour générer un PDF:

TCPDF ERROR: [Image] Unable to get image: http://localhost/pathToDrupal/themes/bartik/logo.png

L'image existe à l'emplacement spécifié. J'ai essayé de postuler:

allow_url_fopen = On;
allow_url_include = On;

dans php.ini mais cela n'a pas pu résoudre le problème.

Veuillez aider à aider :(

23
Shafiul

Apparemment, les enveloppes "fopen" ne sont pas utilisées par TCPDF.

Si vous fournissez l'URL d'une image, TCPDF essaie de la télécharger avec cURL dans le répertoire "cache" où est stockée votre installation TCPDF (vous devez vérifier ce que le K_PATH_CACHE- constante contient pour être sûr).

Je suppose donc que vous devez avoir des autorisations d'écriture dans ce répertoire pour que la magie fonctionne. Vous devez également activer cURL.

26
vstm

Nous avons eu des problèmes avec la façon dont les connexions étaient gérées dans notre serveur linux "example.com". Cela nous a donc conduit à essayer sur le serveur:

curl -v http://www.example.com/image.jpg

Chaque fois que TCPDF essayait de télécharger une image avec curl, l'image était introuvable, néanmoins, nous pouvions voir l'image en l'ouvrant directement dans le navigateur (par exemple http://www.example.com/image.jpg) ).

Nous avons résolu le problème en définissant example.com VirtualHost pour accepter les connexions 127.0.0.1 et en ajoutant la ligne "127.0.0.1 example.com" à/etc/hosts.

8
luissquall

Utilisez simplement le chemin de l'image comme "images/votre_image.png" au lieu de " http://votredomaine.com/images/votre_image.png " dans le PDF html .

5
Noman Mustafa Khan

J'ai trouvé que TCPDF lancerait l'erreur Impossible d'obtenir l'image: lorsque le src était un lien absolu. Le simple fait de passer à un lien relatif créerait avec succès le PDF.

4
Michael

J'ai eu ce problème sur un serveur de transfert où la docroot du site était protégée par un fichier .htaccess (pour éviter l'indexation des moteurs de recherche et autres confusions)

tcpdf utilise curl pour récupérer l'image et il donne cette erreur s'il ne peut pas accéder au fichier.

Pour le résoudre, j'ai ajouté une règle à .htaccess pour autoriser les requêtes du serveur web

Allow from 123.45.6.7.8
3
batigolix

Essayez d'ajouter un chemin par le répertoire de travail actuel.

$img = getcwd().'/web/bundles/_bundlename_/img/logo.png';
$pdf->Image($base_url.'/'.$node->field_loc_images[0]['filepath'] ,30, 40, 75, 113, 'JPG', '', '', true, 300, '');
2
shashank

Dans vos problèmes de police unicode, vous devez mettre ce code de syntaxe:

// set font
$fontname = $pdf->addTTFfont('../your path here/sampletruetype.ttf', 'TrueTypeUnicode', '', 32);

$pdf->SetFont($fontname, '', <font size value here>);

mettez-le avant d'ajouter la page ...

1
jay ralph

Dans drupal assurez-vous d'inclure la bibliothèque tcpdf dans votre fonction et non en haut de votre fichier de module ou vous obtiendrez cette erreur.

1
flabel

essayez cela aussi

foreach($node->field_loc_images as $key=> $s)
{
    $pdf->Image($base_url.'/'.$s['filepath'], $x, $y, $w, $h, 'JPG', '', '', false, 300, '', false, false, 0, $fitbox, false, false);
}
0
shashank

Pour développer l'erreur. Il semble également échouer avec les images intégrées en base64. C'est un gros problème pour moi en ce moment.

0
Dieter Gribnitz

Après avoir mis à niveau PHP 5.5 à 5.6, j'ai perdu des heures à cause d'une erreur d'image,

J'ai trouvé la solution ici depuis @ caligari (un commentaire sur la réponse acceptée) et cela a résolu le problème pour moi:

installez CURL comme ceci:

apt-get install php5-curl && /etc/init.d/Apache2 restart. 
0
Carlo Paglietti

Dans mon cas, j'ai essayé de

curl -v http://www.example.com/image.jpg

et la "curl: (60) vérification du certificat du serveur a échoué." a été montré. Il s'agissait donc simplement d'un problème de certificat.

0
Viktor Joras