2014-04-16 84 views
1

我有一个干净的HTML页面。我需要打印(下载)它作为一个PDF文件。我在网上搜索过。但是每个人都提供一些插件和库。没有这些,我可以这样做吗?我的意思是如何使用php代码下载为pdf。我正在使用codeigniter清理HTML页面为pdf

<table><tr> 
<td>Name</td> 
<td><?php echo $name;?></td> 
</tr></table> 

这就是我的代码的外观。 $名称值将是动态的

+0

PDF和HTML是两个截然不同的野兽。大多数现代浏览器可以本地呈现PDF,但它们使用的是与HTML呈现引擎完全不同的引擎。我这样说是为了让你知道你不能随便切换到“PDF模式”。 PDF是一种与HTML几乎一样古老的二进制文件格式,看起来完全不像HTML。 PDF规范是开放的,所以你一定可以用PHP编写它,但除非你感到无聊(像我一样),你需要一段时间才能阅读1300多页。只用一个久经考验的图书馆真的很容易。对于PHP,我经常使用FPDF http://www.fpdf.org/ –

回答

0

我认为你将不得不通过插件/库路线。不确定PHP本身是否提供PDF生成功能。

我有一个很好的开源库用于PDF生成,但如果您不熟悉XSLT,它会有一个陡峭的学习曲线。它的名字叫做XSL-FO

Apache FOP是我用过的一款不错的FO处理器。

here是一个教程链接,我只是使用PHP来使用XSL-FO。这是我遇到的第一个链接,我相信你可以找到许多其他的可能比这个更好的链接。

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); 
    } 
} 

可以

放INT下载DOMPDF文件夹到库文件夹

https://github.com/dompdf/dompdf

contr奥勒这样调用

 $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

+0

在哪里编写html代码?在<?php print_r($ etc_data);?>?之后 –

+0

鉴于您可以根据您的要求编写注意:此处外部css不工作,您应该写入内嵌css或嵌入式css –

-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> 

其中内容是div类的名称。您可以创建该div的pdf。

+0

这不是打印到pdf。即使使用普通的JavaScript,我们也可以做到 –