uiii/processwire-fieldtypepdf
Composer 安装命令:
composer require uiii/processwire-fieldtypepdf
包简介
Fieldtype/Inputfield module for ProcessWire allowing easy generation of thumbnails of the PDF files
关键字:
README 文档
README
Module for ProcessWire CMS allowing you to easily generate images from the PDF files embedded to the site.
- Requirements
- Installation
- How to use
- API documentation
- Tests
- Upgrading from 1.0.1 and lower
- Troubleshooting
- Changelog
Requirements
- Processwire 3+
- ImageMagick PHP extension
- Ghostscript
For ProcessWire 2.x support use version 1.x, maintained in pw-2 branch.
Installation
How to install or uninstall modules.
Via Composer
In your ProcessWire installation root run:
composer require uiii/processwire-fieldtypepdf
Login to your ProcessWire admin and go to Modules > Refresh and install the module.
If you want to read more about ProcessWire and Composer visit https://processwire.com/blog/posts/composer-google-calendars-and-processwire/
How to use
In site's administration
Add a field and set its type to PDF.
Use the field the same way as the file field (obviously, this accepts only *.pdf files).
After the file is uploaded you will see a small thumbnail of it, just like for image field.
Image generation is highly configurable (image format, extension, background, ...). See the PDF to image converter section on field's Details tab.
In templates
There are some backward-compatible API changes against the version 1.0.1 and lower, see Upgrading from 1.0.1 and lower.
The PDF field extends file field and adds new hookable ___toImage($page = 0, $options = array()) method to generate the image from PDF.
$image = $page->pdfFile->toImage(); $image->size(100, 100);
Method accepts two optional parameters. First is the $page, which specifies the PDF's page number the image is generated from, default is 0. The exception is thrown if the page is out of range.
The second is $options parameter, which is an array of options to override the options set in administration.
$options = array( 'suffix' => array('suffix1', 'suffix2'), // suffixes used in filename 'forceNew' => false, // if TRUE the image is regenerated if already exists 'format' => 'JPEG', // image format 'extension' => 'jpg', // image file extension 'background' => '#FFFFFF', // background color used when the PDF has transparent background 'resolution' => '300x300', // resolution used when reading the PDF 'colorspace' => Imagick::COLORSPACE_RGB, // colorspace used when reading the PDF 'imagickOptions' => array( // ImageMagick options 'pdf:use-cropbox=true' ) )
For each combinations of page and suffixes there will be one image. The generated images are saved in page's assets and will be created only once until forceNew options is TRUE. The image is the instance of Pageimage, so you can do with it whatever you can do with the image field. When you delete the PDF file the generated images are deleted too.
API documentation
Generate into doc directory:
apigen generate -d doc
Tests
DO NOT run the tests against the production site. They modify the fields, templates and pages as they need, so can potentially damage your site!
Prepare the PW testing installation and export the PW_PATH environment variable containing the path to the root of that installation. Copy the module sources in the $PW_PATH/site/modules/FieldtypePDF directory.
Install required packages:
composer install
Run the tests
./vendor/bin/phpunit
Test multiple ProcessWire versions (automatically)
You can also automatically test against multiple ProcessWire versions. It uses Tense tool for it.
-
Install reuquired packages:
composer install -
Run the tests:
vendor/bin/tense run
WARNING: The tool will ask you for database connection parameters. Configure the
dbconnection parameters carefully because it creates and drops a database for each ProcessWire installation.
Upgrading from 1.0.1 and lower
In 1.1.0 some methods of class PagePDF are deprecated. See the list here. You doesn't have to make any changes but it is recommended to use the new API, for compatibility with later versions.
Instructions for replacing the deprecated methods:
$page->pdf->thumbnail($width, $height)replace with the code
$image = $page->pdf->toImage(); $image->size($width, $height);
isThumbnail($basename)replace withisImageOfThis($basename)
NOTE: There is certain incompatibility between these two methods. While
isThumbnailreturns TRUE for all the images generated from the PDF and also theirs derivatives (e.g. pdf.jpg, pdf.100x100.jpg), theisImageOfThisreturn TRUE only for the images generated directly from PDF (e.g. pdf.jpg). That doesn't change much, because you can use it in combination withPageimage::isVariation.
removeThumbnailsreplace withremoveImages
Troubleshooting
Thumbnail's colors do not match the colors in PDF
To fix that, you need to made some changes in ImageMagick delegate files. Detailed instructions can be found here: http://www.lassosoft.com/CMYK-Colour-Matching-with-ImageMagick
GhostScript exceptions occured
If you got some GhostScript exceptions when generating image, update GhostScript and ImageMagick to the latest versions.
If you can't, you can use the fallback mode. Turn it on in the module's settings.
Be aware of that this will produce low quality images and most of the field type options won't be abvailable.
uiii/processwire-fieldtypepdf 适用场景与选型建议
uiii/processwire-fieldtypepdf 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 213 次下载、GitHub Stars 达 10, 最近一次更新时间为 2016 年 12 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「module」 「processwire」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 uiii/processwire-fieldtypepdf 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 uiii/processwire-fieldtypepdf 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 uiii/processwire-fieldtypepdf 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Installs processwire 3rd party modules to PW system "site/modules" directory.
Provides ProcessWire integration for various template engines such as Twig.
ProcessWire module adding Smarty to the TemplateEngineFactory
Module for ProcessWire which automatically generates Blurhashs.
Add AlpineJS to ProcessWire admin
Send ProcessWire Logs to Logstash/Kibana
统计信息
- 总下载量: 213
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 10
- 点击次数: 4
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-12-09