TCPDF ERROR: [Изображение] Не удалось получить изображение
Я использую TCPDF с модулем печати Drupal для создания PDF статей и заканчивая следующим сообщением об ошибке, когда я нажимаю ссылку для создания PDF:
TCPDF ERROR: [Image] Unable to get image: http://localhost/pathToDrupal/themes/bartik/logo.png
Изображение указано в указанном месте.
Я пробовал применить:
allow_url_fopen = On;
allow_url_include = On;
в php.ini
, но это не могло решить проблему.
Пожалуйста, помогите: (
Ответы
Ответ 1
По-видимому, "TCP файлы" не используются "fopen" -wrappers.
Если вы указываете URL-адрес изображения, TCPDF пытается загрузить его с помощью cURL в директорию "cache", где хранится ваша TCPDF-установка (вы должны проверить, что содержит K_PATH_CACHE
-constant),
Итак, я думаю, вы должны иметь права на запись в этом каталоге, что магия работает. Также вам нужно cURL.
Ответ 2
У нас были проблемы с подключением соединений на нашем Linux-сервере example.com. Итак, это заставило нас попробовать на сервере:
curl -v http://www.example.com/image.jpg
Всякий раз, когда TCPDF пытался загрузить изображение с завитом, изображение не было найдено, тем не менее, мы могли бы просмотреть изображение, просто открыв его непосредственно в браузере (например, http://www.example.com/image.jpg).
Мы решили проблему, установив example.com VirtualHost для приема соединений 127.0.0.1 и добавив строку "127.0.0.1 example.com" в/etc/hosts.
Ответ 3
Просто используйте путь изображения как "images/your_image.png" вместо "http://yourdomain.com/images/your_image.png" в формате PDF html.
Ответ 4
Я обнаружил, что TCPDF будет вызывать ошибку Unable для получения изображения: error, когда src является абсолютной ссылкой. Просто переход к относительной ссылке будет успешно создавать PDF.
Ответ 5
У меня была эта проблема на промежуточном сервере, где docroot сайта был защищен файлом .htaccess(чтобы предотвратить индексирование поисковой системы и другие недоумения)
tcpdf использует curl для извлечения изображения, и он дает эту ошибку, если не может получить доступ к файлу.
Чтобы решить эту проблему, я добавил правило на .htaccess, чтобы разрешить запросы с веб-сервера
Allow from 123.45.6.7.8
Ответ 6
$pdf->Image($base_url.'/'.$node->field_loc_images[0]['filepath'] ,30, 40, 75, 113, 'JPG', '', '', true, 300, '');
Ответ 7
Попробуйте добавить путь к текущему рабочему директорию.
$img = getcwd().'/web/bundles/_bundlename_/img/logo.png';
Ответ 8
В ваших проблемах с шрифтом unicode вам нужно поставить этот синтаксический код:
// set font
$fontname = $pdf->addTTFfont('../your path here/sampletruetype.ttf', 'TrueTypeUnicode', '', 32);
$pdf->SetFont($fontname, '', <font size value here>);
поставьте его перед добавлением страницы...
Ответ 9
В drupal обязательно включите библиотеку tcpdf в свою функцию, а не вверху файла модуля, или вы получите эту ошибку.
Ответ 10
попробуйте это также
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);
}
Ответ 11
Чтобы расширить эту ошибку. Кажется, что он также не работает с встроенными изображениями base64. Это большая проблема для меня прямо сейчас.
Ответ 12
После обновления PHP с 5.5 до 5.6 я потерял часы из-за ошибки изображения,
Я нашел решение здесь из @caligari (комментарий к принятому ответу), и он исправил проблему для меня:
установите CURL следующим образом:
apt-get install php5-curl && /etc/init.d/apache2 restart.
Ответ 13
В моем случае я пытался
curl -v http://www.example.com/image.jpg
и "curl: (60) проверка сертификата сервера не удалась". было показано. Так что это была просто проблема с сертификатом.