Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Insert images files in existing PDF file using PHP

Tags:

php

pdf

fpdf

fpdi

My need is that I upload two image files and that should be added to an existing PDF file. I have read about FPDF, basing on that I have followed this post link. In case if somebody can post a simple working example/link it would be helpful for searchers like me and some more people who would also take the same route to find some helpful answers.

like image 299
125369 Avatar asked Mar 06 '12 15:03

125369


People also ask

How do I add a picture to an existing PDF file?

Open the PDF in Acrobat, and then choose Tools > Edit PDF > Add Image . In the Open dialog box, locate the image file you want to place. Select the image file, and click Open. Click where you want to place the image, or click-drag to size the image as you place it.

How do I insert an image into a PDF using FPDF?

More videos on YouTube php'); $pdf = new FPDF(); $pdf->AddPage(); $pdf->Image('images/pdf-header. jpg',0,0); $pdf->Output(); ?> The ouput of above code is here . ( Show Output ) We can add position with height, width and link to above code.

Can we edit PDF in PHP?

PSPDFKit for Web is a JavaScript library for editing PDF documents directly in a browser. It is fully compatible with PHP and offers developers a robust API for programmatic editing, as well as a beautiful UI for performing a host of editing operations in any PHP-based web app.


2 Answers

It seems there is an extension called FPDI for FPDF. Here is a blog post about how to modify an existing pdf: http://pranavom.wordpress.com/2011/03/15/modify-pdf-using-fpdffpdi-library/

You can place an image using FPDI like so:

$pdf = new FPDI();
$pdf->AddPage();
$pdf->setSourceFile("MySource");
$template = $pdf->importPage(1);
$pdf->useTemplate($template);
$pdf->Image('MyImage.jpg', $x, $y, $width, $height);
$pdf->Output($outputPath, "F");
like image 198
tonymarschall Avatar answered Oct 01 '22 09:10

tonymarschall


I am using PHP, FPDF to generate a pdf from an FDF file and then insert a qrcode graphic into the pdf as well. I kept running into trouble because my empty pdf has form fields built in and inserting a graphic with other programs erased my form fields. I finally figured it out. Hope this helps someone else who is struggling with the same.

I work for funeral home if any of the var names throw you off and this code isn't polished its been cut and pasted from tons of different sources ;)

I am using the following libraries http://www.fpdf.org/ and http://phpqrcode.sourceforge.net/

for($count=0;$count<$doc_list_length;$count++){

    //create FDF file
    $id = rand(11111,99999);
    $filename = $populated_pdf_path . $casenumber.$doc_list[$count].".fdf";    
    $file = fopen($filename,"w");
    $filecontents = "%FDF-1.2". PHP_EOL;
    $filecontents .= "%âãÏÓ" . PHP_EOL;
    $filecontents .= "1 0 obj" . PHP_EOL;
    $filecontents .= "<<" .PHP_EOL;
    $filecontents .= "/FDF << /Fields [ ";
    $filecontents .= "<</T(name)/V($name)>>";
    $filecontents .= "] " . PHP_EOL;
    $filecontents .= "/F (empty_pdf/$doc_list[$count].pdf) ";
    $filecontents .= "/ID [ <$id>" . PHP_EOL;
    $filecontents .= "] >> " . PHP_EOL;
    $filecontents .= ">> ". PHP_EOL;
    $filecontents .= "endobj" . PHP_EOL;
    $filecontents .= "trailer" . PHP_EOL;
    $filecontents .= "<<" . PHP_EOL;
    $filecontents .= "/Root 1 0 R" . PHP_EOL . PHP_EOL;
    $filecontents .= ">>" . PHP_EOL;
    $filecontents .= "%%EOF";
    fwrite($file, $filecontents);
    fclose($file);

    //insert image on this document only
    //generate qrcode
    if($doc_list[$count] == "checklist"){

        $qrCodeFileName = $cemetery."qrcode.png";
        if(!file_exists($populated_pdf_path.$qrCodeFileName)){
            include('include/phpqrcode/qrlib.php');  
            $codeContents = "http://www.asuperduperwebaddress.com"; 
            QRcode::png($codeContents, $populated_pdf_path.$qrCodeFileName);
        }

        if(!file_exists($populated_pdf_path.$cemetery."qrcode.pdf")){
            //make pdf with image
            require_once('include/fpdf.php');
            $image = $populated_pdf_path.$qrCodeFileName;
            $pdf = new FPDF();
            $pdf->AddPage();
            $pdf->Image($image, 183, 250, 25, 25, 'PNG' );
            $pdf->Output( $populated_pdf_path.$cemetery."qrcode.pdf");
        }

        //setup file paths for pdf output
        $tempFile = $populated_pdf_path . $casenumber.$doc_list[$count]."temp.pdf";
        $pdfExampleFile = $populated_pdf_path . $casenumber.$doc_list[$count].".pdf"; 
        $pdfFile = $empty_pdf_path . $doc_list[$count] . ".pdf";
        if($doc_list[$count] == "checklist")
        $fdfFile = $filename; 
        $fdfTemplateFile = $filename;

        //fill pdf
        $command = "pdftk $pdfFile fill_form $fdfTemplateFile output $tempFile 2> fill_form.log";
        passthru($command);

        //stamp pdf with qrcode
        $command = "pdftk " . $tempFile . " stamp " . $populated_pdf_path.$cemetery . "qrcode.pdf output " . $pdfExampleFile; 
        passthru($command);
    }
    else{
        //setup file paths for pdf output
        $pdfExampleFile = $populated_pdf_path . $casenumber.$doc_list[$count].".pdf"; 
        $pdfFile = $empty_pdf_path . $doc_list[$count] . ".pdf";
        if($doc_list[$count] == "checklist")
        $fdfFile = $filename; 
        $fdfTemplateFile = $filename;

        //fill pdf
        $command = "pdftk $pdfFile fill_form $fdfTemplateFile output $pdfExampleFile 2> fill_form.log";
        passthru($command);
    }

}
like image 33
James Avatar answered Oct 01 '22 09:10

James