Symfony2:如何从包含动态内容(宽度/高度)的表的html创建PDF?

时间:2014-02-27 10:11:21

标签: javascript php html symfony pdf

我认为这个问题已经被提出并且之前也得到了回答。他们都没有为我工作。

我有一个带表的页面,这些表有动态加载的数据。每行的大小是动态计算的。所以我无法控制它。

  

每个单元格中可能有100个字母或10000个或者可能没有。

直到现在我尝试了一些pdf工具。我在控制器中使用php尝试了 FPDF ,我还尝试了 JSpdf 来通过渲染html视图来构建pdf。在 FPDF 中,我必须使用widthheight声明单元格。如何判断出我不知道大小的细胞的宽度或高度。

$this->Cell(30,10,'Title',1,0,'C');

jsPDF 可以渲染html,但它处于测试版,无法渲染css。它还使用宽度高度。

有没有办法实现在每个页面中使用HEADER创建pdf的功能,每个页面都包含一个动态数据表,每个单元格的大小对我来说完全不知道?应将字母调整为表格单元格或表格单元格应根据字母进行调整。

如果有一个工具可以按照我想要的方式工作,那么可以将它集成到Symfony2框架中吗?你可以建议我使用Jquery的工具,如果我们有任何...

修改 config.php for knpsnappy(不在windows上工作)

knp_snappy:
  pdf:
    enabled:    true
    binary:     C:/wkhtmltopdf/bin/wkhtmltopdf
    options:    []
  image:
    enabled:    true
    binary:     C:/wkhtmltopdf/bin/wkhtmltoimage
    options:    []

2 个答案:

答案 0 :(得分:0)

<强> KnpSnappyBundle:

您可以使用 KnpSnappyBundle 来创建PDF。


该套件将 snappy 整合到symfony中。

snappy wkhtmltopdf 的包装,它使用 Webkit 呈现引擎。

答案 1 :(得分:0)

你可以试试这个 的CSS:

@media print {
    .noPrint {
        display:none;
    }
}

JS: window.print(); //您可以在事件触发时调用此方法

但是对于这些方式,您需要修复网页宽度。

或者如果您在symfony中,那么可以使用dompdf bundle或者如果不在symfony中则可以只使用dompdf