问题描述
我已经在 Elastic Beanstalk 上安装了 weasyprint.到目前为止,html 模板的打印工作正常,但我无法打印 svg 图像.
I've installed weasyprint on Elastic Beanstalk. The printing of html templates is working so far but im not able to print svg images.
Weasyprint 抛出以下错误:
Weasyprint throws the following error:
Failed to load image at "https://myurl/media/X247QAQ2IO.svg" (Could not load GDK-Pixbuf. PNG and SVG are the only image formats available.)
我是否需要 gdk-pixbuf 来打印 SVG?如果是这样,我如何在 Amazon Linux 上安装它?
Do I need gdk-pixbuf to print SVGs? And if so how can I install it on Amazon Linux?
Yum does not have gdk-pixbuf2 available for installation
推荐答案
通过手动构建 gdk-pixbuf2,我找到了一个对我有用的解决方案,下面的脚本来自 https://gist.github.com/whyvez/1e0212a35da97aa8f1b1 他们需要安装 image magic 的地方
I found a solution that worked for me by manually building gdk-pixbuf2, My script below derived from https://gist.github.com/whyvez/1e0212a35da97aa8f1b1 where they needed to install image magic
weazy.conf
files:
"/opt/elasticbeanstalk/hooks/appdeploy/pre/00_instal_weasyprint_prerequisites.sh":
mode: "000755"
owner: root
group: root
content: |
#!/usr/bin/env bash
yum install -y libxml2-devel libxslt-devel python-devel redhat-rpm-config libffi-devel cairo pango
export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/lib/pkgconfig
export PATH=/usr/bin:$PATH
export LDFLAGS=-L/usr/lib64:/usr/lib
export LD_LIBRARY_PATH=/usr/lib64:/usr/lib
export CPPFLAGS=-I/usr/include
sudo yum-config-manager --enable epel
sudo yum update -y
sudo yum install -y gcc gcc-c++ glib2-devel.x86_64 libxml2-devel.x86_64 libpng-devel.x86_64 \
libjpeg-turbo-devel.x86_64 gobject-introspection.x86_64 gobject-introspection-devel.x86_64
wget http://ftp.gnome.org/pub/GNOME/sources/libcroco/0.6/libcroco-0.6.8.tar.xz
tar xvfJ libcroco-0.6.8.tar.xz
cd libcroco-0.6.8
./configure --prefix=/usr
make
sudo make install
cd ..
wget http://ftp.gnome.org/pub/GNOME/sources/gdk-pixbuf/2.28/gdk-pixbuf-2.28.2.tar.xz
tar xvfJ gdk-pixbuf-2.28.2.tar.xz
cd gdk-pixbuf-2.28.2
./configure --prefix=/usr --without-libtiff
make
sudo make install
cd ..
sudo yum install -y pixman-devel.x86_64 harfbuzz-devel.x86_64 freetype-devel.x86_64
wget wget http://www.freedesktop.org/software/fontconfig/release/fontconfig-2.10.91.tar.gz
tar xvf fontconfig-2.10.91.tar.gz
cd fontconfig-2.10.91
./configure --prefix=/usr --enable-libxml2
make
sudo make install
cd ..
wget http://cairographics.org/releases/cairo-1.12.14.tar.xz
tar xvfJ cairo-1.12.14.tar.xz
cd cairo-1.12.14
./configure --prefix=/usr
make
sudo make install
cd ..
wget http://ftp.gnome.org/pub/GNOME/sources/pango/1.34/pango-1.34.1.tar.xz
tar xvfJ pango-1.34.1.tar.xz
cd pango-1.34.1
./configure --prefix=/usr
make
sudo make install
cd ..
wget http://ftp.gnome.org/pub/GNOME/sources/librsvg/2.40/librsvg-2.40.6.tar.xz
tar xvfJ librsvg-2.40.6.tar.xz
cd librsvg-2.40.6
./configure --prefix=/usr
make
sudo make install
cd ..
sudo ldconfig /usr/lib
这篇关于Elastic Beanstalk 上的 Django Weasyprint - 无法加载 GDK-Pixbuf的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!