oat-sa/extension-tao-booklet

TAO的扩展,用于创建测试手册(可在MS-Word和PDF中发布,并附带答题卡)

安装数: 12,006

依赖项: 0

建议者: 0

安全性: 0

星标: 6

关注者: 52

分支: 4

开放问题: 1

类型:tao-extension

v4.4.1 2023-08-21 12:15 UTC

README

TAO的扩展,用于创建测试手册(可在MS-Word和PDF中发布,并附带答题卡)

警告

由于迁移到ES2015,部分代码可能在旧浏览器上无法工作。特别是那些依赖polyfills的代码,如Promise。polyfills现在仅在代码打包时链接,开发模式下无法访问。因此,由于wkhtmltopdf不支持ES2015且需要polyfills,PDF的生成仅适用于打包版本(即生产模式)。

taoBooklet4.2.0版本开始,渲染PDF的页面将始终使用转换后的ES5版本的bundle。这适用于开发模式或生产模式。这意味着对源代码的任何更改都需要经过重新打包。

cd tao/views/build
npx grunt taobookletbundle

对于4.1.1及更早版本,您需要按照以下方式激活生产模式:

  • 打开配置文件config/generis.conf.php,并将常量DEBUG_MODE设置为false(大约在第50行)
#mode
define('DEBUG_MODE', false);

配置

文件config/taoBooklet/wkhtmltopdf.conf.php包含设置工具的条目

  • 'binary' - 安装二进制文件的路径,通常是/usr/local/bin/wkhtmltopdf
  • 'options' - 一组控制渲染的选项。见下文。

wkhtmltopdf选项

注意:wkhtmltopdf支持的其他选项也可以添加到这里。对于完整的列表,请参阅:https://wkhtmltopdf.org/usage/wkhtmltopdf.txt

要求

此扩展需要第三方工具来生成PDF文件。因此,为了能够生成手册,您应该在服务器上安装wkhtmltopdf

如果您使用Ubuntu,可以使用以下命令

sudo apt-get update
sudo apt-get install wkhtmltopdf

但是,根据您的系统版本,安装的wkhtmltopdf版本可能不完全符合要求,因为当尝试渲染页眉和页脚时,QT有一些问题。如果生成文档时遇到错误,您应使用以下命令安装工具

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.jessie_amd64.deb
sudo dpkg -i wkhtmltox_0.12.5-1.jessie_amd64.deb

之后,您可以在配置中使用/usr/local/bin/wkhtmltopdf

对于基于Debian的发行版,您可能需要额外步骤来安装一些依赖项

sudo apt-get update
sudo apt-get install wkhtmltopdf
sudo apt-get install libxrender1 fontconfig xvfb
sudo apt --fix-broken-install

如果前面的步骤失败,您可能需要尝试使用二进制非打包发行版。

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar xf  wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
cd ./wkhtmltox/bin/
sudo cp -R ./* /usr/bin/
sudo cp -R ./* /usr/local/bin/
wkhtmltopdf -V

请参阅https://wkhtmltopdf.org/downloads.html,获取Ubuntu和其他发行版的最新wkhtmltopdf包列表。您还可以在GitHub上找到v0.12.5的源代码、二进制和包列表。

已弃用:请注意,版本0.12.4有一个错误,该错误已在版本0.12.5中修复:有时PDF中未提供页眉和页脚

sudo apt-get update
sudo apt-get install libxrender1 fontconfig xvfb
wget https://downloads.wkhtmltopdf.org/0.12/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz -P /tmp/
cd /usr/share/
sudo tar xf /tmp/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
sudo rm /usr/bin/wkhtmltopdf
sudo ln -s /usr/share/wkhtmltox/bin/wkhtmltopdf /usr/bin/wkhtmltopdf