fawno/pdf-optimizer

PDF Optimizer

Maintainers

Package info

github.com/fawno/PDF-Optimizer

pkg:composer/fawno/pdf-optimizer

Statistics

Installs: 1

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

0.0.4 2026-03-17 03:33 UTC

This package is auto-updated.

Last update: 2026-03-18 02:47:41 UTC


README

GitHub license GitHub tag (latest SemVer) Packagist Packagist Downloads GitHub issues GitHub forks GitHub stars

PDF-Optimizer

PHP wrapper class for Ghostscript API

Requirements

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;
  }