Paperdoc — це PHP-бібліотека від Zerarka Mohamed Ali Akram для створення, парсингу та конвертації документів через єдиний API. Замість того, щоб використовувати окремі пакети для кожного формату, Paperdoc надає універсальний інтерфейс для всього: від PDF до електронних таблиць. Бібліотека підтримує як сучасні формати (PDF, DOCX, XLSX, PPTX, HTML, CSV, Markdown), так і застарілі (DOC, XLS, PPT). Усі операції двосторонні: ви можете як читати наявні файли, так і генерувати нові.
# Основні можливості
Генерація документів — створюйте файли з нуля у будь-якому підтримуваному форматі. Ви працюєте зі структурованою моделлю документа (секції, абзаци, таблиці тощо), яка коректно трансформується у вибраний формат виводу:
use Paperdoc\Support\DocumentManager;
use Paperdoc\Document\Style\TextStyle;
$doc = DocumentManager::create('pdf', 'My PaperDoc Demo Document');
$boldStyle = TextStyle::make()
->setBold()
->setColor('#f9332b')
->setFontSize(14);
$section = $doc->openSection();
$section->addHeading('Generate, Parse, and Convert Documents in PHP with Paperdoc');
$section->addParagraph('Paperdoc is a PHP library by Zerarka Mohamed Ali Akram for generating, parsing, and converting documents across multiple file formats through a single unified API.');
$section->addParagraph(
'Convert PDF, HTML, CSV, DOCX, XLSX, PPTX, Markdown and more.',
$boldStyle
);
DocumentManager::save($doc, 'output/paperdoc.pdf');
Парсинг — завантажуйте файли в нормалізовану модель у пам'яті. Це забезпечує стабільну структуру даних незалежно від формату джерела:
$doc = DocumentManager::open('paperdoc.pdf');
foreach ($doc->getSections() as $section) {
foreach ($section->getParagraphs() as $paragraph) {
echo $paragraph->getText();
}
}
Конвертація форматів — миттєво перетворюйте документи з одного формату на інший одним викликом:
DocumentManager::convert('paperdoc.pdf', 'paperdoc.docx', 'docx');
Рендеринг у рядок — замість збереження на диск ви можете отримати вміст документа безпосередньо у вигляді рядка, що зручно для формування HTTP-відповідей:
$html = DocumentManager::renderAs($doc, 'html');
OCR-обробка — вилучайте текст зі сканованих документів за допомогою Tesseract. Це дозволяє працювати із зображеннями або PDF без текстового шару. Для роботи потрібен встановлений бінарний файл Tesseract та вказаний шлях у конфігурації config/paperdoc.php.
ШІ-функції — опціональна інтеграція з Neuron AI додає можливості на базі LLM: сумаризацію документів, переклад та вилучення структурованих даних.
Мініатюри — створюйте зображення для попереднього перегляду через методи thumbnail() або thumbnailDataUri(). Зверніть увагу: для якісного рендерингу потрібні сторонні утиліти — LibreOffice для офісних пакетів, а також Imagick або Ghostscript для PDF.
Пакетна обробка — відкривайте та обробляйте декілька документів одночасно:
$docs = DocumentManager::openBatch([
'file1.pdf',
'file2.docx',
'file3.xlsx',
]);
# Інтеграція з Laravel
Paperdoc має нативну підтримку Laravel 11+, включаючи ServiceProvider, Facade та Artisan-команди. Завдяки auto-discovery Facade реєструється автоматично, надаючи зручний інтерфейс Paperdoc:
use Paperdoc\Facades\Paperdoc;
$doc = Paperdoc::create('md', 'Paperdoc + Laravel');
$doc->openSection()
->addParagraph('Paperdoc also works great with Laravel!');
Paperdoc::save($doc, storage_path('app/private/articles/paperdoc-and-laravel.pdf'));
Paperdoc::convert('articles/paperdoc-and-laravel.md', 'articles/paperdoc-laravel.pdf', 'pdf');
$html = Paperdoc::renderAs($doc, 'html');
$docs = Paperdoc::openBatch([
'file1.pdf',
'file2.docx',
'file3.xlsx',
]);
Вихідний код доступний на GitHub, а детальна інформація — на офіційному сайті Paperdoc.