bymayo / pdf-transform
将 PDF 页面转换为图像(JPEG,PNG)
5.0.1
2024-05-30 12:49 UTC
Requires
- craftcms/cms: ^5.0.0
- spatie/pdf-to-image: ^2.3.0
Requires (Dev)
- craftcms/phpstan: dev-main
- craftcms/rector: dev-main
README
适用于 Craft CMS 5 的 PDF 转换
PDF 转换是一个 Craft CMS 插件,可以将存储在资产中的 PDF 转换为图像。然后可以通过 Twig 在模板中输出。
这个用例是在用户下载特定文件之前显示 PDF 预览。
功能
- 通过 Twig 将 PDF 转换为图像(文件需要是现有的资产元素)
- 当通过资产或资产字段上传 PDF 时,将 PDF 转换为图像。
- 转换后的 PDF 图像已索引并在资产中可用,就像所有其他资产元素一样。
- 支持本地资产卷、Amazon S3 和 Servd。
安装
- 通过在项目目录下运行
composer require bymayo/pdf-transform
使用 Composer 安装 - 在 Craft 控制面板的
设置 > 插件
下启用/安装插件 - 自定义插件设置,特别是
图像卷
选项。
您还可以通过在 Craft 管理控制面板的插件商店中搜索 PDF 转换
来安装插件。
要求
- Craft CMS 5.x
- Imagick / Ghostscript
- MySQL(不支持 PostgreSQL)
配置
模板
要转换 PDF 为图像,请使用以下 Twig 标签
{% set pdfToTransform = entry.pdfAsset.one() %}
{% set transformedPdf = craft.pdfTransform.render(pdfToTransform) %}
{{ transformedPdf.one().url }}
转换后的 PDF(现在存储在资产中的图像)可以使用 {{ transformedPdf.one().url }}
输出。或者获取任何资产属性,例如 title
、id
、filename
等。
如果转换后的图像不存在,则 PDF 将通过模板进行转换。这可能会导致模板/页面在 PDF 转换期间变慢。
请注意,这也可能输出一个大型图像,因此我们建议运行图像转换。请参阅 尺寸。
已知问题
Imagick / Ghostscript
该插件通过名为 pdf-to-image 的 PDF 库运行 PDF。它们在 Imagick 中存在已知问题,如果 Ghost Script 无法通过 Imagick 访问,转换可能会失败(非常容易解决)
有关此问题的更多信息 - https://github.com/spatie/pdf-to-image#issues-regarding-ghostscript。
尺寸
PDF 转换的基本功能是将您的 PDF 转换为单个图像。它永远不会设置宽度和高度维度(除了图像分辨率)。
我建议运行 PDF 图像通过以下选项/插件之一,并设置尺寸(其中一些也处理图像缓存)
支持
如果您有任何问题(当然不会有!),我会尽快回复。如果这是一个网站崩溃-哦不-发生了什么事的时候,请通过 Craft CMS Discord - @bymayo 联系我。
路线图
- 可选变量(例如页面、分辨率等)
- 当 PDF 资产更新时,确保删除旧的转换图像。