У меня есть следующий jQuery, который делает запрос к файлу php с именем html2fpdfconverter.php:
$("#exportentry").click(function(e){
e.preventDefault();
if(submitted){
//export
var data = $("#container").html();
var filename = "Entry Report.pdf";
var dateString = $("#datepicker").datepicker().val();
$.ajax({
type:"POST",
url: "html2pdfconverter.php",
data: {data:data, filename:filename, date:dateString},
dataType: "json",
success: function(data) {
//get min max dates assigned
alert('success');
}
})
}else{
alert("No Report To Export");
}
});
html2fpdpf.php
<?php
require('html2fpdf.php');
if(isset($_POST['data'])){
$urlcontents = $_POST['data'];
$filename = $_POST['filename'];
$date = $_POST['date'];
convert($urlcontents, $filename, $date);
}
function convert($contents, $name, $currdate){
$pdf=new HTML2FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10, "Entry Report");
$pdf->SetFont('Arial', '', 12);
$pdf->Cell(90,12,'- '. $currdate);
$contents = strip_tags($contents, '<html><body><meta><img><h2><h4><br><div><ul><li><span>');
$pdf->SetY(20);
$pdf->WriteHTML($contents );
$content = $pdf->Output('', true);
$file = fopen($filename, "w");
fwrite($file, $content);
fclose($file);
}
?>
Используя firebug, я вижу, что данные правильно отправляются в php-файл. Однако ничего не происходит ... pdf не создается, и диалог загрузки не отображается, несмотря на то, что firebug говорит, что запрос php в порядке.
Я получаю следующий ответ в firebug:
% PDF-1.3
3 0 объектов
<>
endobj
4 0 объектов
<>
поток
Xr0} б "BKqIeEXX.Ax_s3.b`I-ы óJdNN0Il5ānDHL28. ൹ О8 ^ тЕ 28IĒ1NQ = BZW (GlѮZ $ Б. А., 8R ߾ я = 9-HJ¨l8Veo &]; XW y _ \ Ey 8! T e ܵ T j: F UE X8 / 3 } ̨ > ~ 5T $
0> Q:! QH DXEC ���Ԥ�����͇���hI�cA��l�����ηy�/�՟���rP.���V�
T/�u��|���9����U9t�'|IJ��.�c�28+�<ÃX�����U�|�;k�AI�"�[�ȑ��"�6���vYs�����b�)�H퓀�Ph�,���P:T��x�1,,��Ey�b"Mh(��
ti.C4D (��5�Eա,ۃ��^���*4QܧAݑ,!*ص�
/ Ml / z \; $ C x dPId ƃ] 4 0pYYS B < Q Z # = [ A ^ ,]
кд / hjVHn4ʖ
endstream
endobj
1 0 obj
Есть еще целый груз ... Я не уверен, почему это не работает ...