2016-03-07 91 views
3

我正在创建某种文档生成器。我通过表单发送数据,它在下一页中加载。现在我需要一个按钮,将这个文档下载为pdf文件。 有没有办法做到这一点?我看到过几个类似的主题,但他们通常直接转到在线转换器,它们并不帮助我下载页面为pdf文件

+1

http://php.net/manual/en/pdf.examples-basic.php这可能会帮助你 – Thamaraiselvam

+1

http://stackoverflow.com/questions/35679170/php-save-form-to-image-or -pdf-with-styling/35680056#35680056这可能会帮助你 – 2016-03-07 10:34:30

+1

[看看这个jspdf](http://stackoverflow.com/questions/6896592/is-it-possible-to-save-html-page-as -pdf-using-javascript-or-jquery)这会帮助你。它只使用JavaScript –

回答

2

您可以使用FPDF,这是一个很好的开源解决方案来生成PDF并支持多种类型的PDF版式。这个解决方案可以用PHP实现。

FPDF是一个PHP类,它允许使用纯PHP生成PDF文件,也​​就是说不使用PDFlib库。 FPDF的F表示免费:您可以将其用于任何形式的使用,并对其进行修改以适应您的需求。

要使用PHP从HTML生成PDF,您可以使用mpdf。您可以使用PHP's built-in function

4

我在过去以更多方式做了类似的事情。 如果你想避免在线转换器,那么我认为你应该选择使用PHP库还是(如果你有在服务器上访问)一个专用软件。

有一些很好的PHP库旨在以创建PDF,如: - TCPDF(www.tcpdf.org) - FPDF(www.fpdf.org)

如果你有服务器的访问,我建议你使用: - wkhtmltopdf(www.wkhtmltopdf.org) 但在这种情况下,您需要先将文档创建为静态html文件,其中包含所有样式和内容。 然后你可以在这份执行HTML转换成PDF只需通过一个条命令:

wkhtmltopdf /path/to/document.html /path/to/generated.pdf

干杯

1

我用MPDF。机制的文档:http://mpdf1.com/manual/index.php?tid=452 您可以添加自己的CSS文件,页眉,页脚等

<?php 
include("config.php"); 
include("MPDF54/mpdf.php"); 

$i = 0; 
if(isset($_POST['apstiprinat'])){ 
    $patiess = $_POST['apstiprinat']; 
    if($patiess == "apstiprinat"){ 
     function prieksmeti_izdruka(){ 
      $pr = ""; 
      $i = 0; 
      $result = mysql_query("SELECT prieksmets FROM prieksmeti"); 
      $pr .= "<table>"; 
      $pr .= "<tr><td><b>Nr.</b></td><td><b>Prieksmeta nosaukums</b></td></tr>"; 
       while($row = mysql_fetch_array($result)){ 
       $i++; 
        $pr .= "<tr><td>{$i}.</td><td>{$row['prieksmets']}</td></tr>"; 
       } 
      $pr .= "</table>"; 
      return $pr; 
     } 

     $html = "".prieksmeti_izdruka().""; 
     $mpdf=new mPDF('utf-8'); 
     $mpdf->SetHeader('Mācību priekšmeti {DATE D-M-Y}'); 
     //$mpdf->setFooter('{PAGENO}'); 
     $mpdf->useOnlyCoreFonts = true; 
     $mpdf->SetDisplayMode('fullpage'); 
     $stylesheet = file_get_contents('noformejums.css'); 
     $mpdf->WriteHTML($stylesheet,1); 
     $mpdf->WriteHTML($html); 
     $mpdf->Output(); 
     exit; 
    } 
} 
else { echo "Izdrukas apstiprinājums nav saņemts!;(";} 
?> 

减去这个libary的是,你需要复制你的代码。这个库文件接受一个参数。在这种情况下$pr我添加所有字符串。

而另一个减号是,如果你需要pdf格式非常长的表格(大约100页),那么它很长的生成这个文件。

1

我认为你需要寻找一个库,可以免除你所有重复的工作和重复的代码,如TCPDF或FPDF。同时你会学到一些能够帮助你进行未来作品的互动技能。