Files
PhpSpreadsheet/samples/Basic2/27_Images_Html_Pdf.php
T
oleibman b3de003aa5 Reorganize Samples
The samples have become unwieldy when running them from a browser. In particular, the drop-down lists are fixed size with no scrolling, and many of them are now just too large. I have moved all the Calculation samples up a level, and broken several categories (Basic, Chart, DateTime, Engineering, Financial, and Reader) into several pieces.

Convert-Online (now found in the Engineering category) had a number of different problems which are now resolved. It is the only member with any significant code change.
2024-02-03 07:25:29 -08:00

40 lines
1.3 KiB
PHP

<?php
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx as XlsxReader;
use PhpOffice\PhpSpreadsheet\Shared\File;
use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
use PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter;
require __DIR__ . '/../Header.php';
// Read from Xls (.xls) template
$helper->log('Load Xlsx template file');
$reader = IOFactory::createReader('Xls');
$initialSpreadsheet = $reader->load(__DIR__ . '/../templates/27template.xls');
$xlsxFile = File::temporaryFilename();
$writer = new XlsxWriter($initialSpreadsheet);
$helper->log('Save as Xlsx');
$writer->save($xlsxFile);
$initialSpreadsheet->disconnectWorksheets();
$reader2 = new XlsxReader();
$helper->log('Load Xlsx');
$spreadsheet = $reader2->load($xlsxFile);
$helper->log('Hide grid lines');
$spreadsheet->getActiveSheet()->setShowGridLines(false);
$helper->log('Set orientation to landscape');
$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(PageSetup::ORIENTATION_LANDSCAPE);
$className = Mpdf::class;
$helper->log("Write to PDF format using {$className}, and to Html");
IOFactory::registerWriter('Pdf', $className);
// Save
$helper->write($spreadsheet, __FILE__, ['Pdf', 'Html']);
unlink($xlsxFile);
$spreadsheet->disconnectWorksheets();