ordinary9843 / ghostscript
使用Ghostscript合并/拆分所有PDF文件,猜测并转换PDF文件版本,并将PDF转换为图像。通过Ghostscript修复FPDI错误:此PDF文件可能使用了FPDI免费解析器不支持的数据压缩技术。
v2.2.4
2024-07-31 16:03 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: >=7.0
- vlucas/phpdotenv: >=5.0
README
如果您有任何需求的功能,请创建一个issue,我将尽力满足您的需求!
简介
使用Ghostscript合并/拆分所有PDF文件,猜测并转换PDF文件版本,并将PDF转换为图像。通过Ghostscript修复FPDI错误:此PDF文件可能使用了FPDI免费解析器不支持的数据压缩技术。
核心
此库具有以下功能
- 全功能:此库支持PDF版本预测、转换、合并和拆分。
- 对外部库的依赖性较低:大多数Ghostscript库对其他库的依赖性过高。
- 与多个PHP版本兼容:它可以在PHP 7.1 - 8.x上正常运行。
要求
此库有以下要求
- Ghostscript 9.50+
安装
安装 Ghostscript
apt-get install ghostscript
安装 ordinary9843/ghostscript
composer require ordinary9843/ghostscript
使用
示例使用
<?php require './vendor/autoload.php'; use Ordinary9843\Ghostscript; use Ordinary9843\Constants\GhostscriptConstant; use Ordinary9843\Constants\ImageTypeConstant; $file = './files/gs_ -test/test.pdf'; $binPath = '/usr/bin/gs'; $tmpPath = sys_get_temp_dir(); $ghostscript = new Ghostscript($binPath, $tmpPath); /** * This function sets the path for the Ghostscript binary, which will be used for PDF processing. */ $ghostscript->setBinPath($binPath); /** * This function sets the path for storing temporary files created during the PDF processing in Ghostscript. */ $ghostscript->setTmpPath($tmpPath); /** * This function analyzes the input PDF file and returns the guessed PDF version. * * Output: 1.5 */ $ghostscript->guess($file); /** * This function converts the version of the input PDF file to the specified PDF version. * * Output: './files/convert/test.pdf' */ $ghostscript->convert($file, GhostscriptConstant::STABLE_VERSION); /** * This function merges multiple PDF files into a single PDF file. * * Output: './files/merge/res.pdf' */ $ghostscript->merge('./files/merge', 'res.pdf', [ './files/merge/part_1.pdf', './files/merge/part_2.pdf', './files/merge/part_3.pdf' ]); /** * This function splits a PDF file into individual pages, each saved as a separate PDF file. * * Output: [ * './files/split/parts/part_1.pdf', * './files/split/parts/part_2.pdf', * './files/split/parts/part_3.pdf' * ] */ $ghostscript->split('./files/split/test.pdf', './files/split/parts'); /** * This function converts each page of a PDF file into individual image files. * * Output: [ * './files/to-image/images/image_1.pdf', * './files/to-image/images/image_2.pdf', * './files/to-image/images/image_3.pdf' * ] */ $ghostscript->toImage('./files/to-image/test.pdf', './files/to-image/images', ImageTypeConstant::JPEG); /** * This function calculates and returns the total number of pages in a PDF file. * * Output: 3 */ $ghostscript->getTotalPages('./files/get-total-pages/test.pdf'); /** * Clear temporary files generated during the PDF processing. */ $ghostscript->clearTmpFiles();
测试
将 .env.example
复制到 .env
cp .env.example .env
运行测试
composer test
许可证
(MIT 许可证)