如何使用php Excel生成一个漂亮的PDF?

时间:2012-10-26 14:25:18

标签: php pdf phpexcel

我正在使用上一个PHPExcel版本(我认为是7.7)。我能够生成我的excel。我必须用tcpdf生成pdf版本,这里别无选择。

但结果是丑陋和超大。

enter image description here

请参阅2012-000012的巨大字体大小,excel中为11。

正如您所看到的,这里有2个问题。文件尺寸过大,边框很糟糕。

为了摆脱超大的一面,我尝试了这个:

$this->printer->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);    

而且:

 $this->printer->getActiveSheet()->getPageSetup()->setScale(50);

比例设置为50,但不影响输出。那我怎么能摆脱这两个问题呢?

这是我的excel How to set auto-line break PhpExcel?的屏幕。

更新:

通过将cellspacing设置为0,边界几乎按预期处理,仍然是一个问题,可能是由于超大问题引起的。

见:

enter image description here

是否有opion或方法调用将其设置为0?

这取决于writer \ html.php第915行,因为我不显示网格线。

2 个答案:

答案 0 :(得分:3)

要删除您发现令人反感的边框,请在每张要在pdf中呈现的工作表上关闭网格线。

例如: $ objPHPExcel-> getActiveSheet() - > - > setShowGridlines(假);

答案 1 :(得分:0)

解决这个问题我做了两个操作。

第一步是设置PHPexcel对象的方向

$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);

第二步 - 为PHPExcel对象设置不同的纸张尺寸:

$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A2_PAPER);

然后将PHPExcel对象转换为对象编写器

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'PDF');

$objWriter->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE);

$objWriter->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A2_PAPER);

这对我有用。我还改变了PHPExcel对象中的字体大小 - 就像标题

一样
$objPHPExcel->setActiveSheetIndex($lastsheet)->getStyle("A1:K3")->applyFromArray(
         array(
            'font'  => array(
                'size'  => 8
            )
         )
        );

以及其他数据:

$objPHPExcel->getDefaultStyle()->getFont()->setName('Arial')->setSize(8);

现在我试图获得tcPDF生成的丑陋边框以及文件末尾的另一行......