我尝试在symfony项目中使用wkhtmltopdf和docker:
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以找出问题所在?
多谢了!
1条答案
按热度按时间58wvjzkj1#
我也有这个问题,忽略CSS与wkhtmltopdf。
我知道我的答案不会完全适合你正在寻找的,但我认为这是很好的知道https://www.api2pdf.com/,以防止开发人员试图使pdf自己
多年来,我一直在到处安装wkhtmltopdf(二进制文件和狗屎...)。有一天,一个朋友告诉我api2pdf。它非常便宜,容易使用。我再也没有用过我自己的生成器。
Especiallacy,因为他们的
chromeHtmlToPdf
函数,这是你正在寻找的函数来修复你的css问题。