我必须将一个导出文件转换为pdf。因为我正在使用PDFcrowed 但是如果我使用convertFile和convertURL就会出现一个问题,它会工作并转换成pdf如果我有传递php文件的路径。它会给出一个错误。 的 invoices.php
<?php
require 'pdfcrowd.php';
try
{
// create an API client instance
$client = new Pdfcrowd("priyankaahire", "b50ca6e682a7194f24bf2081470d074f");
$pdf = $client->convertFile('data.php');
// set HTTP response headers
header("Content-Type: application/pdf");
header("Cache-Control: max-age=0");
header("Accept-Ranges: none");
header("Content-Disposition: attachment; filename=\"google_com.pdf\"");
// send the generated PDF
echo $pdf;
}
catch(PdfcrowdException $why)
{
echo "Pdfcrowd Error: " . $why;
}
?>
data.php
<table border="1">
<tr>
<th>NO.</th>
<!-- <th>MAWBNO</th>-->
<th>HAWBNO</th>
<th>Consignee Name</th>
<th>Consignee Address</th>
<th>Sender Name</th>
<th>Sender Address</th>
</tr>
<?php
//connection to mysql
mysql_connect("localhost", "root", ""); //server , username , password
mysql_select_db("shepherddb");
//query get data
$sql = mysql_query("SELECT ship_hawbno,cust_fname,cust_street from shipment,customers
where shipment.ship_consignee_id=customers.cust_id or shipment.ship_shipper_id=customers.cust_id and shipment.ship_id=2");
$no = 1;
while($data = mysql_fetch_array($sql)){
echo '
<tr>
<td>'.$no.'</td>
<td>'.$data['ship_hawbno'].'</td>
<td>'.$data['cust_fname'].'</td>
<td>'.$data['cust_street'].'</td>
<td>'.$data['cust_fname'].'</td>
<td>'.$data['cust_street'].'</td>
</tr>
';
$no++;
}
?>
</table>
答案 0 :(得分:2)
使用->convertFile()
方法,您必须传递本地HTML filePath。您的错误很明确:
- 文件丢失。
- 您错误拼写了文件名。
- 您使用相对文件路径(例如&#39; index.html&#39;)但当前正在工作中 目录是您预期的其他地方:&#39; $ {cwd}&#39;
醇>
通常,使用绝对文件路径而不是相对文件路径更安全。
在您的特定情况下,data.php
不在执行脚本的同一目录中。请改用绝对文件路径。
请注意:
使用此方法,您将原始php文件发送到 PDFcrowd (可以看到您的PHP代码,包括最终的敏感数据)。转换过程将忽略所有php代码,并将在页面中转换仅纯HTML 。
换句话说,如果您的test.php
页面与此类似:
<html>
<head><title>Test</title></head>
<body>
<div style="border:1px solid black;">Hello <?php echo 'World'; ?></div>
</body>
</html>
在浏览器中,您会看到:
┌─────────────┐
│ Hello World │
└─────────────┘
但是,在->convertFile( '/Absolute/Path/to/test.php' )
之后,您转换的pdf文件将如下所示:
┌───────┐
│ Hello │
└───────┘
如果你想转换已处理的php文件,你可以尝试这样的事情:
$html = file_get_contents( 'http://localhost/path/to/your/test.php' );
file_put_contents( '/Absolute/Path/To/tempfile.html', $html );
$pdf = $client->convertFile( '/Absolute/Path/To/tempfile.html' );
换句话说,您首先要检索网址,然后将其保存到文件中,然后转换保存的文件。
另外,您可以使用->convertURI()
代替->convertFile()
:
$pdf = $client->convertURI( 'http://www.example.com/path/to/your/test.php' );
在这种情况下,您必须更换www.example.com&#39;使用有效的主机名或可访问的IP 地址(因此,否 localhost,否 192.168.0.108)。< / p>