php架构ThinkPHP6
1. 安装 knp-snappy架构
composer require knplabs/knp-snappy
use Knp\Snappy\Image;
use Illuminate\Support\Facades\Storage;
// 生成图片 '/user/local/bin/wkhtmltoimage为你的wkhtmltoimage的位置。
$snappy = new Image('/usr/local/bin/wkhtmltoimage');
$path = public_path('dzd/' . $the_date . '/');
$fileName = time() . '_' . $row['entry_id'] . '.jpg';
$fullPath = $path . $fileName;
$snappy->generateFromHtml(view('dzd', $viewData), $fullPath);
2. 如何安装wkhtmltoimage
操作系统: CentOS 7.8
根据操作选择要下载的版本:
wkhtmltopdf
下载RPM安装包
安装过以后通过: wkhtmltopdf --version 有版本号就说明安装好了。
然后查看下wkhtmltoimage的位置 :
#whereis wkhtmltoimage
然后就可以用上面的php代码来生成了。请注意,使用这个方法要放两几个常被禁用的函数。会有一定的安全风险
wkhtmltoimage 如何设置字体?
这个也困扰了我好久,怎么设置都不生效。
其实换个思路去理解,wkhtmltoimage 他是在服务器上渲染页面,如果你的服务器上没有相应的字体或你页面里设置的字体和操作系统里不一致,就会导致字体设置无效。所以加载不出来。
1. 在系统上安装字体,linux上如何安装字体去网上搜索。
2. 设置 font-family="楷体"
如果你是linux系统,看下 楷体在你的系统里叫什么?
/usr/share/fonts/chinese/simkai.ttf: KaiTi:style=Regular,Normaali
在我的CentOS 7.8 里,他的名字就是: KaiTi ,那么你就要设置为:
font-family="KaiTi" ,否则是不会生效的。
如果你是windows系统,这里应该设置为“楷体”,尝试下,在什么样的格式下才会生效。