ivoba / silverstripe-simple-pdf-preview
为 SilverStripe CMS 设计的简单 PDF 预览扩展
2.3.0
2022-12-17 15:48 UTC
Requires
- php: ^7.4 || ^8.0
- ext-imagick: *
- silverstripe/asset-admin: ^1.4
- silverstripe/framework: ^4
Requires (Dev)
- phpunit/phpunit: ^9.5
README
为 SilverStripe CMS 设计的简单 PDF 预览扩展
动态创建 PDF 文件的 Jpg 预览图片。
安装
通过 Composer
{ "require": { "ivoba/silverstripe-simple-pdf-preview": "~2.0" } }
需求
- SilverStripe 4
- 您将需要 Imagick 扩展。
对于 SilverStripe 3,请使用 v1。
使用方法
在您的模板中,只需调用 $Pdf.getPdfPreviewImage
,其中 $Pdf 是您的包含 PDF 文件的对象。您随后将拥有一个正常的 Image 对象,您可以在其上应用您通常可以在 SilverStripe 中应用于图像的所有方法。例如:$Pdf.getPdfPreviewImage.Fill(60,60)
如果您对非 PDF 文件调用此方法,则返回 null。
配置
您可以在您的 config.yml 中覆盖所有参数。
Ivoba\SilverStripe\SimplePdfPreview\SimplePdfPreviewImageExtension: dependencies: generator: %$Ivoba\SilverStripe\SimplePdfPreview\SimplePdfPreviewImagickGenerator folderToSave: "assets/someOtherFolder/" imagePrefix: "pdf-foobar" Injector: Ivoba\SilverStripe\SimplePdfPreview\SimplePdfPreviewImagickGenerator: class: Ivoba\SilverStripe\SimplePdfPreview\SimplePdfPreviewExecGenerator
您可以创建自己的 Generator 类,只需实现 SimplePdfPreviewGeneratorInterface
。这可能是在您不想使用 Imagick 而是直接通过 exec 使用 ImageMagick 的情况下。
测试
为包独立运行测试
启动 docker 容器
docker-compose run php bash
在容器内运行
SS_DATABASE_NAME=ss SS_DATABASE_PASSWORD=ss SS_DATABASE_SERVER=db SS_DATABASE_USERNAME=ss vendor/bin/phpunit
免责声明
这个扩展是“简单”的,因为它只会创建一个松散的 Image 对象。映射是通过文件名发生的。所以这有点危险,但对于大多数情况来说足够了。
有人请制作一个更好的 PDF 扩展,包括 PDF 文件类型、PDF 文件字段以及在上传后生成预览图片。 :)
许可
MIT 许可证 (MIT)。请参阅许可文件获取更多信息。