Останнє оновлення: 24 лип., 2025

Заголовок - Як конвертувати PDF у документи MS Word за допомогою PHP API?

Робота з PDF‑файлами у веб‑додатках стала поширеною вимогою у різних галузях. Незалежно від того, чи ви керуєте рахунками, контрактами чи академічним контентом, можливість конвертувати PDF у редаговані формати, такі як Microsoft Word (DOCX), є необхідною. На щастя, за допомогою потужних і безкоштовних PHP API розробники можуть автоматизувати та спростити цей процес.

Чому варто конвертувати PDF у Word у PHP?

PDF‑файли чудово підходять для розповсюдження, оскільки зберігають макет і дизайн. Однак їх редагування не завжди просте. Документи Word, навпаки, надзвичайно редаговані, що робить їх ідеальними для завдань, які вимагають взаємодії користувачів, оновлень або співпраці. Рішення на базі PHP дозволяє розробникам:

  • Увімкнути серверну пакетну конвертація PDF‑у‑Word
  • Інтегрувати робочі процеси редагування документів у веб‑додатках
  • Автоматизувати генерацію звітів та обробку документів
  • Дозволити кінцевим користувачам завантажувати редаговані версії їхніх файлів

Нижче наведено деякі з найнадійніших і безкоштовних PHP API та бібліотек, які допоможуть виконати конвертацію PDF у Word з мінімальними налаштуваннями.

PHPWord з PDF‑парсером

Для більшого контролю над процесом конвертації ви можете поєднати потужність PHPWord, бібліотеки для створення та маніпулювання Word‑документами, з бібліотекою розбору PDF.

Пояснення прикладу коду:

У цьому прикладі спочатку використовується бібліотека PDFParser для читання PDF і витягнення тексту з кожної сторінки. Потім PHPWord створює новий Word‑документ і додає витягнутий текст. Такий підхід дає тонкий контроль над вихідним результатом, дозволяючи форматувати текст і додавати інші елементи за потреби.

require_once 'vendor/autoload.php';

// Create a new PDF parser object
$parser = new \Smalot\PdfParser\Parser();

// Parse the PDF file
$pdf = $parser->parseFile('path/to/your/document.pdf');

// Retrieve all pages from the PDF
$pages = $pdf->getPages();

// Create a new PHPWord object
$phpWord = new \PhpOffice\PhpWord\PhpWord();

// Add a section to the Word document
$section = $phpWord->addSection();

// Loop through each page of the PDF
foreach ($pages as $page) {
    // Extract the text from the page
    $text = $page->getText();
    // Add the text to the Word document
    $section->addText($text);
}

// Save the Word document
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('output.docx');

echo "PDF content extracted and saved to Word successfully!";

Spatie PDF-to-Text + PHPWord (Конверсія на основі тексту)

Якщо ваші PDF‑файли містять переважно простий текст (без складних таблиць чи зображень), ви можете поєднати відкриті бібліотеки Spatie PDF-to-Text і PHPWord для легкого конвеєра конвертації.

Як це працює?

Це найпростіший метод, якщо у вас є доступ до Adobe Acrobat Pro.

Кроки:

  1. Спочатку вам потрібно використати Spatie\PdfToText API, який витягує простий текст з PDF‑файлів.
  2. Бібліотека PHPWord використовується для генерації Word‑документа з витягнутим вмістом.
  3. Найкраще підходить для PDF‑файлів лише з текстом без складного форматування.

Нижче наведено приклад коду, який показує, як витягнути текст з PDF‑файлу та потім створити Word‑документ з витягнутим вмістом за допомогою бібліотеки PHPWord.

PdfReader reader = new PdfReader("form.pdf");
FileOutputStream out = new FileOutputStream("data.fdf");
FdfWriter writer = new FdfWriter();
writer.setField("name", "John Doe");
writer.writeTo(out);
reader.close();
out.close();

Gotenberg через PHP (Відкритий Docker‑мікросервіс)

Gotenberg — це відкритий мікросервіс конвертації документів, який можна інтегрувати з PHP за допомогою HTTP‑запитів. Ідеально підходить для розробників, які віддають перевагу інструментам на базі Docker.

Як це працює?

  • Gotenberg використовує LibreOffice у бекенді для конвертації PDF.
  • Ви надсилаєте POST‑запит з PDF‑файлом.
  • Сервер повертає DOCX‑документ.
Code Snippet (PHP + Gotenberg)

Aspose.PDF Cloud for PHP (Free Tier)
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, 'http://localhost:3000/forms/libreoffice/convert');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);

$data = [
    [
        'name'     => 'files',
        'contents' => fopen('input.pdf', 'r'),
        'filename' => 'input.pdf'
    ]
];

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
file_put_contents('output.docx', $response);
curl_close($ch);

echo "Conversion done via Gotenberg!";

Aspose.PDF Cloud для PHP (Безкоштовний рівень)

Aspose.PDF Cloud PHP SDK надає потужний PHP SDK, який дозволяє розробникам конвертувати PDF‑файли у формат Word безпосередньо через їх хмарний API. Ви можете почати безкоштовно з обмеженою кількістю викликів API. Нижче простий приклад, який показує, як завантажити та конвертувати PDF‑файл у документи Microsoft Word DOCX за допомогою PHP‑команд.

use Aspose\Pdf\Cloud\PdfApi;
$pdfApi = new PdfApi('YOUR_APP_KEY', 'YOUR_APP_SID');
$pdfApi->putConvertDocument('sample.pdf', ['format' => 'docx']);

Підсумки

Конвертація PDF‑файлів у Word‑документи за допомогою PHP не обов’язково має бути складною чи дорогою. За допомогою правильних безкоштовних інструментів і бібліотек розробники можуть пропонувати користувачам безшовний експорт редагованих документів, підвищувати автоматизацію документів і підвищувати загальну продуктивність. Незалежно від того, чи ви віддаєте перевагу легким PHP‑обгорткам, чи потужним хмарним API, існує рішення, яке відповідає вашим потребам.

Питання та відповіді

Q: Чи можу я конвертувати PDF у Word у PHP без використання платних API?
A: Так, ви можете використовувати відкриті бібліотеки, такі як Spatie, PHPWord та LibreOffice CLI, безкоштовно.

Q: Чи підтримує конвертація PDF у Word з відкритим кодом зображення та форматування?
A: Базові інструменти їх не підтримують, але використання LibreOffice або Gotenberg зберігає макет і зображення.

Q: Чи можливо автоматизувати конвертацію PDF у DOCX у PHP‑веб‑додатках?
A: Абсолютно — ці бібліотеки можна інтегрувати в будь‑який PHP‑орієнтований робочий процес.

Дивіться також