PHP wrapper class for Ghostscript API
- PHP >= 8.3.0
- Ghostscript >= 9.56
- ext-ffi (Foreign Function Interface extension)
php composer.phar require "fawno/pdf-optimizer"<?php
require __DIR__ . '/vendor/autoload.php';
use Fawno\PDFOptimizer\PDFOptimizerGhostscript;<?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;
}<?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;
}