Erreur TCPDF: [Image] impossible d'obtenir l'image
j'utilise TCPDF avec Drupal imprimer module pour générer un fichier PDF des articles, et de se retrouver avec message d'erreur suivant quand je clique sur le lien pour générer un fichier PDF:
TCPDF ERROR: [Image] Unable to get image: http://localhost/pathToDrupal/themes/bartik/logo.png
L'Image existe dans l'emplacement spécifié. J'ai essayé l'application:
allow_url_fopen = On;
allow_url_include = On;
php.ini
mais qui n'a pas pu résoudre le problème.
Merci de soins :(
12 réponses
apparemment, les emballages"fopen" ne sont pas utilisés 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ù votre installation TCPDF est stockée (vous devez vérifier ce que le K_PATH_CACHE
-constant contient pour être sûr).
Donc je suppose que vous devez avoir des droits d'écriture dans ce répertoire que la magie opère. Aussi, vous devez cURL activé.
nous avons eu des problèmes avec la façon dont les connexions étaient gérées dans notre linux "example.com" serveur. Donc, cela nous 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 n'était pas trouvée, 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 example.com VirtualHost accepte les connexions 127.0.0.1 et l'ajout de la ligne "127.0.0.1 example.com" à /etc/hosts.
utilisez simplement le chemin d'image comme " images / your_image.png" au lieu de "http://yourdomain.com/images/your_image.png" dans le fichier PDF html.
J'ai trouvé que TCPDF lançait L'impossibilité D'obtenir Image: error quand le src était un lien absolu. Le simple fait de passer à un lien relatif créerait le PDF avec succès.
j'ai eu ce problème sur un serveur de mise en scène où le docroot du site était protégé par un .fichier htaccess (pour empêcher l'indexation du moteur de recherche et d'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 pour .htaccess pour autoriser les requêtes du serveur web
Allow from 123.45.6.7.8
$pdf->Image($base_url.'/'.$node->field_loc_images[0]['filepath'] ,30, 40, 75, 113, 'JPG', '', '', true, 300, '');
essayez d'ajouter le chemin par dir de travail courant.
$img = getcwd().'/web/bundles/_bundlename_/img/logo.png';
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>);
mettre avant d'ajouter la page...
Dans drupal assurez-vous d'inclure la bibliothèque tcpdf dans votre fonction et non pas en haut de votre fichier de module ou vous obtiendrez cette erreur.
essayez ceci 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);
}
pour développer l'erreur. Il semble aussi échouer avec les images embarquées de base64. C'est un gros problème pour moi.
après avoir mis à jour PHP 5.5 à 5.6, j'ai perdu des heures à cause d'une erreur d'image,
j'ai trouvé la solution ici @caligari (un commentaire sur la accepté de répondre) et il a résolu le problème pour moi:
installer CURL comme ceci:
apt-get install php5-curl && /etc/init.d/apache2 restart.