如何使 TCPDF 适合 PhpSpreadsheet 中的内容

问题描述 投票:0回答:1

我需要定期填写现有的Excel表格并将其导出为PDF。但我无法做到让内容适合页面。

$spreadsheet = IOFactory::load(Storage::path('Time&Attendance Template.xltx'));
$sheet = $spreadsheet->getActiveSheet();
$pdfWriter = new Tcpdf($spreadsheet);

$sheet->getCell('A1')->setValue(Str::random());
$pdfWriter->setPaperSize(PageSetup::PAPERSIZE_A4);
$pdfWriter->setOrientation(PageSetup::ORIENTATION_LANDSCAPE);
$pdfWriter->save($file = Storage::path('test.pdf'));

结果:

enter image description here

Excel Online 中的同一文件,无需任何缩放设置,适合一页 PDF 页面:

enter image description here

PS。我尝试了 mpdf 和 dompdf 生成器。他们得到的字体行非常错误,对我来说与原始字体不够接近。

我也不明白为什么垂直对齐不起作用。 TCPDF 似乎忽略了单元格的垂直对齐。

php tcpdf phpspreadsheet
1个回答
0
投票
  1. 手动调整单元格和字体大小:

    $spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(10);

  2. 在单元格中换行文本:

    $spreadsheet->getActiveSheet()->getDefaultStyle()->getAlignment()->setWrapText(true);

这应该可以解决你的问题

© www.soinside.com 2019 - 2024. All rights reserved.