mostafaznv/pdf-optimizer
Optimize and compress PDFs in PHP or Laravel using Ghostscript. Fluent, chainable API with rich options, logging, and customization. Laravel-friendly inputs (paths, uploads, disks) plus queue support for async optimization.
Retrieve the Ghostscript script generated by pdf-optimizer for external analysis or use. Choose between exportScriptAsString and exportScriptAsArray methods to obtain the script as a string or an array, respectively.
Retrieve the Ghostscript script or command generated by pdf-optimizer for further analysis or external use. The methods exportScriptAsString and exportScriptAsArray provide options to obtain the Ghostscript script as a string or an array, respectively.
{% tabs %} {% tab title="Standalone PHP" %}
use Mostafaznv\PdfOptimizer\PdfOptimizer;
use Mostafaznv\PdfOptimizer\Enums\ColorConversionStrategy;
# input file (optinal, could be null)
$input = 'path/to/large.pdf';
# output file (optinal, could be null)
$output = 'path/to/optimized.pdf';
# export script as array
$command = PdfOptimizer::init()
->compressFonts()
->colorImageResolution(60)
->colorConversionStrategy(ColorConversionStrategy::GRAY)
->command($input, $output);
var_dump($command);
{% endtab %}
{% tab title="Laravel" %}
use Mostafaznv\PdfOptimizer\Laravel\Facade\PdfOptimizer;
use Mostafaznv\PdfOptimizer\Enums\ColorConversionStrategy;
use Mostafaznv\PdfOptimizer\Enums\PdfSettings;
# input file (optinal, could be null)
$input = 'input.pdf';
# output file (optinal, could be null)
$output = 'optimized.pdf';
# export script as array
$command = PdfOptimizer::open($input)
->settings(PdfSettings::SCREEN)
->colorConversionStrategy(ColorConversionStrategy::GRAY)
->colorImageResolution(50)
->command($input, $output);
dd($command);
{% endtab %} {% endtabs %}
{% tabs %} {% tab title="Standalone PHP" %}
use Mostafaznv\PdfOptimizer\PdfOptimizer;
use Mostafaznv\PdfOptimizer\Enums\ColorConversionStrategy;
# input file (optinal, could be null)
$input = 'path/to/large.pdf';
# output file (optinal, could be null)
$output = 'path/to/optimized.pdf';
# export script as array
$command = PdfOptimizer::init()
->compressFonts()
->colorImageResolution(60)
->colorConversionStrategy(ColorConversionStrategy::GRAY)
->toString($input, $output);
echo $command;
{% endtab %}
{% tab title="Laravel" %}
use Mostafaznv\PdfOptimizer\Laravel\Facade\PdfOptimizer;
use Mostafaznv\PdfOptimizer\Enums\ColorConversionStrategy;
use Mostafaznv\PdfOptimizer\Enums\PdfSettings;
# input file (optinal, could be null)
$input = 'input.pdf';
# output file (optinal, could be null)
$output = 'optimized.pdf';
# export script as array
$command = PdfOptimizer::open($input)
->settings(PdfSettings::SCREEN)
->colorConversionStrategy(ColorConversionStrategy::GRAY)
->colorImageResolution(50)
->toString($input, $output);
dd($command);
{% endtab %} {% endtabs %}
{% hint style="info" %}
Both the command and toString methods have optional parameters that allow for specifying the input and output file paths, providing a more personalized export.
{% endhint %}
How can I help you explore Laravel packages today?