spacecatninja/imager-x-pdf-适配器

Imager X 的 PDF 文件适配器,用于转换 PDF 文件

1.1.0 2024-02-09 20:16 UTC

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 论坛上的提示 你可以尝试。

安装

要安装此插件,请按照以下说明操作

  1. 使用 composer 从你的项目目录通过 composer require spacecatninja/imager-x-pdf-adapter 安装。
  2. 在 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
cacheEnabledtrue 时,设置 cacheDuration。默认情况下,无限期。清除 Imager 运行时缓存也会清除此缓存。

价格、许可证和支持

该插件遵循 MIT 许可协议发布。它需要 Imager X,这是一个商业插件,可在 Craft 插件商店中找到:Imager X