mugo / mugo-wkhtmltopdf
eZ Publish 旧版扩展,将 phpwkhtmltopdf 库集成到 eZ Publish 中,以提供使用 eZ Publish 模板和存储在 eZ Publish 中的内容生成 PDF 的解决方案的基础。
Requires
- php: >=5.0.0
- ezsystems/ezpublish-legacy-installer: *
This package is not auto-updated.
Last update: 2024-10-02 09:59:19 UTC
README
Mugo wkhtmltopdf 是一个 eZ Publish 旧版扩展,将 phpwkhtmltopdf 库集成到 eZ Publish 中,以提供使用 eZ Publish 模板和存储在 eZ Publish 中的内容生成 PDF 的解决方案的基础。
Composer 安装
- 通过 composer 安装此包
composer require mugo/mugo-wkhtmltopdf dev-master;
- 使用
settings/override/site.ini.append.php
通过手动添加扩展名 'mugo_wkhtmltopdf' 到 [ExtensionSettings] ActiveExtensions[] 设置数组来为所有 siteaccesses 激活扩展。以下是一个示例
[ExtensionSettings]
ActiveExtensions[]
ActiveExtensions[]=mugo_wkhtmltopdf
-
使用 php 命令重新生成 autoloads 数组:
php ./bin/php/ezpgenerateautoloads.php;
-
使用 php 命令清除所有缓存:
php ./bin/php/ezcache.php --clear-all;
手动安装
-
提取 eZ Publish 安装下的 extension/ 目录中的内容
-
使用
settings/override/site.ini.append.php
通过手动添加扩展名 'mugo_wkhtmltopdf' 到 [ExtensionSettings] ActiveExtensions[] 设置数组来为所有 siteaccesses 激活扩展。以下是一个示例
[ExtensionSettings]
ActiveExtensions[]
ActiveExtensions[]=mugo_wkhtmltopdf
-
使用 php 命令重新生成 autoloads 数组:
php ./bin/php/ezpgenerateautoloads.php;
-
使用 php 命令清除所有缓存:
php ./bin/php/ezcache.php --clear-all;
测试安装
您可以通过访问 http://siteURL/wkhtmltopdf/node/2 来测试它
注意:该扩展使用 site.ini 中的 SiteURL 生成 PDF,请确保它正确指向当前主机 URL。
在 CentOS 上安装 wkhtmltopdf
yum install fontconfig libXrender libXext xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi freetype libpng zlib libjpeg-turbo openssl;
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm;
rpm -ivh wkhtmltox-0.12.2.1_linux-centos6-amd64.rpm;
ln -s /usr/local/bin/wkhtmltopdf /usr/bin/;
如果 SELinux 正在运行,则必须启用它,否则 wkhtmltopdf 将段错误
setsebool -P httpd_execmem 1;
将此文件安装到 /etc/fonts/conf.d/10-wkhtmltopdf.conf 以提高文本质量
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<!-- Improve kerning and spacing for wkhtmltopdf as per https://github.com/wkhtmltopdf/wkhtmltopdf/issues/45#issuecomment-53485578 -->
<fontconfig>
<match target="font">
<edit mode="assign" name="rgba">
<const>rgb</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="lcdfilter">
<const>lcddefault</const>
</edit>
</match>
</fontconfig>
可选图像质量设置
我们需要使用高分辨率图像,我们还可以通过将透明度更改为实色来提高图像质量。
在设置覆盖文件中更改图像设置:image.ini.append.php
[ImageMagick]
...
Filters[]=background=-background %1
Filters[]=flatten=-flatten
...
[sample_pdf_image]
Filters[]
Filters[]=background=#eee
Filters[]=flatten