mugo/mugo-wkhtmltopdf

eZ Publish 旧版扩展,将 phpwkhtmltopdf 库集成到 eZ Publish 中,以提供使用 eZ Publish 模板和存储在 eZ Publish 中的内容生成 PDF 的解决方案的基础。

安装: 23

依赖者: 0

建议者: 0

安全: 0

星星: 2

关注者: 12

分支: 4

开放问题: 0

类型:ezpublish-legacy-extension

dev-master 2015-08-28 04:37 UTC

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 安装

  1. 通过 composer 安装此包
composer require mugo/mugo-wkhtmltopdf dev-master;
  1. 使用 settings/override/site.ini.append.php 通过手动添加扩展名 'mugo_wkhtmltopdf' 到 [ExtensionSettings] ActiveExtensions[] 设置数组来为所有 siteaccesses 激活扩展。以下是一个示例
[ExtensionSettings]
ActiveExtensions[]
ActiveExtensions[]=mugo_wkhtmltopdf
  1. 使用 php 命令重新生成 autoloads 数组:php ./bin/php/ezpgenerateautoloads.php;

  2. 使用 php 命令清除所有缓存:php ./bin/php/ezcache.php --clear-all;

手动安装

  1. 提取 eZ Publish 安装下的 extension/ 目录中的内容

  2. 使用 settings/override/site.ini.append.php 通过手动添加扩展名 'mugo_wkhtmltopdf' 到 [ExtensionSettings] ActiveExtensions[] 设置数组来为所有 siteaccesses 激活扩展。以下是一个示例

[ExtensionSettings]
ActiveExtensions[]
ActiveExtensions[]=mugo_wkhtmltopdf
  1. 使用 php 命令重新生成 autoloads 数组:php ./bin/php/ezpgenerateautoloads.php;

  2. 使用 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