【问题标题】:Symfony2: How to create a PDF from html that contains a table with dynamic content (width/height)?Symfony2:如何从包含动态内容(宽度/高度)的表格的 html 创建 PDF?
【发布时间】:2014-02-27 10:11:20
【问题描述】:

我认为这个问题之前已经被问过并得到了回答。它们都不适合我。

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

每个单元格中可能有 100 个字母,也可能有 10000 个字母,也可能没有。

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

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

jsPDF 可以渲染一点html,但是它是beta版,不能渲染css。它也使用宽度高度。

有没有什么方法可以实现在每个页面中使用 HEADER 创建 pdf 并且每个页面包含一个包含动态数据的表格,其每个单元格的大小我完全不知道?将字母调整为表格单元格或表格单元格按字母调整。

如果有一个工具可以完全按照我想要的方式工作,那么是否可以将它集成到 Symfony2 框架中?你也可以向我推荐一个带有 Jquery 的工具,如果我们有的话......

编辑: knpsnappy 的 config.php(不适用于 Windows)

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

【问题讨论】:

    标签: javascript php html symfony pdf


    【解决方案1】:

    KnpSnappyBundle:

    您可以使用 KnpSnappyBundle 创建 PDF。


    捆绑包将 snappy 集成到 symfony 中。

    snappywkhtmltopdf 的包装器,它使用 Webkit 渲染引擎。

    【讨论】:

    • 2 件事。 1) 我试过 knpsnappy。目前面临一个问题。 stackoverflow.com/questions/22035808/… 基本上我在windows环境下配置失败。 2)如果我使用它,我可以在不告诉pdf中单元格的高度/宽度的情况下加载动态数据吗?
    • 是的,它会根据您在浏览器中显示的任何 HTML 创建 PDF。您必须制作正确的 HTML。向我们展示配置文件可能会解决问题。
    • @abbiya 在此处添加了配置文件。也在这里问过这个问题stackoverflow.com/questions/22035808/…
    【解决方案2】:

    你可以试试这个 css:

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

    js: window.print(); //你可以在事件触发时调用这个方法

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

    或者如果你在 symfony 中则可以使用dompdf bundle 或者如果不在 symfony 中则只能使用dompdf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 2011-08-07
      相关资源
      最近更新 更多