加入收藏 | 设为首页 | 会员中心 | 我要投稿 北几岛 (https://www.beijidao.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

php – 用于将html导出为pdf的工具

发布时间:2021-07-06 05:21:12 所属栏目:大数据 来源: https://www.jb51.cc
导读:我有一个标记报告的html文档.我在这个页面上有一个按钮“Export as pdf”.但是我不知道如何将html导出为pdf ..有没有任何工具,任何人都推荐这样的任务.. 编辑:更详细: 我有以下PHP: ?PHPfunction connect() { $dbh = MysqL_connect ("localhost", "user",

我有一个标记报告的html文档.我在这个页面上有一个按钮“Export as pdf”.但是我不知道如何将html导出为pdf ..有没有任何工具,任何人都推荐这样的任务..

编辑:更详细:

我有以下PHP:

<?PHP

function connect() {
  $dbh = MysqL_connect ("localhost", "user", "password") or die ('I cannot connect to the database because: ' . MysqL_error());
  MysqL_select_db("PDS", $dbh); 
  return $dbh;
}

session_start();

if(isset($_SESSION['username'])){
  if(isset($_POST['entryId'])){
    //do something
    $dbh = connect();
    $ide = $_POST['entryId'];
    $usertab = $_POST['usertable'];
    $answertable = $usertab . "Answers";
    $entrytable = $usertab . "Entries";
    $query = MysqL_query("SELECT e.date, q.questionNumber, q.question, q.sectionId, a.answer FROM $answertable a, Questions q, $entrytable e WHERE a.entryId = '$ide' AND a.questionId = q.questionId AND e.entryId = '$ide' ORDER BY q.questionNumber ASC;") or die("Error: " . MysqL_error());

    if($query){
      //set variables

      $sectionOne = array();
      $sectionTwo = array();
      $sectionThree = array();
      $sectionFour = array();
      $sectionFive = array();
      while($row=MysqL_fetch_assoc($query)){
    $date = $row['date'];
    $section = $row['sectionId'];
    switch($section){
    case '1':
      $sectionOne[] = $row;
      break;
    case '2':
      $sectionTwo[] = $row;
      break;
    case '3':
      $sectionThree[] = $row;
      break;
        case '4':
      $sectionFour[] = $row;
      break;
        case '5':
      $sectionFive[] = $row;
      break;
        default:    
      break;      
    }
      }
    }else{
      //error - sql Failed
    }
  }

?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
   <head>
   <Meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   <script src = "jQuery.js"></script>
   <script>
   $(document).ready(function(){

   });
  </script>
  <title>Personal Diary System - Entry Report - <?PHP echo($date); ?></title>
  </head>
  <body>
  <h1>Entry Report - <?PHP echo($date); ?></h1>    
  <div id = "buttons">
  <a href = "http://dev.speechlink.co.uk">Export as PDF</a>                       
  </div>                         
  <h3>Biological Information</h3>
  <?PHP
      $i = 0;                         
      foreach($sectionOne as &$value){
    if($i == 1 || $i == 3){
      $image = "assets/urine".$i.".png";
      echo("<br/>");
      echo($value['question']." <br/> "."<img src = "$image"/>");
      echo("<br/>");
    }else{
      echo($value['question'].' : '.$value['answer']);
    }
    echo("<br/>");
    $i++;
      }
  ?>
  <h3>Fatigue and Recovery</h3>
  <?PHP
      foreach($sectionTwo as &$value){
    echo($value['question'].' : '.$value['answer']);
    echo("<br/>");
      }
  ?>
  <h3>Illness and Injury</h3>
  <?PHP
      foreach($sectionThree as &$value){
    echo($value['question'].' : '.$value['answer']);
    echo("<br/>");
      }
  ?>
  <h3>Training Sessions</h3>
  <?PHP
      foreach($sectionFour as &$value){
    echo($value['question'].' : '.$value['answer']);
    echo("<br/>");
      }
  ?>
  <h3>General Feedback</h3>
  <?PHP 
     if(count($sectionFive)>0){
      foreach($sectionFive as &$value){
    echo($value['question'].' : '.$value['answer']);    
      }
     }else{
       echo("User didn't leave any Feedback");
     }
     echo("<br/>");
  ?>
  </body>
</html>
<?PHP
}
?>

这显示以下内容:

因此,如果我使用的是fpdf,那么将以下内容导出为pdf的最佳方法是什么?我应该在同一个PHP文件中编写一个fpdf函数,还是最好写一个单独的PHP文件来创建和显示pdf(这意味着我必须将所有相关数据发布到这个文件中)…

解决方法:

使用FPDF库的PHP
check here

此文件转换的第一个和主要基础是FPDF库. FPDF是一个纯PHP类,可以动态生成PDF文件.让我们用简单的Hello world显示开始PDF生成.

<?PHP
require('fpdf.PHP');

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

要生成pdf文件,首先我们需要包含库文件fpdf.PHP.然后我们需要使用默认构造函数FPDF()创建FPDF对象.此构造函数可以传递三个值,即页面方向(纵向或横向),度量单位和页面大小(A4,A5等).默认情况下,页面为A4纵向,度量单位为毫米.它可以明确指定:

$pdf=new FPDF('P','mm','A4');

可以使用横向(L),其他页面格式(如Letter和Legal)和度量单位(pt,cm,in).

然后我们使用AddPage()在pdf文档中添加了一个页面.原点位于左上角,默认情况下,当前位置距离边界1厘米;可以使用SetMargins()函数更改边距.

要打印文本,我们需要先使用SetFont()选择一种字体.让我们选择Arial粗体16:

$pdf->SetFont('Arial','B',16);

我们使用Cell()函数输出文本.单元格是一个矩形区域,可能是框架,包含一些文本.它在当前位置输出.我们指定其尺寸,文本(居中或对齐),是否应绘制边框,以及当前位置在其后移动的位置(向下,向下或向下一行的开头).要添加框架,我们会这样做:

$pdf->Cell(40,10,'Hello World !',1);

最后,关闭文档并使用Output()将其发送到浏览器.我们可以通过传递所需的文件名将其保存在文件中.

(编辑:北几岛)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读