spacecatninja / imager-x-pdf-适配器
Imager X 的 PDF 文件适配器,用于转换 PDF 文件
Requires
- php: ^8.0.2
- ext-imagick: *
- craftcms/cms: ^4.0.0|^5.0.0-beta.1
- spacecatninja/imager-x: ^4.1.0|^5.0.0-beta.1
This package is auto-updated.
Last update: 2024-09-09 21:42:55 UTC
README
一个使用 Imager X 转换 PDF 文件的插件。
同时,也是如何为 Imager X 创建自定义文件适配器的示例。
要求
此插件需要 Imager X 4.1+/5.0+、Craft CMS 4.0+/5.0+、PHP 8.0+ 以及支持打开 PDF 的 Imagick。
支持打开 PDF,这是什么意思?
首先,这意味着服务器上需要安装 ghostscript,并且它作为 ImageMagick 的代理格式可用。这通常是默认的。
你更有可能遇到问题的环境是,某些环境中打开 PDF 的访问可能被你的 ImageMagick 策略文件 限制。这是一个设置 ImageMagick 和 Imagick 资源和安全策略的 XML 文件。在 Ubuntu 上,它位于 /etc/ImageMagick-6/policy.xml(如果你有 ImageMagick 6,用 7 代替,如果已经安装),谷歌搜索可能有助于你找到你发行版中的位置。
如果你收到一个错误(在日志或调试栏中)说关于 PDF 和策略的某些内容,你可能在那个文件中有以下内容
<policy domain="coder" rights="none" pattern="PDF" />
更改权限为 read|write
<policy domain="coder" rights="read|write" pattern="PDF" />
确保在更改后重启你的 webserver/php-fpm,否则旧设置将被缓存。如果这不起作用,这里有更多 StackOverflow 论坛上的提示 你可以尝试。
安装
要安装此插件,请按照以下说明操作
- 使用 composer 从你的项目目录通过
composer require spacecatninja/imager-x-pdf-adapter
安装。 - 在 Craft 控制面板的设置→插件下安装插件,或从命令行通过
./craft install/plugin imager-x-pdf-adapter
安装。
使用方法
按照以下说明安装和配置适配器。
现在,你可以通过将 PDF 文件添加到 Imager 的 transformImage
方法中简单地将 PDF 文件转换为图像。
{% set transforms = craft.imagerx.transformImage(myPdfAsset, { width: 200 }) %}
你可以通过使用 adapterParams
转换参数向适配器传递配置参数。
{% set transforms = craft.imagerx.transformImage(myPdfAsset, { width: 200, adapterParams: { density: 72, page: 5 } }) %}
你还可以将其作为单独的步骤创建适配器,这有利于更好地控制设置,并检查 PDF。
{% set pdf = craft.pdfadapter.load(asset, { density: 300 }) %}
# pages: {{ pdf.getNumPages() }}<br>
{% do pdf.setPage(5) %}
{% set transformPage5 = craft.imagerx.transformImage(pdf, { width: 600 }) %}
{% do pdf.setPage(pdf.getNumPages()) %}
{% set transformLastPage = craft.imagerx.transformImage(pdf, { width: 600 }) %}
自动生成
PDF 适配器与 Imager 中的 自动生成功能 完美配合。你需要做的唯一一件事是将 pdf
添加到要转换的安全文件格式列表中,使用配置设置 'safeFileFormats'。
'safeFileFormats' => ['jpg', 'jpeg', 'gif', 'png', 'pdf']
配置
你可以通过在你的配置文件夹中创建一个名为 imager-x-pdf-adapter.php
的文件来配置适配器,并按需覆盖设置。
defaultDensity [int]
默认值:144
设置从 PDF 转换为位图图像时使用的默认密度/dpi。
数字越高,生成的文件就越大,质量越好。但也会消耗更多资源,打开 PDF 是一个资源密集型任务,所以请小心。
defaultFormat [string]
默认值: 'png'
设置适配器生成的临时位图图像的默认格式。当然,您可以使用 Imager 在以后将其转换为任何所需的格式。
cacheEnabled [布尔值]
默认值: true
启用/禁用生成的图像的缓存。仅在测试时禁用此选项,因为它将严重影响性能。
cacheDuration [布尔值|整数]
默认值: false
当 cacheEnabled
为 true
时,设置 cacheDuration
。默认情况下,无限期。清除 Imager 运行时缓存也会清除此缓存。
价格、许可证和支持
该插件遵循 MIT 许可协议发布。它需要 Imager X,这是一个商业插件,可在 Craft 插件商店中找到:Imager X。