我有一个干净的HTML页面。我需要打印(下载)它作为PDF文件。我在网上搜索过。但每个人都提供了一些插件和库。没有那些我可以这样做吗?我的意思是如何使用PHP代码下载为pdf。我正在使用codeigniter
<table><tr>
<td>Name</td>
<td><?php echo $name;?></td>
</tr></table>
这是我的代码的样子。 $ name值将是动态的
答案 0 :(得分:0)
我认为你必须通过插件/库路线。不确定PHP本身是否提供PDF生成功能。
我有一个很好的开源库用于生成PDF,但如果你不熟悉XSLT,它有一个陡峭的学习曲线。它被称为XSL-FO。
Apache FOP fop是我用过的一个不错的FO处理器。
here是一个教程链接,我只是用Google搜索过使用XSL-FO和PHP。这是我遇到的第一个链接我相信你可以找到许多可能比这个更好的链接。
答案 1 :(得分:0)
使用dompdf
创建html页面到pdf的简单方法你的dom pdf库
<?php defined('BASEPATH') OR exit('No direct script access allowed');
/**
* CodeIgniter PDF Library
*
* Generate PDF's in your CodeIgniter applications.
*
* @package CodeIgniter
* @subpackage Libraries
* @category Libraries
* @author Chris Harvey
* @license MIT License
* @link https://github.com/chrisnharvey/CodeIgniter-PDF-Generator-Library
*/
require_once(dirname(__FILE__) . '/dompdf/dompdf_config.inc.php');
class Pdf extends DOMPDF
{
/**
* Get an instance of CodeIgniter
*
* @access protected
* @return void
*/
protected function ci()
{
return get_instance();
}
/**
* Load a CodeIgniter view into domPDF
*
* @access public
* @param string $view The view to load
* @param array $data The view data
* @return void
*/
public function load_view($view, $data = array())
{
$html = $this->ci()->load->view($view, $data, TRUE);
$this->load_html($html);
}
}
你可以下载dompdf文件夹
将int放到库文件夹
https://github.com/dompdf/dompdf
这样的控制器
$data['etc_data'] = $this->model->data($id);
$data['evn_etc_data'] = $this->model->ext_data($id);
$this->load->view('pdf',$data);
$this->load->view('pdf',$data);
$this->load->library('pdf');
$this->pdf->load_view('pdf',$data);
$this->pdf->render();
$this->pdf->stream("test.pdf");
你的观点
<?php print_r($etc_data);?>
<?php print_r($evn_etc_data);?>
//在这里写你的HTML代码和你的逻辑 另外,你可以看到这个基于链接器的辅助工具
https://github.com/EllisLab/CodeIgniter/wiki/PDF-generation-using-dompdf
答案 2 :(得分:-1)
您可以使用window.print函数。
<script type="text/javascript">
$(document).ready(function(){
$('#pdf').click(function(){
printDiv();
function printDiv() {
var printContents = $(".content").html();
var originalContents = document.body.innerHTML;
document.body.innerHTML = printContents;
window.print();
document.body.innerHTML = originalContents;
}
});
});
</script>
其中content是div类名。您可以创建该div的pdf。