opus4-repo/opus4-pdf

OPUS 4 PDF 支持库

4.8.0.1 2023-09-19 13:30 UTC

This package is auto-updated.

Last update: 2024-09-19 15:49:59 UTC


README

此包为 OPUS 4 提供 PDF 支持,例如生成封面或验证文件。

(德语文档)

要求

XeTeX 和 Pandoc

opus4-pdf 包目前需要 XeTeX 和 Pandoc 来生成 PDF 封面。

在基于 Ubuntu / Debian 的 Linux 系统中,可以使用 apt 或 apt-get 安装这些工具。

$ apt-get install texlive-xetex
$ apt-get install pandoc

对于 Pandoc,请确保您安装/使用至少版本 2.17。当前实现未针对较旧的 Pandoc 版本进行测试。

要检查已安装的 Pandoc 版本,请运行

$ pandoc -v

字体

PDF 封面将通过模板文件生成。请注意,包含的 demo-cover.md 文件需要在系统上安装 "Open Sans"(真型或开放型)字体。此字体可在 Google Fonts 库 中以 Apache 许可证 v.2.0 获得许可。或者,可以从 bunny.net 获得 SIL Open Font License 1.1 许可。

Vagrantfile 文件提供了一个示例,说明如何在 Ubuntu/Debian-based Linux 系统上从命令行安装字体。

单元测试

为了运行单元测试,系统还必须满足以下基本要求

  • PHP >= 7.1,支持 cURL、DOM 和 MySQL 的 PHP
  • MySQL > 5.1

依赖项

其他依赖项在 composer.json 中声明,并可以使用以下方法自动下载和安装

composer install

php composer.phar install

这将导致所需的软件包在 vendor 目录中下载和安装。

脚本 bin/install-composer.sh 可用于自动下载 composer.phar,因此可以使用最新版本。大多数 Linux 发行版中也有 Composer

与 OPUS 4 的集成

除了上述要求外,为了为您的 OPUS 4 安装启用 PDF 封面生成,请执行以下步骤。

设置配置选项

默认情况下,PDF 封面生成是禁用的。要启用 PDF 封面生成,请将以下配置选项添加到应用程序的 config.ini 文件中

pdf.covers.generate = 1

这将导致 PDF 封面被添加到通过 OPUS 4 前门下载的 PDF 文件之前。

默认情况下,OPUS 4 在 application/configs/covers 目录中查找 PDF 封面模板。您可以通过此配置选项指定不同的目录路径

pdf.covers.path = APPLICATION_PATH "/application/configs/covers"

此包在 test/_files 目录中包含一个简单的示例封面模板,可以作为任何自定义模板的基模板使用。要使用此示例封面模板,请将此模板放入您为 pdf.covers.path 指定的封面目录中,并添加此选项

pdf.covers.default = 'demo-cover.md'

如果您已创建自定义 PDF 封面模板,请将 pdf.covers.default 选项的值替换为您的模板文件名(或相对于封面目录的路径,如果您的模板位于其自己的子目录中)。

您可以选择为某些 OPUS 4 收藏指定不同的封面模板。为此,您可以将特定于收藏的封面模板映射到特定收藏 ID。

collection.12345.cover = 'my-cover.md'

12345 替换为您的收藏夹的实际 ID,将 my-cover.md 替换为您收藏夹特定封面模板的实际名称(或其相对路径,如果它位于子目录中)。

显示许可标志

目前,PDF 封面页生成过程只能使用本地可用的图像文件。

默认情况下,应用程序在 public/img/licences 目录中查找许可标志,但您也可以通过 licences.logos.path 选项指定另一个目录

licences.logos.path = APPLICATION_PATH "/public/img/licences"

在指定的许可标志目录中,OPUS 4 预期许可标志的路径与数据库表中许可的 URL 路径相匹配。例如,如果 OPUS 数据库表 document_licences 中的 link_logo 列包含此标志 URL

https://licensebuttons.net/l/by-sa/4.0/88x31.png

OPUS 4 预期该许可标志的本地表示为

public/img/licences/l/by-sa/4.0/88x31.png

运行单元测试

安装了 VagrantVirtualBox 后,可以包含的 Vagrantfile 用于在虚拟机中安装所有要求和 Composer 依赖项。

然后可以通过以下命令运行单元测试

$ cd opus4-pdf
$ vagrant up
$ vagrant ssh
$ composer test

创建自定义 PDF 封面模板

在应用程序中,包含封面页的下载文件将缓存在 workspace/filecache 目录中(原始文件将不会被修改)。只要存在缓存版本并且文件的内容没有更改,缓存版本将在后续的下载请求中提供。

opus4 控制台工具包含一个 cover:generate 命令,该命令将为给定的文档 ID 生成 PDF 封面。此命令将始终强制重建封面页,这在开发自定义封面模板时非常有用。

要显示命令的帮助,请在控制台中执行此命令

bin/opus4 help cover:generate

要使用当前默认模板为文档生成 PDF 封面,请执行此命令

bin/opus4 cover:generate ID

ID 替换为文档的实际 ID。生成的 PDF 封面将使用文档 ID 作为文件名写入当前工作目录。您可以使用 --out 选项指定不同的文件名,例如 "cover.pdf"

bin/opus4 cover:generate --out=cover.pdf ID

最后,您可以使用 --template 选项指定自定义封面模板的路径,例如

bin/opus4 cover:generate --out=cover.pdf --template=./application/configs/covers/my-cover.md ID