21a_Pdf.php 986 B

123456789101112131415161718192021222324252627
  1. <?php
  2. use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;
  3. use PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf;
  4. require __DIR__ . '/../Header.php';
  5. $spreadsheet = require __DIR__ . '/../templates/sampleSpreadsheet.php';
  6. $helper->log('Hide grid lines');
  7. $spreadsheet->getActiveSheet()->setShowGridLines(false);
  8. $helper->log('Set orientation to landscape');
  9. $spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(PageSetup::ORIENTATION_LANDSCAPE);
  10. $spreadsheet->setActiveSheetIndex(0)->setPrintGridlines(true);
  11. // Issue 2299 - mpdf can't handle hide rows without kludge
  12. $spreadsheet->getActiveSheet()->getRowDimension(2)->setVisible(false);
  13. function changeGridlines(string $html): string
  14. {
  15. return str_replace('{border: 1px solid black;}', '{border: 2px dashed red;}', $html);
  16. }
  17. $helper->log('Write to Mpdf');
  18. $writer = new Mpdf($spreadsheet);
  19. $filename = $helper->getFileName('21a_Pdf_mpdf.xlsx', 'pdf');
  20. $writer->setEditHtmlCallback('changeGridlines');
  21. $writer->save($filename);