Конвертация Excel (xlsx, xls) в PDF с помощью PHP

264
01 февраля 2018, 19:33

Требуется после загрузки XLSX или XLS документа на сервер, сразу конвертировать его в PDF и отдавать клиенту.

Использовал PHPExcel, PhpSpreadsheet, FPDF, но, к сожалению, ничего не вышло.

Сейчас имею код (PHPExcel), который сохраняет исходный файл, после сохранения конвертирует в PDF и отдает клиенту, но полученный файл не удается открыть и его размер подозрительно мал.

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

$newname = "../../excel/".$_POST['par1']."/".$_POST['par2'].".xlsx";
if((move_uploaded_file($_FILES['uploadfile']['tmp_name'], $newname))) {
    $pdf_path = "../../pdf/{$_POST['par1']}/{$_POST['par2']}.pdf";
    require_once 'Classes/PHPExcel.php';
    $rendererName = PHPExcel_Settings::PDF_RENDERER_TCPDF;
    $rendererLibrary = 'tcPDF.php';
    $rendererLibraryPath = 'Classes/PHPExcel/Writer/PDF/'. $rendererLibrary;
    $inputFileType = PHPExcel_IOFactory::identify($newname);
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($newname); 
    $objPHPExcel->setActiveSheetIndex(0);
    if(!PHPExcel_Settings::setPdfRenderer($rendererName,$rendererLibraryPath)) {
        die('NOTICE: Please set the $rendererName and $rendererLibraryPath values'.'<br>'.'at the top of this script as appropriate for your directory structure');
    }
    header('Content-Type: application/pdf');
    header('Content-Disposition: attachment;filename="converted.pdf"');
    header('Cache-Control: max-age=0');
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');
    $objWriter->save('php://output');
    exit;
} else {
    echo "Error!";
}
READ ALSO
Токен для получения данных с другого сервера

Токен для получения данных с другого сервера

На прием-сервере имеется скрипт:

244
vagrant. ошибка при vagrant up

vagrant. ошибка при vagrant up

При запуске получаю ошибку: папка vagrant/config пустаяЯ не могу понять, что я не так делаю? Может быть забыли включить необходимые файлы в проект?

211