如何在pdf扩展名中创建文件并在php中将内容写入该文件?

时间:2017-01-11 10:36:35

标签: php

我编写了一个用于生成pdf文件的PHP代码,并将一些内容写入该特定pdf。代码如下所示:

 <?php

    session_start();


    include('../database.php');

    $id = $_GET['id'];

    $_SESSION["cusid"] = $id;


    $invname =  'invoice_'.(mt_rand(1,10000)).'i'.(mt_rand(1,10000));

    $phpFile = fopen('invoice/'.$invname.'.php', "w") or die("Could not open file.");

    $inv = $invname.'.pdf';


    $sql=mysqli_query($con,"update customer set file='$inv' where cusid='$id'");

    $phpContent = '<?php 

                      session_start(); 
                      include("../database.php"); 


                      $id = $inv;

                      echo $id;
     '; 

     fwrite($phpFile, $phpContent);
     fclose($phpFile);
?>

但是使用此代码时,会创建pdf文件,但在打开特定的pdf时,它会显示无法打开文件的消息。

如何解决此错误?任何人都可以建议如何解决这个错误?

2 个答案:

答案 0 :(得分:1)

FPDF是一个PHP类,允许您在不使用PDFlib库的情况下生成PDF文件。 你可以在这里下载 http://www.fpdf.org/en/download.php 然后解压缩并上传到您的服务器。例如,到目录 public_html / fpdf /

<?php

require('./fpdf.php');

$pdf=new FPDF();

$pdf->AddPage();

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

$pdf->Cell(40,10,'Your string..'');

$pdf->Output();

?>

上面的代码足以创建一个pdf文件。输入一个php文件并将其保存在同一目录中。在执行时,您将获得一个pdf生成。

答案 1 :(得分:-1)

您应该尝试FPDF。它将帮助您使用PHP制作pdf文件。

以下是使用php

的一些示例pdf设计
<?php
require('fpdf.php');//download fpdf library and include here
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(0,10,"Welcome ",3,0,'L');
$pdf->SetFont('Arial', '', 15);
$pdf->SetXY(160 , 30);
$pdf->Write(10, "May 8, 2016");
$pdf->Line(18, 45, 210-20, 45);
$pdf->SetFont('Arial', 'B', 10);
$pdf->SetXY(10 , 54);
$pdf->Write(10, "PAY");
$pdf->SetFont('Arial', '', 11);
$pdf->SetXY(18.5 , 54);
$pdf->Write(10, "ONE THOUSAND TWO HUNDRED THIRTY");
$pdf->SetXY(18 , 75);
$pdf->Cell(35,10,"Pay to the order of ",1,0,'C');
$pdf->SetXY(55, 79);
$pdf->MultiCell(95,6,"Zain Farooq",'BB','L');
$pdf->Ln();
$pdf->SetFont('Arial','',10);
$pdf->setFillColor(0,0,0);
$pdf->SetTextColor(255,255,255);
$pdf->Cell(80, 6, 'COMPANY INFORMATION', 1,0,'C',1);
$pdf->SetFont('Arial','',18);
$pdf->SetTextColor(0,0,0);
$pdf->setFillColor(230,230,230);
$pdf->Cell(80, 23, 'Earnings statement', 1 ,0,'C',1);
$pdf->SetFont('Arial','',8);
$pdf->SetXY(10 , 97);
$pdf->SetTextColor(0,0,0);
$pdf->MultiCell(80, 17, 'Extra statements', 'BL' ,'L');
$pdf->SetXY(10 , 103);
$pdf->MultiCell(90,11,"",'BL','R');
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','',8);
$pdf->SetXY(10 , 114);
$pdf->setFillColor(0,0,0);
$pdf->SetTextColor(255,255,255);
$pdf->Cell(80, 6, 'Employee Information', 1,0,'C',1);
$pdf->Cell(40, 6, 'Social Security', 1,0,'C',1);
$pdf->Cell(40, 6, 'Employee ID', 1, 0, 'C',1);
$pdf->Ln();
$pdf->SetTextColor(0,0,0);
$pdf->SetXY(10 , 114);
$pdf->Cell(80, 18, '4323', 1);
$pdf->Ln();
$pdf->SetFont('Arial','',8);
$pdf->SetXY(90 , 120);
$pdf->setFillColor(255,255,255);
$pdf->Cell(40, 4, 'XXX-XX-123', 1,0,'C',1);
$pdf->Cell(40, 4, '123456', 1, 0, 'C',1);
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','',8);
$pdf->SetXY(90 , 124);
$pdf->setFillColor(0,0,0);
$pdf->SetTextColor(255,255,255);
$pdf->Cell(20, 4, 'Start Date', 1,0,'C',1);
$pdf->Cell(20, 4, 'End Date', 1, 0, 'C',1);
$pdf->Cell(40, 4, 'Check Date', 1, 0, 'C',1);
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','',8);
$pdf->SetXY(90 , 128);
$pdf->setFillColor(255,255,255);
$pdf->SetTextColor(0,0,0);
$pdf->Cell(20, 4, 'Start Date', 1,0,'C',1);
$pdf->Cell(20, 4, 'End Date', 1, 0, 'C',1);
$pdf->Cell(40, 4, 'Check Date', 1, 0, 'C',1);
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','',8);
$pdf->SetXY(10 , 132.3);
$pdf->setFillColor(0,0,0);
$pdf->SetTextColor(255,255,255);
$pdf->Cell(20, 6, 'Earnings', 1,0,'C',1);
$pdf->Cell(20,6, 'Rate', 1, 0, 'C',1);
$pdf->Cell(20,6, 'Hours', 1, 0, 'C',1);
$pdf->Cell(20, 6, 'Current', 1,0,'C',1);
$pdf->Cell(20, 6, 'Year to date', 1, 0, 'C',1);
$pdf->Cell(20, 6, 'Deductions', 1, 0, 'C',1);
$pdf->Cell(20, 6, 'Current', 1,0,'C',1);
$pdf->Cell(20, 6, 'Year to date', 1, 0, 'C',1);
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','',8);
$pdf->SetXY(10 , 137.3);
$pdf->setFillColor(255,255,255);
$pdf->SetTextColor(0,0,0);
$pdf->Cell(20, 50, 'Earnings', 1,0,'T',1);
$pdf->Cell(20,50, 'Rate', 1, 0, 'C',1);
$pdf->Cell(20,50, 'Hours', 1, 0, 'C',1);
$pdf->Cell(20, 50, 'Current', 1,0,'C',1);
$pdf->Cell(20, 50, 'Year to date', 1, 0, 'C',1);
$pdf->Cell(20, 50, 'Deductions', 1, 0, 'C',1);
$pdf->Cell(20, 50, 'Current', 1,0,'C',1);
$pdf->Cell(20, 50, 'Year to date', 1, 0, 'C',1);
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','B',8);
$pdf->SetXY(10 , 187.3);
$pdf->setFillColor(230,230,230);
$pdf->SetTextColor(0,0,0);
$pdf->Cell(60, 6, 'Earnings', 1,0,'R',1);
$pdf->SetFont('Arial','',8);
$pdf->Cell(20, 6, '1600.00', 1,0,'C',1);
$pdf->Cell(20, 6, '14,400.00', 1, 0, 'C',1);
$pdf->SetFont('Arial','B',8);
$pdf->Cell(20, 6, 'Deductions', 1, 0, 'C',1);
$pdf->SetFont('Arial','',8);
$pdf->Cell(20, 6, '370.00', 1,0,'C',1);
$pdf->Cell(20, 6, '3,300.00', 1, 0, 'C',1);
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','',8);
$pdf->SetXY(10 , 193.3);
$pdf->setFillColor(255,255,255);
$pdf->SetTextColor(0,0,0);
$pdf->Cell(26.66667, 6, 'Check Number', 1,0,'R',1);
$pdf->Cell(26.66667, 6, '#6059', 1,0,'C',1);
$pdf->Cell(26.66667, 6, 'Net Pay', 1, 0, 'C',1);
$pdf->Cell(26.66667, 6, '$1,230', 1, 0, 'C',1);
$pdf->Cell(26.66667, 6, 'YTD NET PAY', 1,0,'C',1);
$pdf->Cell(26.66667, 6, '$11,070', 1, 0, 'C',1);
$pdf->Ln();
$pdf->Ln();
$pdf->SetFont('Arial','',8);
$pdf->SetXY(10 , 199.5);
$pdf->setFillColor(0,0,0);
$pdf->Cell(160, 5, '', 1, 0, '',1);
$pdf->Ln();
$pdf->Output('filename.pdf','D');//once design is completed the file will be downloaded into your browser
?>

它只是一个样本。你可以自己设计。希望它能帮到你