【问题标题】:Converting from excel to pdf in PHPSpreadsheet without ruining design/style在 PHPSpreadsheet 中从 excel 转换为 pdf 而不会破坏设计/样式
【发布时间】:2019-02-04 22:58:43
【问题描述】:

我尝试将我的 PHPSpreadsheet 导出为 PDF。我所做的是将标题设置为:

header("Content-Disposition: attachment;filename=hello world.pdf");

$writer 是这样的:

$writer = new \PhpOffice\PhpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet);
$writer->save("php://output");

我的其余代码与导出为 XLSX 相同。它似乎不喜欢样式命令,并且还导入没有文本的单元格。我如何在 Excel 的单元格中创建信息的示例如下:

$sheet->setCellValue('A16', $activitiesCount)->getStyle('A16');
$sheet->getStyle('A16')->getFill()->setFillType(Fill::FILL_SOLID);
$sheet->getStyle('A16')->getFill()->getStartColor()->setARGB('d9e6fc');

这是excel中的原文:

如果我直接从 excel 本身将它保存为 PDF,这个导出很好。但是当我尝试用我的代码来做这件事时,结果似乎是这样的:

如您所见,它变得非常混乱。这是否意味着我必须以另一种方式为 PDF 编程?我认为在它们之间进行更改会很容易。

PS:不要介意图片之间的名称差异。我在 DB 中测试了一些东西,看看当 name 真的很长时它是如何扩展的。不漂亮,让我告诉你。

【问题讨论】:

    标签: php excel pdf-generation spreadsheet phpspreadsheet


    【解决方案1】:

    这不是什么答案,但如果您阅读the documentation,您会看到一条注释:

    请注意,PDF 文件格式对单元格样式、数字格式等有一些限制...

    尝试 mPDF 以外的库可能会更好。来自同一页面:

    不同的库有不同的优势和劣势。有些生成比其他格式更好的输出,有些比其他更快或使用更少的内存,而有些生成更小的 .pdf 文件

    【讨论】:

    • 感谢您的回答!这是否意味着我可以使用另一个库来转换我当前的 phpspreadsheet 库?就像它们重叠一样?
    • 一个不同的 PDF 库是的。文档列出了可用的,只需安装它并相应地更改您的 $writer 实例。
    • 我都试过了,结果同样糟糕。单元格被覆盖或省略,到处都是线条,间距和字体大小足以完全破坏表格。听起来好像没有解决方案,而且 PDF 支持只能处理非常基本的转换。如果它不起作用,这很公平,但如果我们知道什么是支持的,什么是不支持的,那会很有帮助,所以我们不会浪费时间尝试它。不幸的是,PDF 输出似乎与出色的 Excel 输出相去甚远。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 2022-12-15
    相关资源
    最近更新 更多