为 PHP 电子表格打印到 PDF 设置页边距

Set margin for PHP Spreadsheet printing to PDF

我有以下代码:

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->getPageSetup()->setOrientation(PageSetup::ORIENTATION_LANDSCAPE);
$sheet->getPageMargins()
    ->setLeft(0.1)
    ->setRight(0.1)
    ->setTop(0.1)
    ->setBottom(0.1)
    ->setHeader(0);
$sheet->setCellValue('A1', 'Test input');

$writer = new Mpdf($spreadsheet);
$dateStamp = Carbon::now()->format('YmdHis');
$saveDirectory = REPORTS_DIR . Auth::user()->getAuthIdentifier() . '/';
if (is_dir($saveDirectory) === false) {
    mkdir($saveDirectory, 755, true);
}
$writer->save($saveDirectory . $dateStamp . '-global.pdf');

边距设置不正确。我已将它设置为巨大的数字和微小的数字(如上所述),其中 none 更新打印的 pdf 文档。当我将 Mpdf 编写器换成 Xlsx 编写器时,页边距有效,当我更改它时,它会相应地更新电子表格。

是否有其他方法需要设置边距以更新 pdf 大小?

我看到图书馆目前不支持这个。我已经用代码创建了一个 pull request 来让它工作(我自己测试过,没有针对这个 class 的测试)。

合并后,您将可以使用上面的代码来实现。

2022,这是存档保证金的方式,感谢@Bird87-za

的pull request
$spreadsheet->getActiveSheet()->getPageMargins()->setTop(0.748);
$spreadsheet->getActiveSheet()->getPageMargins()->setRight(0.7);
$spreadsheet->getActiveSheet()->getPageMargins()->setLeft(0.7);
$spreadsheet->getActiveSheet()->getPageMargins()->setBottom(0.7);

// HEADER Y FOOTER
$spreadsheet->getActiveSheet()->getPageMargins()->setHeader(0.3);
$spreadsheet->getActiveSheet()->getPageMargins()->setFooter(0.3);