如何使用 php 和 TCPDF 将文件内联发送到浏览器
How to send the file inline to the browser using php with TCPDF
我是 PHP 的新人。我正在使用 TCPDF 生成带有 php 编码的 pdf 文件。我有个问题。我无法将文件内联发送到浏览器。当我单击文件 link 时,它开始启动。我想将它内联发送到浏览器。
这是我的代码
<?php
require_once('tcpdf/tcpdf.php');
class MYPDF extends TCPDF {
//Page header
public function Header() {
// Logo
$image_file ='image/pacra.jpg';
$this->Image($image_file, 100, 05, 15);
// Set font
$this->SetFont('helvetica', 'I', 15);
// Title
$this->SetTextColor(0,63,127);
$this->Cell(0,50, 'The Pakistan Credit Rating Agency Limited', 0, false, 'C', 0, '', 0, false);
// $this->setColor(0,63,127);
$this->Line(10,30,200,30);
/*$style = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,20,5,10', 'phase' => 10, 'color' => array(255, 0, 0));
$this->Line(5, 10, 80, 30, $style);*/
}
// Page footer
public function Footer() {
// Position at 15 mm from bottom
$this->SetY(-25);
// Set font
$this->SetFont('helvetica', 'I', 8);
// Page number
$this->Cell(0, 05, 'Awami Complex FB-1, Usman Block, New Garden Town, Lahore - 54600, Pakistan'
, 0, false, 'C', 0, '', 0, false, 'T', 'M');
$this->Ln();
$this->Cell(0, 05, 'PABX: 92(42)3586 9504 Fax: 92(42)3583 0425 E-mail: pacra@pacra.com'
, 0, false, 'C', 0, '', 0, false, 'T', 'M');
}
}
// create new PDF document
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->AddPage();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test123"; // Database name
$tbl_name="form"; // Table name
$con = mysqli_connect('localhost','root','');
mysqli_select_db($con,"test123");
$sql="SELECT * FROM form WHERE Id=34";
$result = mysqli_query($con,$sql);
while($rows= (mysqli_fetch_array($result,MYSQLI_ASSOC)))
{
$name = $rows['Name'];
$address = $rows['Address'];
$class = $rows['Designation'];
$phone = $rows['Text'];
$pdf->SetXY(10,32);
$pdf->SetFontSize(12);
$pdf->SetTextColor(0,63,127);
$pdf->writeHTML($name, true, false, true, false, '');
$pdf->SetTextColor(0,0,0);
$pdf->SetXY(180,32);
$pdf->writeHTML($address, true, false, true, false, '');
$pdf->SetXY(10,36);
$pdf->SetTextColor(0,0,0);
$pdf->writeHTML($class, true, false, true, false, '');
$pdf->SetXY(10,45);
$pdf->writeHTML($phone, true, false, true, false, '');
}
$html= '<h6>This is test paragraph</h6>
<br>
<h6>This is another test paragraph</h6>
';
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output('test.pdf','I');
?>
虽然它适用于 I
,但它也适用于 O
。
尝试
$pdf->Output('name.pdf', 'O');
如果以上方法不行,就用php header()
函数比较好。
header("Content-type: application/pdf");
使用header()
功能后,只需echo
您创建的PDF
文件的内容。
这是我在 文档中找到的内容。
- I: send the file inline to the browser (default). The plug-in is used if available. The name given by name is used when one selects
the "Save as" option on the link generating the PDF.
- D: send to the browser and force a file download with the name given by name.
- F: save to a local server file with the name given by name.
- S: return the document as a string (name is ignored).
- FI: equivalent to F + I option
- FD: equivalent to F + D option
- E: return the document as base64 mime multi-part email attachment (RFC 2045)
我是 PHP 的新人。我正在使用 TCPDF 生成带有 php 编码的 pdf 文件。我有个问题。我无法将文件内联发送到浏览器。当我单击文件 link 时,它开始启动。我想将它内联发送到浏览器。
这是我的代码
<?php
require_once('tcpdf/tcpdf.php');
class MYPDF extends TCPDF {
//Page header
public function Header() {
// Logo
$image_file ='image/pacra.jpg';
$this->Image($image_file, 100, 05, 15);
// Set font
$this->SetFont('helvetica', 'I', 15);
// Title
$this->SetTextColor(0,63,127);
$this->Cell(0,50, 'The Pakistan Credit Rating Agency Limited', 0, false, 'C', 0, '', 0, false);
// $this->setColor(0,63,127);
$this->Line(10,30,200,30);
/*$style = array('width' => 0.5, 'cap' => 'butt', 'join' => 'miter', 'dash' => '10,20,5,10', 'phase' => 10, 'color' => array(255, 0, 0));
$this->Line(5, 10, 80, 30, $style);*/
}
// Page footer
public function Footer() {
// Position at 15 mm from bottom
$this->SetY(-25);
// Set font
$this->SetFont('helvetica', 'I', 8);
// Page number
$this->Cell(0, 05, 'Awami Complex FB-1, Usman Block, New Garden Town, Lahore - 54600, Pakistan'
, 0, false, 'C', 0, '', 0, false, 'T', 'M');
$this->Ln();
$this->Cell(0, 05, 'PABX: 92(42)3586 9504 Fax: 92(42)3583 0425 E-mail: pacra@pacra.com'
, 0, false, 'C', 0, '', 0, false, 'T', 'M');
}
}
// create new PDF document
$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$pdf->AddPage();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="test123"; // Database name
$tbl_name="form"; // Table name
$con = mysqli_connect('localhost','root','');
mysqli_select_db($con,"test123");
$sql="SELECT * FROM form WHERE Id=34";
$result = mysqli_query($con,$sql);
while($rows= (mysqli_fetch_array($result,MYSQLI_ASSOC)))
{
$name = $rows['Name'];
$address = $rows['Address'];
$class = $rows['Designation'];
$phone = $rows['Text'];
$pdf->SetXY(10,32);
$pdf->SetFontSize(12);
$pdf->SetTextColor(0,63,127);
$pdf->writeHTML($name, true, false, true, false, '');
$pdf->SetTextColor(0,0,0);
$pdf->SetXY(180,32);
$pdf->writeHTML($address, true, false, true, false, '');
$pdf->SetXY(10,36);
$pdf->SetTextColor(0,0,0);
$pdf->writeHTML($class, true, false, true, false, '');
$pdf->SetXY(10,45);
$pdf->writeHTML($phone, true, false, true, false, '');
}
$html= '<h6>This is test paragraph</h6>
<br>
<h6>This is another test paragraph</h6>
';
$pdf->writeHTML($html, true, false, true, false, '');
$pdf->Output('test.pdf','I');
?>
虽然它适用于 I
,但它也适用于 O
。
尝试
$pdf->Output('name.pdf', 'O');
如果以上方法不行,就用php header()
函数比较好。
header("Content-type: application/pdf");
使用header()
功能后,只需echo
您创建的PDF
文件的内容。
这是我在 文档中找到的内容。
- I: send the file inline to the browser (default). The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.
- D: send to the browser and force a file download with the name given by name.
- F: save to a local server file with the name given by name.
- S: return the document as a string (name is ignored).
- FI: equivalent to F + I option
- FD: equivalent to F + D option
- E: return the document as base64 mime multi-part email attachment (RFC 2045)