Skip to content

fawno/PDF-Optimizer

Repository files navigation

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

About

PDF Optimizer

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages