我尝试过使用dompdf。以下是Codeigniter中的控制器
function get_pdf( )
{
$this->load->library('Pdf');
$this->pdf->load_view('report.php' );
$this->pdf->load_html('report.php','',true);
$this->pdf->render();
$this->pdf->stream("welcome.pdf");
}
report.php中的数据
$(document).ready(function(){
$.ajax({
type: "POST",
url: $u+"get",
data: {
role:"report",
},
datatype: "json",
crossDomain: true,
success: function(result) {
var result = $.parseJSON(result);
for (var result in syncx) {
$("#tta tbody").append("<tr ><td class='cyan'>"+x+"</td><td>"+syncx[x].total+ "</td> </tr>");
}
Morris.Line({
element: 'total-line',
data: source,
behaveLikeLine: true,
parseTime : false,
xkey: 'x',
ykeys: [ 'totol'],
labels: [ 'total'],
pointFillColors: ['#707f9b'],
pointStrokeColors: ['#ffaaab'],
lineColors: ['#f26c4f', '#00a651', '#00bff3'],
redraw: true
});
}
}
});
});
<body>
<div class="row ">
<div id="responsive" class=" ">
<h4 > Record</h4>
<div class=" ">
<div id="flip-scroll" class="card">
<p> </p>
<table id="tta" >
<thead>
<tr>
<th>x</th>
<th>Total </th>
</tr>
</thead>
<tbody> </tbody>
</table>
</div>
</div>
</div>
</div>
<div class="col ">
<div class="card">
<div class="card-image">
<div id="total-line"></div>
<span class="card-title"> </span>
</div>
<div class="card-content"> <p>Total</p>
</div>
</div>
</div>
</body>
生成pdf报告但只有html数据存在。缺少ajax和jquery数据。没有生成图表,表格没有数据。我应该在这里做什么来生成包含图表和ajax数据的完整报告。这里视图是按原样获取的,但是缺少从ajax获取的数据。
编辑:请建议其他适合实现此目的的东西。
试试这个吧
//File name
$filename = "Whatever-you-wish";
//Data can be any variables that you want to pass it on to the view.If you don't have anything to pass, just add null to the 2nd parameter.
$html = $this->load->view('sample',$data, true);
//load library. I assume you have already uploaded the dom files under application/library folder
$this->load->library('pdf');
//Intitialize dompdf object
$dompdf = new Dompdf\Dompdf();
//add view
$dompdf->load_html($html);
//Render the PDF
$dompdf->render();
//If you have any options to add it to this function
$options = new Dompdf\Options();
$options->set('isRemoteEnabled', TRUE);
//Default paper size
$dompdf->set_paper('DEFAULT_PDF_PAPER_SIZE', 'portrait');
//Output the result
$output = $dompdf->output();
//Save it to the folder. Folder has to be created outside the application folder.
file_put_contents('your-folder-name/' . $filename . '.pdf', $output);
希望这可行。谢谢。