【问题标题】:Best way to create a pdf with silverstripe 3.1?使用 silverstripe 3.1 创建 pdf 的最佳方法?
【发布时间】:2014-04-28 19:05:55
【问题描述】:

我想在服务器端创建一个 PDF 文件。最好的方法是什么? 有谁知道好的解决方案吗?

提前谢谢你

【问题讨论】:

标签: php pdf silverstripe


【解决方案1】:

还有silverstripe-tcpdf:

https://github.com/mparkhill/silverstripe-tcpdf

如果您在插件网站上搜索 PDF,也可以找到此模块 :-)

http://addons.silverstripe.org/add-ons?search=pdf

【讨论】:

    【解决方案2】:

    DOMPDF 有一个 SilverStripe 包装器,它应该正是您所追求的:

    https://github.com/burnbright/silverstripe-dompdf

    【讨论】:

    • 我认为这正是我所需要的,但我无法让它发挥作用。我从 github 下载了模块和 dompdf。我将这个pastie.org/9127946 放入了 onBeforeWrite 函数的 Dataobject 中。页面模板只是为了测试它。当我尝试保存数据对象时,我收到一个服务器错误。怎么了?
    • 关于服务器错误的更多信息?如果你把它放在 onAfterWrite 函数中,你的代码可以工作吗?
    • 没有更多信息。但是如果我把它放在 onAfterWrite() 函数中,我会收到一个 SSViewer 错误。我解决了这个问题。但现在 pdf 不包含内容。我认为这是因为我的页面结构。我为我的发票和报价使用数据对象,这些数据对象使用 get Parameters ?id=Invoice123 显示。我想我必须为 pdf 创建一个完整的新模板?
    【解决方案3】:

    我知道这是一个很老的问题并且已经回答了,但我也使用 Dompdf 很长时间了,它有很多限制,比如浮动和 css 支持。

    因为我为 wkhtmltopdf 编写了一个模块。 wkhtmltopdf 使用 webkit 渲染引擎,因此您将获得完整的 css3 支持。

    如果你想没有限制,你可以使用this module

    小摘录:

    借助 WKhtmlTOpdf 的强大功能在 SilverStripe 中创建 PDF

    这个模块增加了从每个文件简单地创建 PDF 的可能性 您拥有的数据对象。基于WKhtmlTOpdf和mikehaertl的php 包装。

    请注意,此资源太大,无法在此处完全合并。

    【讨论】:

    【解决方案4】:

    有一个 TCPDF 模块...

    https://github.com/mparkhill/silverstripe-tcpdf

    否则只需将 TCPDF 添加到您的 composer.json 中...

    "require": {
        ...
        "tecnick.com/tcpdf": "6.0.013",
        ...
    },
    

    并查看它的许多示例以开始...

    http://www.tcpdf.org/examples.php

    或者这个用模板渲染的小sn-p...

    $pdf = new TCPDF();
    $pdf->AddPage();
    $vd = new ViewableData();
    $str = $vd->customise(ArrayData::create(array('MyVariable'=>'MyValue')))->renderWith('MyTemplateName');
    $pdf->writeHTMLCell(0, 0, '', '', $str, 0, 1, 0, true, '', true);
    $strContent = $pdf->Output(BASE_PATH.'/tmp/tmp.pdf', 'S');
    

    【讨论】:

      猜你喜欢
      • 2019-03-29
      • 2017-08-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-26
      • 2023-03-27
      • 2015-09-09
      • 2011-05-14
      • 1970-01-01
      相关资源
      最近更新 更多