我希望这个php变量能够在pdf文件中显示。但它给出了错误: - Pdf文件不以'%Pdf - '
开头A.php它包含我的表格。通过使用post我将值发送到其他printpdf.php printpdf.php生成具有特定格式的pdf文件。
a.php只会
<form class="mid" action="printpdf.php" method="post">
<input type="hidden" id="cname" name="cname" value="<?php echo $c_n[0]; ?>"/>
<input type="submit" id="but" value="Print Challan"/>
</form>
printpdf.php
<?php
$c_n = $_POST['cname'];
require('fpdf.php');
class PDF extends FPDF
{
function Header()
{
$this->Image('image.jpg',5,5,200);
$this->Ln(20);
}
//Page footer
function Footer()
{
$this->SetFont('Arial','I',8);
$this->Image('image1.jpeg',5,275,200);
$this->SetXY(5, 284);
$this->Cell(0,5,'This is a system generated ',0,2,'C');
$this->Cell(0,5,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
//Instanciation of inherited class
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','B',15);
$pdf->SetXY(5,42);
$pdf->Cell(190,10,'Challan', 0,0,'C');
$pdf->SetXY(5,52);
$pdf->SetFont('Times','B',12);
$pdf->Cell(150,18,'Name :-', 1,0,'L');
$pdf->Cell(15,0,'$c_n', 0,0,'L');
$pdf->SetXY(155,52);
$pdf->Cell(50,9,'Challan No. :-', 1,2,'L');
$pdf->Cell(50,9,'Date :-', 1,0,'L');
$pdf->SetXY(5,70);
$pdf->Cell(15,15,'Sno', 1,0,'C');
$pdf->Cell(35,15,'Type', 1,0,'C');
$pdf->Cell(45,15,'Make', 1,0,'C');
$pdf->Cell(45,15,'Model', 1,0,'C');
$pdf->Cell(45,15,'Serial No.', 1,0,'C');
$pdf->Cell(15,15,'Qty', 1,0,'C');
$pdf->SetXY(5,85);
$pdf->SetFont('Times','',12);
$pdf->Cell(15,165,'', 1,0,'L');
$pdf->Cell(35,165,'', 1,0,'L');
$pdf->Cell(45,165,'', 1,0,'L');
$pdf->Cell(45,165,'', 1,0,'L');
$pdf->Cell(45,165,, 1,0,'L');
$pdf->Cell(170,165,'', 1,0,'L');
$pdf->Cell(15,165,'', 1,0,'L');
$pdf->SetXY(5,245);
$pdf->SetFont('Times','B',12);
$pdf->Cell(35,20,'Reciever Name :- ', 0,0,'L');
$pdf->SetXY(125,245);
$pdf->Cell(35,20,'Reciever Signature :- ', 0,0,'L');
$pdf->Output();
?>
错误: - 文件不以'%Pdf-'
开头答案 0 :(得分:0)
我建议避免使用hidden
输入字段来解析变量。在呼吁采取行动时,最好使用网址:action="printpdf.php?cname=XXXX"
。如果变量可以被用户破坏,请执行以下三种操作之一:i)将变量存储在服务器会话中:$_SESSION['cname']=XXXX;
,其中几乎不能操作; ii)对url字符串进行编码,散列或加密; iii)在printpdf.php文件中恢复时清理变量。
隐藏字段易于操作,是解析数据的原始方式。
答案 1 :(得分:0)
尝试这种方式:
<?php
require('fpdf.php');
class PDF extends FPDF
{
function Header()
{
$this->Image('image.jpg',5,5,200);
$this->Ln(20);
}
//Page footer
function Footer()
{
$this->SetFont('Arial','I',8);
$this->Image('image1.jpeg',5,275,200);
$this->SetXY(5, 284);
$this->Cell(0,5,'This is a system generated ',0,2,'C');
$this->Cell(0,5,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
//Instanciation of inherited class
if(isset($_POST['cname']))
{$c_n = $_POST['cname'];
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','B',15);
$pdf->SetXY(5,42);
$pdf->Cell(190,10,'Challan', 0,0,'C');
$pdf->SetXY(5,52);
$pdf->SetFont('Times','B',12);
$pdf->Cell(150,18,'Name :-'.$c_n, 1,0,'L');
$pdf->Cell(15,0,$c_n, 0,0,'L');
$pdf->SetXY(155,52);
$pdf->Cell(50,9,'Challan No. :-', 1,2,'L');
$pdf->Cell(50,9,'Date :-', 1,0,'L');
$pdf->SetXY(5,70);
$pdf->Cell(15,15,'Sno', 1,0,'C');
$pdf->Cell(35,15,'Type', 1,0,'C');
$pdf->Cell(45,15,'Make', 1,0,'C');
$pdf->Cell(45,15,'Model', 1,0,'C');
$pdf->Cell(45,15,'Serial No.', 1,0,'C');
$pdf->Cell(15,15,'Qty', 1,0,'C');
$pdf->SetXY(5,85);
$pdf->SetFont('Times','',12);
$pdf->Cell(15,165,'', 1,0,'L');
$pdf->Cell(35,165,'', 1,0,'L');
$pdf->Cell(45,165,'', 1,0,'L');
$pdf->Cell(45,165,'', 1,0,'L');
$pdf->Cell(45,165,, 1,0,'L');
$pdf->Cell(170,165,'', 1,0,'L');
$pdf->Cell(15,165,'', 1,0,'L');
$pdf->SetXY(5,245);
$pdf->SetFont('Times','B',12);
$pdf->Cell(35,20,'Reciever Name :- ', 0,0,'L');
$pdf->SetXY(125,245);
$pdf->Cell(35,20,'Reciever Signature :- ', 0,0,'L');
$pdf->Output();
}
?>
答案 2 :(得分:0)
我也被困在同一点,我想用问题和选项的数组生成问题文件。
无论您的PHP代码是什么,都必须在要求之前(&#39; fpdf.php&#39;);
FPDF不希望任何其他代码进入他的代码之间。
我希望,这解决了这个问题。
答案 3 :(得分:0)
错误就在这里
$pdf->Cell(35,165,'', 1,0,'L');
$pdf->Cell(45,165,'', 1,0,'L');
$pdf->Cell(45,165,'', 1,0,'L');//*
$pdf->Cell(45,165,, 1,0,'L'); <<<<<<<<<<-----------------
$pdf->Cell(170,165,'', 1,0,'L');
$pdf->Cell(15,165,'', 1,0,'L');
$pdf->SetXY(5,245);
$pdf->SetFont('Times','B',12);
$pdf->Cell(35,20,'Reciever Name :- ', 0,0,'L');
$pdf->SetXY(125,245);
$pdf->Cell(35,20,'Reciever Signature :- ', 0,0,'L');
//*/
$pdf->Output();
将该行更改为$pdf->Cell(45,165,'', 1,0,'L');
注意你的参考,即我使用
$str = '../fpdf/fpdf.php';
需要($ STR);
因为我的代码在哪里
在图像中,即
$this->Image($_SESSION['raiz'].'imagens/mmp.png',5,5,200);
如果你的fpdf库和图像在同一个文件夹中,那么一切都是正确的。
顺便说说。我测试代码正确的错误,它运行良好