我需要使用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显示时,不能正常工作。
谢谢!
答案 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);