我想在symfony项目上使用wkhtmltopdf:
FROM surnet/alpine-wkhtmltopdf:3.16.2-0.12.6-full as wkhtmltopdf
FROM openjdk:19-jdk-alpine3.16
RUN apk add --no-cache
libstdc++
libx11
libxrender
libxext
libssl1.1
ca-certificates
fontconfig
freetype
ttf-dejavu
ttf-droid
ttf-freefont
ttf-liberation
# more fonts
&& apk add --no-cache --virtual .build-deps
msttcorefonts-installer
# Install microsoft fonts
&& update-ms-fonts
&& fc-cache -f
# Clean up when done
&& rm -rf /tmp/*
&& apk del .build-deps
# Copy wkhtmltopdf files from docker-wkhtmltopdf image
COPY --from=wkhtmltopdf /bin/wkhtmltopdf /usr/local/bin/wkhtmltopdf
COPY --from=wkhtmltopdf /bin/wkhtmltoimage /usr/local/bin/wkhtmltoimage
COPY --from=wkhtmltopdf /bin/libwkhtmltox* /usr/local/bin/
但是生成的pdf与html并不完全相同,因为没有考虑到一些css。如果我切换到标准的本地安装(基于Debian 11), pdf将正确生成。
我的问题是:
- 我的docker安装缺少什么?
- 如何调试wkhtmltopdf以找出问题在哪里?
谢谢!
我在使用wkhtmltopdf时也遇到过忽略CSS的问题。
我知道我的答案将不完全适合你正在寻找的,但我认为这是很好的知道https://www.api2pdf.com/,以防止开发人员试图使pdf自己
我一直在与wkhtmltopdf(二进制文件和狗屎…)斗争,我不得不安装它好几年了。有一天,一个朋友告诉我api2pdf。它既便宜又好用。我再也不用我自己的发电机了。
特别是因为他们的chromeHtmlToPdf
函数,这是你正在寻找的功能来解决你的css问题。
我知道这是旧的,但最近遇到同样的。就我而言,我使用的是docker, ubuntu。使用XVFB也可以:
apt-get install XVFB libfontconfig wkhtmltopdf
然后运行wkhtmltopdf与XVFB例如
xvfb-run wkhtmltopdf https://github.com/ github.pdf