使用内嵌PHP将HTML转换为PDF
创建了一个小应用程序,在该应用程序中可以下咖啡订单,订单及其订购日期将保存到数据库中 我有一个页面report.php,它根据来自管理员页面adminPage.html的用户输入的日期约束生成报告 html使用GET函数将日期约束传递给report.php,report.php使用带有这些约束的php生成报告 我无法将报告页转换为PDF格式。我尝试使用dompdf,但是,它不会在PDF中加载PHP报告,只加载HTML代码 用户单击按钮在adminPage.html上运行报告的函数:使用内嵌PHP将HTML转换为PDF,php,html,pdf,Php,Html,Pdf,创建了一个小应用程序,在该应用程序中可以下咖啡订单,订单及其订购日期将保存到数据库中 我有一个页面report.php,它根据来自管理员页面adminPage.html的用户输入的日期约束生成报告 html使用GET函数将日期约束传递给report.php,report.php使用带有这些约束的php生成报告 我无法将报告页转换为PDF格式。我尝试使用dompdf,但是,它不会在PDF中加载PHP报告,只加载HTML代码 用户单击按钮在adminPage.html上运行报告的函数: functi
function runReport()
{
var jStartDate;
var jEndDate;
jStartDate = document.getElementById("reportStartDate").value;
jEndDate = document.getElementById("reportEndDate").value;
window.open("report.php?startDate="+jStartDate+"&endDate="+jEndDate+"");
}
window.open打开报告页面,并将约束加载到URL中。我知道这不漂亮,对不起:(
这是我试图生成为PDF的报告页面。我希望在屏幕底部有一个小按钮,上面写着“生成PDF”之类的内容。当用户按下它时,它就会生成PDF
<!DOCTYPE HTML>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">
</script>
<!-- allow login page to link to this when user is an admin -->
<title>Report</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<link rel="manifest" href="/manifest.json">
<center><img src="icons/sbuxLogo.png" width="100" height="100px"></center>
</br></br>
<center><h1>Welcome Administrator!</h1></center>
</br></br>
<center>
<div id="report">
<h2>Report:</h2>
</br>
</center>
<?php
require "phpScripts/connect.php";
$startDate = $_GET['startDate'];
$endDate = $_GET['endDate'];
$sql = "SELECT * FROM orderlist WHERE NOT (dateOrdered < '$startDate' OR dateOrdered > '$endDate');";
$result = $conn->query($sql);
echo "<center>";
echo "<ul>";
if($result->num_rows >0)
{
$i = 0;
while($row = $result->fetch_assoc()) // this loads selected drinks via date
into ul
{
echo "<li style=
'margin-left: 0;
list-style-type: none;
color: #727272;
height: 40px;
font-size: 15px;
font-family: Open Sans;
border-style: none;
width: 50%;
list-style-type: none;
margin:0;
padding-bottom:0px;
padding:0;
overflow: hidden;'>
Drink: ".$row["drinkName"]. ", Date Ordered: " .$row["dateOrdered"] . ",
Cost: " .$row["drinkCost"] . "</li>";
$i = $i+1;
}
}else {
echo "<p> No orders found. </p>";
}
echo "</ul>";
echo "</center>";
?>
</div>
报告
欢迎管理员!
报告:
这是一个基本的例子,说明了如果您使用TCPDF,您可能会是什么样子
<?php
$pdf = new TCPDF(PDF_PAGE_ORIENTATION_L, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
//TCPDF_INIT_CODE_GOES_HERE
// ...
$html = '<!DOCTYPE HTML>
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js">
</script>
<!-- allow login page to link to this when user is an admin -->
<title>Report</title>
<link rel="stylesheet" type="text/css" href="styles.css">
<link rel="manifest" href="/manifest.json">
<center><img src="icons/sbuxLogo.png" width="100" height="100px"></center>
</br></br>
<center><h1>Welcome Administrator!</h1></center>
</br></br>
<center>
<div id="report">
<h2>Report:</h2>
</br>
</center>';
require "phpScripts/connect.php";
$startDate = $_GET['startDate'];
$endDate = $_GET['endDate'];
$sql = "SELECT * FROM orderlist WHERE NOT (dateOrdered < '$startDate' OR dateOrdered > '$endDate');";
$result = $conn->query($sql);
$html .= "<center>";
$html .= "<ul>";
if($result->num_rows >0)
{
$i = 0;
while($row = $result->fetch_assoc()) // this loads selected drinks via date
into ul
{
$html .= "<li style=
'margin-left: 0;
list-style-type: none;
color: #727272;
height: 40px;
font-size: 15px;
font-family: Open Sans;
border-style: none;
width: 50%;
list-style-type: none;
margin:0;
padding-bottom:0px;
padding:0;
overflow: hidden;'>
Drink: ".$row["drinkName"]. ", Date Ordered: " .$row["dateOrdered"] . ",
Cost: " .$row["drinkCost"] . "</li>";
$i = $i+1;
}
}else {
$html .= "<p> No orders found. </p>";
}
$html .= "</ul>";
$html .= "</center>";
$html .= '</div>';
$pdf->writeHTML($html);
$pdf->Output('TITLE_OF_PDF_FILE.pdf', 'I'); // I flag means it will display the PDF in a browser
您可以使用tcpdf将html代码呈现为pdf文件。对代码的更改是,您不会回显屏幕上的内容,而是将其存储在一个变量中,并将其传递给tcpdf,tcpdf将生成一个pdf文件。@IgorIlic我正在查看tcpdf的文档,但它没有显示任何关于用于日期约束的变量,在内联PHP中实现。您是否碰巧知道如何执行此操作?我最终得到一个几乎空白的PDF,只有徽标“Welcome Administrator”和“Report:”显示。它没有将实际报告加载到PDF中。非常感谢!我对代码进行了一点修改,但这是一个巨大的帮助。