我想从其他网站生成pdf,因为这个html页面是不必要的项目。 我使用了库jspdf,jquery .ajax,我的代码如下所示:
<script src='http://mrrio.github.io/jsPDF/dist/jspdf.debug.js'></script>
<script type="text/javascript" src="http://cdn.rawgit.com/niklasvh/html2canvas/0.5.0-alpha2/dist/html2canvas.min.js"></script>
$('#create_pdf').on('click',function(){
var doc = new jsPDF('p','px','a4');
var source1 = '';
var
form = '', term='';
$.ajax({
type: "get",
url: "clients.php",
dataType: "html",async: false,
data: {
term: term
},
success: function( data ) {
source1= data ;
}
});
//alert($(source1).find('.container').eq(1).html());
doc.addHTML(source1,options,function() {
var string = doc.output('datauristring');
$('.preview-pane').attr('src', string);
});
});
它不起作用,但警报给我html肯定结果。
问题2。 如何生成PDF以使用不同的css文件(例如,media = print)来添加和删除PDF中的项目并进行打印。 html2canvas不使用media = print
答案 0 :(得分:0)
我使用PHP库html2pdf。我加载HTML内容并解析它,创建一个新的HTML代码(包括一个特殊的CSS)并使用html2pdf创建一个PDF。
JS:
$.ajax({
url: "lib/html2pdf/pdf_engine.php",
method: "post",
success: function(data) {
window.open( "documents/" + data );
},
error: function( error ) {
console.log( error );
}
});
PHP(lib / html2pdf / pdf_engine.php):
<?php
date_default_timezone_set('Europe/Berlin');
// load the PDF class
require_once(dirname(__FILE__).'/html2pdf.class.php');
// get the print page
$data = file-get-contents("<your url>");
// remove line breaks
$data = preg_replace("/[\n\r]/", " ", $data);
// remove whitespaces
$data = preg_replace('/\s+/', ' ', $data);
// do whatever ...
// set the pdf content
$html = " <page backtop=\"15mm\" backbottom=\"15mm\">
<page_header>
<table style=\"border-bottom: 1px solid #000; width: 100%; padding-bottom: 10px;\">
<tr>
<td width=\"640\">Page Title</td>
</tr>
</table>
</page_header>
<page_footer>
<table style=\"border-top: 1px solid #000; width: 100%; padding-top: 10px;\"><tr>
<td width=\"320\">© " . date('Y') . " My Company</td>
<td width=\"320\" style=\"text-align: right;\">Seite [[page_cu]] of [[page_nb]]</td>
</tr></table>
</page_footer>
<link rel=\"stylesheet\" type=\"text/css\" href=\"style_pdf.css\">
" . $data . "
</page>";
// load the HTML2PDF class
$html2pdf = new HTML2PDF('P','A4','de', true, 'UTF-8', array(20, 10, 20, 10));
// create the document
$html2pdf->WriteHTML($html);
// send the document to the browser and force the download
$dir = "C:/path/to/documents/"; // remember to give access
$file_name = "some_funky_filename.pdf";
$html2pdf->Output($dir . $file_name, 'F');
echo $file_name;
?>
PHP返回文件名,jQuery在新窗口中打开文件。