mostafaznv/pdf-optimizer
Optimize and compress PDFs in PHP or Laravel using Ghostscript. Fluent API with extensive option support, logging, and customization. Works with file paths, UploadedFile, and storage disks, with optional 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?