这边篇我们写一下如何用 wkhtmltopdf
导出 HTML
为 PDF
。
一、安装字体
WORKDIR /tmp
# 安装软件
RUN set -eux \
&& apt-get update \
&& apt-get install -y --no-install-recommends wget unzip fontconfig
# 安装 Noto Sans SC 字体
RUN wget https://fonts.google.com/download?family=Noto%20Sans%20SC -O Noto_Sans_SC.zip \
&& unzip Noto_Sans_SC.zip -d /usr/share/fonts \
&& fc-cache
# 清理无用的依赖包
RUN set -eux \
&& apt-get autoremove \
&& apt-get autoclean \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
二、安装 wkhtmltopdf
WORKDIR /tmp
# 安装软件
RUN set -eux \
&& apt-get update \
&& apt-get install -y --no-install-recommends wget unzip \
libfontenc1 libjpeg62-turbo libx11-6 libx11-data libxau6 libxcb1 \
libxdmcp6 libxext6 libxfont1 libxrender1 x11-common xfonts-75dpi \
xfonts-base xfonts-encodings xfonts-utils
# 安装 wkhtmltopdf
RUN wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox_0.12.5-1.stretch_amd64.deb -O wkhtmltox_0.12.5-1.stretch_amd64.deb \
&& dpkg -i wkhtmltox_0.12.5-1.stretch_amd64.deb
# 清理无用的依赖包
RUN set -eux \
&& apt-get autoremove \
&& apt-get autoclean \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
三、安装 barryvdh/laravel-snappy
拓展
# https://packagist.org/packages/barryvdh/laravel-snappy
composer require barryvdh/laravel-snappy
然后根据 laravel-snappy
文档配置,下边是我们安装好的 wkhtmltopdf
位置:
SNAPPY_PDF_BINARY=/usr/local/bin/wkhtmltopdf
SNAPPY_IMAGE_BINARY=/usr/local/bin/wkhtmltoimage
如此就安装完成了,具体配置及使用方法参考 laravel-snappy
文档。
相关阅读
- Docker 部署 Laravel 应用 – 基础应用
- Docker 部署 Laravel 应用 – 队列 & 任务调度
- Docker 部署 Laravel 应用 – 使用
wkhtmltopdf
导出 PDF - 示例代码