ivoba/silverstripe-simple-pdf-preview

为 SilverStripe CMS 设计的简单 PDF 预览扩展

安装: 779

依赖项: 0

建议者: 0

安全: 0

星星: 6

关注者: 2

分支: 5

开放性问题: 0

类型:silverstripe-vendormodule

2.3.0 2022-12-17 15:48 UTC

This package is auto-updated.

Last update: 2024-09-19 11:38:21 UTC


README

为 SilverStripe CMS 设计的简单 PDF 预览扩展

Total Downloads

动态创建 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)。请参阅许可文件获取更多信息。