2013-10-11 80 views
4

我正在寻找易于使用且不需要wkhtmltopdf的PDF生成器套件,因为我的共享宿主服务器不支持此功能。Symfony2 PDF生成器套件

我试过https://github.com/psliwa/PdfBundle,但如果我按照文档,我只是在屏幕上得到一个响应(不生成PDF)。虽然有这种解决方案in this question,但该解决方案看起来过于复杂。

我也看过ioalessio/IoTcpdfBundle,这看起来很直接,但没有安装Composer,我的web服务器不支持供应商安装。

我也试过stedekay/SpraedPDFGeneratorBundle,但这只是普通的错误,抱怨找不到Java。

虽然whiteoctober/WhiteOctoberTCPDFBundle可能能够工作,但这只是创建一个TCPDF对象,必须进一步处理,而且文档并不是非常全面。

任何建议(或如何得到任何提到的捆绑工作的建议)将不胜感激。

+0

您可以使用TCPDF库,但你得给联样式到HTML元素 –

回答

3

我可以肯定地推荐KnpSnappyBundle与树枝模板。

我已经在生产中多次使用过库/包,并且没有太多麻烦。

(与传统应用程序中的tcpdf & dompdf相比)。

用法示例:

$this->get('knp_snappy.pdf')->generateFromHtml(
    $this->renderView(
     'MyBundle:Foo:bar.html.twig', 
     array(
      'some' => $vars 
     ) 
    ), 
    '/path/to/the/file.pdf' 
); 
+1

虽然KnpSnappyBundle是PDF生成goto语句束,它需要wkpdftohtml,我不能用,因为在我原来的请求表示。 – Magnanimity

+0

哦抱歉,速度阅读失败 - 可能对其他用户有所帮助:D – nifr

1

我是SpraedPDFGeneratorBundle的开发商。我的软件包使用Java库,所以您需要在您的服务器上运行JRE(6或更高版本)。

+0

stedekay是否可以使用喷涂生成画布元素? – timhc22

+0

我从来没有使用画布元素,但如果我理解正确,那些元素将由Javascript绘制。所以这是不可能的。 – stedekay

4

我使用SpraedPDFGeneratorBundle,我使用Composer从https://github.com/stedekay/SpraedPDFGeneratorBundle安装它来激活它。我在AppKernel new Spraed\PDFGeneratorBundle\SpraedPDFGeneratorBundle()中激活。

最后,我执行命令php composer.phar update,在我的控制,我把这个代码:

$html = $this->renderView('MyappJournalBundle:Default:index1.html.twig'); 
    $pdfGenerator = $this->get('spraed.pdf.generator'); 

    return new Response($pdfGenerator->generatePDF($html), 
        200, 
        array(
         'Content-Type' => 'application/pdf', 
         'Content-Disposition' => 'inline; filename="out.pdf"' 
        ) 
    ); 

,它为我工作!

0

您可以使用EnseparHtml2pdfBundle。 看here详情

1

如果你想在安装Symfony3 SpraedPDFGeneratorBundle,确保服务是:

spraed.pdf.generator: 
    class: Spraed\PDFGeneratorBundle\PDFGenerator\PDFGenerator 
    arguments: [ "@kernel" ] 

这矗立在文档中的深跌,但其很难找到。

你可能会意识到的另一件事是发电机使用“The Flying Sauser”,它使用了一种特殊的css。所以通过阅读这个,在http://flyingsaucerproject.github.io/flyingsaucer/r8/guide/users-guide-R8.html#xil_36,我发现我必须使用: @page {margin:0 0.5cm;尺寸:21厘米26.5厘米; } 以证明文档中的边距以使内容适合。

0

你可以试试这个包。 MpdfPortBundle。 https://github.com/tasmanianfox/MpdfPortBundle

+0

在这种情况下,这不是你的错,因为问题不在话题中,但请注意,一般来说,推荐某个工具或库的答案必须证明它如何解决答案本身的问题。 –