PHPackages                             scrapify-dev/pdf-tools - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. scrapify-dev/pdf-tools

ActiveLibrary[PDF &amp; Document Generation](/categories/documents)

scrapify-dev/pdf-tools
======================

A Laravel package to merge PDF files using Python

v1.0.0(9mo ago)01PHPPHP ^8.0

Since Aug 14Pushed 9mo agoCompare

[ Source](https://github.com/HenaAndhariya17/scrapify_package)[ Packagist](https://packagist.org/packages/scrapify-dev/pdf-tools)[ RSS](/packages/scrapify-dev-pdf-tools/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (7)Versions (2)Used By (0)

📄 Scrapify PDF Tools Library

A Laravel package for **all-in-one PDF processing** — merge, split, compress, convert, OCR, watermark, protect, and more. Includes **20+ tools** for complete document control.

---

📦 Installation
--------------

[](#-installation)

```
composer require scrapify-dev/image-tools
```

---

⚙️ Requirements
---------------

[](#️-requirements)

- **PHP**: `^8.0`
- **Laravel**: `^9.0 | ^10.0 | ^11.0 | ^12.0`
- **Dependencies:**

    - `php`: `^8.0`
    - `illuminate/support`: `^9.0|^10.0|^11.0|^12.0`
    - `dompdf/dompdf`: `^3.1`
    - `phpoffice/phpword`: `^1.4`
    - `phpoffice/phpspreadsheet`: `^4.4`
    - `smalot/pdfparser`: `2.12.0`
    - `setasign/fpdi`: `^2.3`
    - `tecnickcom/tcpdf`: `^6.7`
    - `spatie/pdf-to-image`: `^2.3`
    - `symfony/process`: `^6.0|^7.0`

---

📑 Tools Overview &amp; Usage Examples
-------------------------------------

[](#-tools-overview--usage-examples)

### 1️⃣ Merge PDF

[](#1️⃣-merge-pdf)

```
use Scrapify\PdfTools\PdfMerge;

$pdfMerge = new PdfMerge();
$pdfMerge->merge(
    [public_path('file1.pdf'), public_path('file2.pdf')],
    public_path('merged.pdf')
);
```

### 2️⃣ Split PDF

[](#2️⃣-split-pdf)

```
use Scrapify\PdfTools\PdfSplit;

$pdfSplit = new PdfSplit();
$pdfSplit->split(public_path('file.pdf'), storage_path('app/public/splits'));
```

### 3️⃣ Compress PDF

[](#3️⃣-compress-pdf)

```
use Scrapify\PdfTools\PdfCompressor;

$compressor = new PdfCompressor();
$compressor->compress(public_path('big.pdf'), public_path('small.pdf'));
```

### 4️⃣ Office to PDF

[](#4️⃣-office-to-pdf)

```
use Scrapify\PdfTools\OfficeToPdf;

$converter = new OfficeToPdf();
$converter->convert(public_path('document.docx'), public_path('output.pdf'));
```

### 5️⃣ PDF OCR

[](#5️⃣-pdf-ocr)

```
use Scrapify\PdfTools\PdfOcr;

$ocr = new PdfOcr();
$text = $ocr->extractText(public_path('scanned.pdf'));
```

### 6️⃣ Rotate PDF

[](#6️⃣-rotate-pdf)

```
use Scrapify\PdfTools\PdfRotate;

$rotator = new PdfRotate();
$rotator->rotate(public_path('file.pdf'), 90, public_path('rotated.pdf'));
```

### 7️⃣ PDF to JPG

[](#7️⃣-pdf-to-jpg)

```
use Scrapify\PdfTools\PdfToImage;

$pdfToImage = new PdfToImage(public_path('file.pdf'));
$pdfToImage->saveImage(public_path('images/page_%d.jpg'));
```

### 8️⃣ Image to PDF

[](#8️⃣-image-to-pdf)

```
use Scrapify\PdfTools\ImageToPdf;

$imageToPdf = new ImageToPdf();
$imageToPdf->convert([public_path('img1.png'), public_path('img2.jpg')], public_path('output.pdf'));
```

### 9️⃣ Unlock PDF

[](#9️⃣-unlock-pdf)

```
use Scrapify\PdfTools\PdfUnlock;

$unlocker = new PdfUnlock();
$unlocker->unlock(public_path('locked.pdf'), 'password', public_path('unlocked.pdf'));
```

### 🔟 Watermark PDF

[](#-watermark-pdf)

```
use Scrapify\PdfTools\PdfWatermark;

$watermark = new PdfWatermark();
$watermark->apply(public_path('file.pdf'), public_path('logo.png'), public_path('watermarked.pdf'));
```

### 1️⃣1️⃣ Page Number PDF

[](#1️⃣1️⃣-page-number-pdf)

```
use Scrapify\PdfTools\PdfPageNumber;

$pageNumber = new PdfPageNumber();
$pageNumber->addNumbers(public_path('file.pdf'), public_path('numbered.pdf'));
```

### 1️⃣2️⃣ Repair PDF

[](#1️⃣2️⃣-repair-pdf)

```
use Scrapify\PdfTools\PdfRepair;

$repair = new PdfRepair();
$repair->repair(public_path('corrupt.pdf'), public_path('fixed.pdf'));
```

### 1️⃣3️⃣ PDF to PDF/A

[](#1️⃣3️⃣-pdf-to-pdfa)

```
use Scrapify\PdfTools\PdfToPdfA;

$pdfToPdfA = new PdfToPdfA();
$pdfToPdfA->convert(public_path('file.pdf'), public_path('archival.pdf'));
```

### 1️⃣4️⃣ Protect PDF

[](#1️⃣4️⃣-protect-pdf)

```
use Scrapify\PdfTools\PdfProtect;

$protect = new PdfProtect();
$protect->protect(public_path('file.pdf'), 'ownerpass', 'userpass', public_path('protected.pdf'));
```

### 1️⃣5️⃣ Validate PDF/A

[](#1️⃣5️⃣-validate-pdfa)

```
use Scrapify\PdfTools\PdfValidatePdfA;

$validator = new PdfValidatePdfA();
$isValid = $validator->validate(public_path('archival.pdf'));
```

### 1️⃣6️⃣ Extract PDF

[](#1️⃣6️⃣-extract-pdf)

```
use Scrapify\PdfTools\PdfExtract;

$extract = new PdfExtract();
$extract->extract(public_path('file.pdf'), [1, 3, 5], public_path('extracted.pdf'));
```

### 1️⃣7️⃣ Organize PDF

[](#1️⃣7️⃣-organize-pdf)

```
use Scrapify\PdfTools\PdfOrganize;

$organize = new PdfOrganize();
$organize->reorder(public_path('file.pdf'), [3, 1, 2], public_path('reordered.pdf'));
```

### 1️⃣8️⃣ HTML to PDF

[](#1️⃣8️⃣-html-to-pdf)

```
use Scrapify\PdfTools\HtmlToPdf;

$htmlToPdf = new HtmlToPdf();
$htmlToPdf->convert('Hello', public_path('output.pdf'));
```

### 1️⃣9️⃣ Edit PDF

[](#1️⃣9️⃣-edit-pdf)

```
use Scrapify\PdfTools\PdfEdit;

$editor = new PdfEdit();
$editor->addText(public_path('file.pdf'), 'Confidential', public_path('edited.pdf'));
```

### 2️⃣0️⃣ PDF to Word

[](#2️⃣0️⃣-pdf-to-word)

```
use Scrapify\PdfTools\PdfToWord;

$pdfToWord = new PdfToWord();
$pdfToWord->convert(public_path('file.pdf'), public_path('output.docx'));
```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance58

Moderate activity, may be stable

Popularity1

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

278d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/4f9ae840f4b060d80152376903886f7b47b0921cc96937182947d478378fc918?d=identicon)[HenaAndhariya17](/maintainers/HenaAndhariya17)

---

Top Contributors

[![HenaAndhariya17](https://avatars.githubusercontent.com/u/137869374?v=4)](https://github.com/HenaAndhariya17 "HenaAndhariya17 (1 commits)")

### Embed Badge

![Health badge](/badges/scrapify-dev-pdf-tools/health.svg)

```
[![Health](https://phpackages.com/badges/scrapify-dev-pdf-tools/health.svg)](https://phpackages.com/packages/scrapify-dev-pdf-tools)
```

###  Alternatives

[maatwebsite/excel

Supercharged Excel exports and imports in Laravel

12.7k144.3M712](/packages/maatwebsite-excel)[barryvdh/laravel-dompdf

A DOMPDF Wrapper for Laravel

7.3k87.6M278](/packages/barryvdh-laravel-dompdf)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

728272.9k20](/packages/civicrm-civicrm-core)[elibyy/tcpdf-laravel

tcpdf support for Laravel 6, 7, 8, 9, 10, 11

3542.7M5](/packages/elibyy-tcpdf-laravel)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.0k15.4k](/packages/prestashop-prestashop)[kimai/kimai

Kimai - Time Tracking

4.6k7.4k1](/packages/kimai-kimai)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
