Я использую 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
но это не могло решить проблему.
Пожалуйста, помогите 🙁
По-видимому, «TCP-файлы» не используются «fopen» -wrappers.
Если вы укажете URL-адрес изображения, TCPDF попытается загрузить его с помощью cURL в каталог «cache», где хранится ваша TCPDF-установка (вы должны проверить, что содержит K_PATH_CACHE
).
Поэтому, я думаю, вы должны иметь права на запись в этом каталоге, что работает магия. Также вам нужно cURL.
У нас были проблемы с тем, как соединения обрабатывались на нашем 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.
Просто используйте путь изображения как «images / your_image.png» вместо « http://img.ruphp.com/php/f » в PDF html.
У меня была эта проблема на промежуточном сервере, где docroot сайта был защищен файлом .htaccess (чтобы предотвратить индексацию поисковых систем и другие недоумения)
tcpdf использует curl для извлечения изображения, и он дает эту ошибку, если не может получить доступ к файлу.
Чтобы решить эту проблему, я добавил правило: .htaccess, чтобы разрешать запросы с веб-сервера
Allow from 123.45.6.7.8
$pdf->Image($base_url.'/'.$node->field_loc_images[0]['filepath'] ,30, 40, 75, 113, 'JPG', '', '', true, 300, '');
Я обнаружил, что TCPDF будет бросать Unable для получения изображения: ошибка, когда src является абсолютной ссылкой. Просто переход к относительной ссылке будет успешно создавать PDF.
В ваших проблемах с шрифтом unicode вам нужно поставить этот синтаксический код:
// set font $fontname = $pdf->addTTFfont('../your path here/sampletruetype.ttf', 'TrueTypeUnicode', '', 32); $pdf->SetFont($fontname, '', <font size value here>);
поставьте его перед добавлением страницы …
В drupal обязательно включите библиотеку tcpdf в свою функцию, а не вверху вашего файла модуля, или вы получите эту ошибку.
попробуйте это также
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); }
Расширить ошибку. Кажется, что он также не работает с встроенными изображениями base64. Это большая проблема для меня прямо сейчас.
Попробуйте добавить путь к текущему рабочему директорию.
$img = getcwd().'/web/bundles/_bundlename_/img/logo.png';
После того как я обновил PHP 5.5 до 5.6, я потерял часы из-за ошибки изображения,
Я нашел решение здесь из @caligari (комментарий к принятому ответу), и он устранил проблему для меня:
установите CURL следующим образом:
apt-get install php5-curl && /etc/init.d/apache2 restart.