Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create editable Pdf form in php

Tags:

php

pdf

mpdf

I have a simple form and I want to make it editable in pdf using php. But the pdf is creating the form but I can't edit and submit it, any reason or I can't edit pdf using php?

My code is

<?php
    define('_MPDF_PATH','/');
    include("mpdf.php");

    $html = '
        <form action="test.php">
          <input type="text" id="name" value="name" />
          <input type="reset" name="reset" value="Reset" />
          <input type="submit" name="submit" value="Submit" /> 
        </form>';

    $mpdf=new mPDF('c'); 

    $mpdf->default_lineheight_correction = 1.2;

    // LOAD a stylesheet
    $stylesheet = file_get_contents('mpdfstyletables.css');
    $mpdf->WriteHTML($stylesheet,1);    // The parameter 1 tells that this is css/style only and no body/html/text
    $mpdf->SetColumns(2,'J');
    $mpdf->WriteHTML($html);
    $mpdf->Output('test.pdf','D');//
    exit;
?>

I'm using mPDF Example Url and Form Example

like image 321
Rohan Kumar Avatar asked Jul 12 '13 08:07

Rohan Kumar


People also ask

How create PDF in PHP explain with example?

php require('./fpdf. php'); $pdf=new FPDF(); $pdf->AddPage(); $pdf->SetFont('Arial','B',16); $pdf->Cell(40,10,'Hello World! '); $pdf->Output(); ?> Upon execution, the PHP script will generate a PDF file in your browser.

How can create HTML PDF in PHP?

You have to insert all the your HTML in loadHtml() function and then we set page type to A4 and in landscape mode and then use render() function to convert HTML to PDF and then display the created pdf file using stream() function.


2 Answers

Need to give my own answer, as @Christian gave almost correct and working URL of an example and I found this on Github for active forms but when I tried my html form with it, then it gives me error something like,

Fatal error: Call to undefined method mPDF::Error() .... mpdf\classes\mpdfform.php on line 839

After some searching I found that there is missing name attribute in the form's text field and when I added the attribute it worked well.

<input type="text" id="name" value="name" name="field_name" />

The problem not ends with this, when I submit the form then there is nothing shown in browser's console. Then I used php://input at server side and it has shown me some response, which is in FDF(forms data format) and needs to be parse to get the actual data. I din't give a try to parse it but found some useful URLS which I am sharing here,

  1. PHP: Extract fdf fields as an array from a PDF

  2. https://answers.acrobatusers.com/Parse-FDF-response-q72665.aspx

  3. PHP regex code to extract FDF data

  4. http://php.net/manual/en/ref.fdf.php

    links below

like image 119
Rohan Kumar Avatar answered Oct 10 '22 13:10

Rohan Kumar


To make the fields editable, you need to add this line:

$mpdf->useActiveForms = true;

This should work for mPDF 5.3 and higher.

like image 37
Christian Avatar answered Oct 10 '22 13:10

Christian