murkrow / pdf-utils
A poppler-utils wrapper for Laravel applications
0.4
2023-10-18 08:42 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^10.0
- illuminate/support: ^10.28
- laravel/framework: ^10.28
- spatie/temporary-directory: ^2.2
Requires (Dev)
- orchestra/testbench: ^8.13
- pestphp/pest: ^2.24
- pestphp/pest-plugin-laravel: ^2.2
README
A wrapper for popper-utils for your Laravel project
Prerequisites
Ensure to have poppler-utils installed on your system. You can install it with the following command:
sudo apt-get install poppler-utils
or if you are using a Mac:
brew install poppler
Installation
You can install the package via composer:
composer require murkrow/pdf-utils
You can publish the config file with:
php artisan vendor:publish --provider="Murkrow\PdfUtils\PdfUtilsServiceProvider"
Usage
Convert PDF to text
use Murkrow\PdfUtils\Services\ParsePdfTextService; ParsePdfTextService::create() ->setInputFile("example.pdf") ->flattenText(false) ->execute() ->getOperationResult()
Merge multiple PDFs into one
use Murkrow\PdfUtils\Services\MergePdfService; MergePdfService::create() ->setInputFiles(["1.pdf", "2.pdf"]) ->addInputFile("3.pdf") ->setOutputFile("123.pdf") ->execute();
Split PDF into multiple PDFs
use Murkrow\PdfUtils\Services\SplitPdfService; SplitPdfService::create() ->setInputFile("123.pdf") ->setOutputFilesDirectory("splitting") ->fromPage(1) ->toPage(3) ->setOutputFileNamePrefix("output") ->execute();
Extract page range from PDF
use Murkrow\PdfUtils\Services\ExtractPdfPageRangeService; ExtractPdfPageRangeService::create() ->fromPage(1) ->toPage(2) ->setInputFile('big.pdf') ->setOutputFile('subset.pdf') ->execute();
Get PDF info (incomplete)
use Murkrow\PdfUtils\Services\GetPdfInfoService; $result = GetPdfInfoService::create() ->setInputFile("123.pdf") ->execute(); dd($result->pages);
Testing
vendor/bin/pest
Contributing
Contributions are welcome, you are free to open a PR or an issue.
Changelog
Please see CHANGELOG for more information on what has changed recently.
License
The MIT License (MIT). Please see License File for more information.