fawno / pdf-optimizer
PDF Optimizer
0.0.4
2026-03-17 03:33 UTC
Requires
- php: >=8.3.0
Requires (Dev)
- phpunit/phpunit: @stable
Suggests
- ext-ffi: Needed for use GhostscriptAPI Library
This package is auto-updated.
Last update: 2026-03-18 02:47:41 UTC
README
PDF-Optimizer
PHP wrapper class for Ghostscript API
Requirements
- PHP >= 8.3.0
- Ghostscript >= 9.56
- ext-ffi (Foreign Function Interface extension)
Instalation
php composer.phar require "fawno/pdf-optimizer"
<?php require __DIR__ . '/vendor/autoload.php'; use Fawno\PDFOptimizer\PDFOptimizerGhostscript;
Example with GS executable
<?php require __DIR__ . '/vendor/autoload.php'; use Fawno\Ghostscript\Ghostscript; use Fawno\Ghostscript\GhostscriptParameters; use Fawno\Ghostscript\Parameters\Enums\dPDFSETTINGSEnum; use Fawno\Ghostscript\Parameters\Enums\sDEVICEEnum; use Fawno\PDFOptimizer\PDFOptimizerGhostscript; const GS_BIN = '/usr/gs/bin/gswin64c.exe'; $params = GhostscriptParameters::create() ->device(sDEVICEEnum::PDFWRITE) ->pdfSettings(dPDFSETTINGSEnum::EBOOK) ; $gs = Ghostscript::create(GS_BIN)->set_bypass_shell(true)->set_create_process_group(true); $optimizer = PDFOptimizerGhostscript::create($gs); $code = $optimizer->optimize('original.pdf', 'optimized.pdf', $params, $stdout, $stderr); echo '***** OUTPUT:', PHP_EOL; echo $stdout, PHP_EOL; if ($code->isError()) { echo '***** ERROR:', PHP_EOL; echo $stderr, PHP_EOL; }
Example with GS library
<?php require __DIR__ . '/vendor/autoload.php'; use Fawno\Ghostscript\GhostscriptAPI; use Fawno\Ghostscript\GhostscriptParameters; use Fawno\Ghostscript\Parameters\Enums\dPDFSETTINGSEnum; use Fawno\Ghostscript\Parameters\Enums\sDEVICEEnum; use Fawno\Ghostscript\GhostscriptArgumentEncoding; use Fawno\PDFOptimizer\PDFOptimizerGhostscript; const GS_LIB = '/usr/gs/bin/gsdll64.dll'; $params = GhostscriptParameters::create() ->device(sDEVICEEnum::PDFWRITE) ->pdfSettings(dPDFSETTINGSEnum::EBOOK) ; $gs = GhostscriptAPI::create(GS_LIB)->set_arg_encoding(GhostscriptArgumentEncoding::UTF8); $optimizer = PDFOptimizerGhostscript::create($gs); $code = $optimizer->optimize('original.pdf', 'optimized.pdf', $params, $stdout, $stderr); echo '***** OUTPUT:', PHP_EOL; echo $stdout, PHP_EOL; if ($code->isError()) { echo '***** ERROR:', PHP_EOL; echo $stderr, PHP_EOL; }