webit/phpgs
最新稳定版本:1.0.0
Composer 安装命令:
composer require webit/phpgs
包简介
PHP Wrapper for Ghost Script
README 文档
README
This package provides PHP Wrapper for GhostScript. It also provides a simple tool for PDF pages splitting / merging.
Installation
composer require webit/phpgs=^1.0
Usage
Executor
For general purpose use Executor as a generic wrapper for the Ghost Script
use Webit\PHPgs\ExecutorBuilder; use Webit\PHPgs\Input; use Webit\PHPgs\Output; use Webit\PHPgs\Options\Options; use Webit\PHPgs\Options\Device; /** @var \Webit\PHPgs\Executor $executor */ $executor = ExecutorBuilder::create()->setGhostScriptBinary('/path/to/the/binary/of/gs')->build(); $input = Input::singleFile('/path/to/your/input_file'); $output = Output::create('/path/to/your/tempdir/output.pdf'); // Please note Options class is immutable (every change creates a new instance) $options = Options::create(Device::pdfWrite()) // set predefined options (see Options class for all predefined options) ->withNoTransparency() ->useCropBox() ->useCIEColor() // change any option you need ->withOption('-dWhatever', 'value of whatever'); $executor->execute($input, $output, $options);
PdfManipulator
PdfManipulator provides simplified interface for PDF splitting / merging
Merging
use Webit\PHPgs\Pdf\PdfManipulator; $pdfManipulator = new PdfManipulator($executor); $input = Input::multipleFiles( array( 'one.pdf', 'two.pdf', 'three.pdf' ) ); $output = Output::create('/temp-dir/random-5322/output.pdf'); $customOptions = Options::create(); // optional $pdfManipulator->merge($input, $output, $customOptions);
Splitting pages
use Webit\PHPgs\Pdf\PdfManipulator; $pdfManipulator = new PdfManipulator($executor); $input = Input::singleFile('multipage.pdf'); // multi page output $output = Output::create('/temp-dir/random-12322/output-%d.pdf'); // single page output // $output = Output::create('/temp-dir/random-12322/output.pdf'); $customOptions = Options::create(); // optional // splitting pages from 5 to 10 $pdfManipulator->split($input, $output, 5, 10, $customOptions); // produces output-5.pdf, output-6.pdf, ... // splitting pages from 5 to the last page $pdfManipulator->split($input, $output, 5, null, $customOptions); // produces output-5.pdf, output-6.pdf, ... // splitting pages from 1 to 10 $pdfManipulator->split($input, $output, null, 10, $customOptions); // produces output-1.pdf, output-2.pdf, ..., output-10.pdf
Note: To make sure multi-page splitting will work properly, an output always must refer to an empty directory.
Tests
docker-compose run --rm php5 ./vendor/bin/phpunit
统计信息
- 总下载量: 2.66k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-11-01