Laravel 4渲染()PDF with Javascript

时间:2015-04-02 13:24:23

标签: javascript html pdf dom laravel-4

我需要使用Javascript Apis

从HTML视图渲染创建PDF

这是我在PHP Laravel 4中的代码

$con = Contrato::find($id);
        $html = (string) View::make('contratos.contratopdf')->with('con',$con)->render();
        return PDF::load(utf8_decode($html), 'A5', 'landscape')->show();

在视图中我有这个脚本

<script src="http://test.rentacar.cl/js/lib/jquery.signaturepad.min.js"></script>

这个js用普通的HTML改变了Dom,但是当我用PDF显示时,不能正常工作。

谢谢!

2 个答案:

答案 0 :(得分:0)

根据我对dompdf(非常着名的pdf库)的经验,那些库不支持JS解释(因为php没有解释javascript的能力),这里有两个工作,我想你可以试试。< / p>

1.服务器端渲染html,将你的dom操作移动到php以创建dom元素。(推荐)

2.使用php和phantomJS.php调用phantomJS来捕获html的屏幕并将截图保存为pdf。

答案 1 :(得分:0)

PhantomJS很好用,请看一下这个包:https://github.com/jonnnnyw/php-phantomjs

此处提供完整文档:http://jonnnnyw.github.io/php-phantomjs/

示例:

<?php

use JonnyW\PhantomJs\Client;

$client = Client::getInstance();

$request  = $client->getMessageFactory()->createCaptureRequest('http://google.com');
$response = $client->getMessageFactory()->createResponse();

$file = '/path/to/save/your/screen/capture/file.jpg';

$request->setCaptureFile($file);

$client->send($request, $response);