如何在php中创建可编辑的Pdf表单


How to create editable Pdf form in php

我有一个简单的表单,我想使用php将其编辑为pdf格式。但是pdf正在创建表单,但我无法编辑和提交它,无论是什么原因,还是我无法使用php编辑pdf?

我的代码是

<?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;
?>

我使用mPDF示例Url和表单示例

您也可以使用TCPDF。TCPDF是一个免费的开源软件PHP类,用于生成PDF文档。TCPDF是唯一一个完全支持UTF-8 Unicode和从右到左语言(包括双向算法)的基于PHP的库。

访问该链接了解更多信息。http://www.tcpdf.org/

需要给出我自己的答案,因为@Christian给出了一个示例的几乎正确且有效的URL,我在Github上为活动表单找到了这个URL,但当我尝试使用它的html表单时,它会给我错误,比如

致命错误:调用未定义的方法mPDF::error()。。。。mpdf''classes''mpdfform.php,第839行

经过一些搜索,我发现表单的文本字段中缺少name属性,当我添加该属性时,它运行良好。

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

问题还没有结束,当我提交表单时,浏览器的控制台中什么都没有显示。然后我使用了php://input在服务器端,它向我显示了一些响应,这些响应是FDF(表单数据格式)的,需要进行解析才能获得实际数据。我没有尝试解析它,但发现了一些有用的URL,我在这里分享,

  1. PHP:从PDF 中提取fdf字段作为数组

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

  3. 提取FDF数据的PHP正则表达式代码

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

    下方的链接

要使字段可编辑,您需要添加以下行:

$mpdf->useActiveForms = true;

这应该适用于mPDF 5.3及更高版本。

您所做的只是将表单打印到PDF上,而不是提供可编辑功能。您的表单仍然不可编辑。您必须使用Acrobat SDK来制作可编辑的表单。