@kickass77

Как сделать генерирование docx / pdf файла со своими данными из формы?

Здравствуйте.
Пользуюсь PHPWord при помощи composer, но не устраивает из-за ряда некоторых ошибок о которых ниже.

Сам код:

<?php

require_once 'vendor/autoload.php';

$uploadDir =  __DIR__;

$uploadFile = $uploadDir . '\\' . basename($_FILES['file']['name']);
move_uploaded_file($_FILES['file']['tmp_name'], $uploadFile);

$name = $_POST['name']; // Кто?!
$data = date("m.d.y");

$document = new \PhpOffice\PhpWord\TemplateProcessor('./original_doc.docx');
$outputFile = 'output_doc.docx';

$document->setValue('name', $name);
$document->setValue('data', $data);

$document->saveAs($outputFile);


// Имя скачиваемого файла
$downloadFile = $outputFile;

// Контент-тип означающий скачивание
header("Content-Type: application/octet-stream");

// Размер в байтах
header("Accept-Ranges: bytes");

// Размер файла
header("Content-Length: ".filesize($downloadFile));

// Расположение скачиваемого файла
header("Content-Disposition: attachment; filename=".$downloadFile);  

// Прочитать файл
readfile($downloadFile);

unlink($uploadFile);
unlink($outputFile);


После генерации документа и попытке открыть его на компьютере, получаю следующее:

621864f877b31938314900.png

Если нажать "Да", то документ открывается, все хорошо, но сообщение это слишком мешает.
При генерации файла через телефон (iOS), появляется окно с выбором, где можно просмотреть файл, либо загрузить.
Если нажать, чтобы просмотреть, возникает следующая ошибка:

621865d93171f000057511.jpeg

Как решить подобные проблемы или же чем можно заменить, чтобы можно было переконвертировать файл еще и в pdf из исходного docx? PHPWord позволяет конвертировать, но при попытках сделать это, коду становилось плохо, не помню, какая проблема возникала, но код был из официального мануала и при этом, настолько прост, что нельзя допустить какую-то ошибку.
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы