bolongo / phppdfcrop
pdfcrop的PHP包装器
Requires
- php: >=5.6.0
- mikehaertl/php-shellcommand: ^1.5.0
- mikehaertl/php-tmpfile: ^1.1.0
Requires (Dev)
- phpunit/phpunit: >4.0 <8
This package is auto-updated.
Last update: 2024-09-15 07:15:41 UTC
README
PHP PDFcrop是基于pdfcrop的PHP包装器,它依赖于PHP WkhtmlToPdf,由Michael Härtl创建。**必须将pdfcrop命令安装在系统中。**
安装
通过composer安装此包
composer require bolongo/phppdfcrop
确保在代码库的某个位置包含composer的自动加载器。
示例
// You can pass a filename or an options array to the constructor $pdfCrop = new PdfCrop('/path/to/document.pdf'); if($pdfCrop->getError() != null) { //Handle error here }
选项
命令选项
这些选项用作shell命令pdfcrop的选项。有关这些选项的更好解释,请参阅pdfcrop --help
。
//Default values $options = [ 'verbose' => false,//bool 'debug' => false,//bool 'gscmd' => 'gs',//string 'tex-extension' => 'pdftex',//string 'pdftexcmd' =>'pdftex',//string 'xetexcmd' => 'xetex',//string 'luatexcmd' => 'luatex',//string 'margins' => [0, 0, 0, 0],//array|string 'clip' => false,//bool 'hires' => false,//bool 'ini' => false,//bool 'restricted' => false,//bool 'papersize' => null,//string 'resolution' => null,//string|int 'bbox' => null,//string|array 'bbox-odd' => null,//string|array 'bbox-even' => null,//string|array 'pdfversion' => null,//string 'original' => null,//string ];
描述
- verbose: 使命令进行详细打印。
- debug: 使命令打印调试信息。
- gscmd: 指定命令要使用的ghostscript命令的路径。
- tex-extension: 指定命令要使用的tex扩展。值必须是
pdftex
、xetex
或luatex
。此选项是pdfcrop
shell命令中存在的--pdftex
、--xetex
和--luatex
选项的并集,其中必须指定这些选项中的一个。 - pdftexcmd: 指定命令要使用的pdftex命令的路径。
- xetexcmd: 指定命令要使用的xetex命令的路径。
- luatexcmd: 指定命令要使用的luatex命令的路径。
- margins: 指定命令的额外边距,单位为bp。如果只提供一个数字,则用于所有边距;如果有两个数字,则用于右边和底部。
- clip: 如果设置了边距,则指定命令的剪裁支持。
- hires: 指定使用
%%HiResBoundingBox
而不是%%BoundingBox
。 - ini: 指定将TeX编译器的iniTeX变体用于命令。
- original: 要由命令裁剪的文件。
如何设置PDFCrop实例的选项
$pdfCrop = new PDFCrop($options); $pdfCrop->setOptions($options);
original选项是特殊的,因为它可以作为构造函数设置的数组成员、setOptions($options)
方法设置的数组,或者直接在属性original
上指定。
$pdfCrop = new PDFCrop('/path/to/document.pdf'); $pdfCrop->original = '/path/to/document.pdf';
包装器选项
这些选项仅适用于包装器。这些选项可以传递给包装器,通过构造函数或通过setOptions($options)
方法,与命令选项
混合。
//Default values $commandOptions = [ 'binary' => 'pdfcrop',//string 'tmpDir' => null,//string 'ignoreWarnings' => true,//bool 'ignoreOptionValidationErrors' => true,//bool ]; $pdfCrop = new PDFCrop($commandOptions); $pdfCrop->setOptions($commandOptions); $pdfCrop->binary = '/path/to/pdfcrop'; $pdfCrop->tmpDir = '/path/to/tmpDir'; $pdfCrop->ignoreWarnings = true; $pdfCrop->ignoreOptionValidationErrors = true;
描述
- binary:
pdfcrop
命令的路径。 - tmpDir: tmp目录的路径。默认为PHP的临时目录。
- ignoreWarnings: 防止进程抛出异常。
- ignoreOptionValidationErrors: 防止选项验证抛出异常(损坏的选项将被忽略)。
错误处理
new PDFCrop($options)
和setOptions($options)
如果选项格式错误并且选项ignoreOptionValidationErrors
设置为false
,则抛出异常。
$options = [ 'ignoreOptionValidationErrors' => false, 'tex-extension' => 'im wrong', ]; try { $pdfCrop = new PDFCrop($options); $pdfCrop->setOptions($options); } catch(Exception $e) { //The detailed error message will be present in the getMessage() method $e->getMessage(); }
new saveAs($options)
和toString()
如果命令或生成的文件保存过程中出现错误,并且ignoreWarnings
设置为false
,则抛出异常。
$options = [ 'original' => '/path/to/original.pdf', 'ignoreWarnings' => false, ]; $pdfCrop = new PDFCrop($options); try { $pdfCrop->saveAs('/path/to/cropped.pdf'); $croppedPdfContents = $pdfCrop->toString(); } catch(Exception $e) { //The detailed error message will be present in the getMessage() method $e->getMessage(); }
saveAs($options)
和 toString()
方法中设置 ignoreWarnings
选项为 true
将会防止异常信息的显示,但如果在处理过程中或保存生成的文件时出现错误,getError()
方法将返回包含详细错误信息的字符串。
$options = [ 'original' => '/path/to/original.pdf', ]; $pdfCrop = new PDFCrop($options); $croppedPdfContents = $pdfCrop->toString(); if($pdfCrop->getError() != null) { //Handle error } $pdfCrop->saveAs('/path/to/cropped.pdf'); if($pdfCrop->getError() != null) { //Handle error }
更新日志
请在此处查看该库的更新日志:这里。