如何在PHP中创建可编辑的PDF表单

10

我有一个简单的表单,希望使用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示例链接表单示例


你能提供更多信息吗?那个PDF文件提交了什么吗?当按下提交按钮时,是否发生了任何事情?你的test.php被调用了吗?(我不确定PDF是否可以做到这一点,但总有第一次...) - ToBe
没有在点击“提交按钮”时发生“更改”,甚至没有“输入框或下拉菜单的更改”。这些“元素”不像“HTML元素”那样运作。 - Rohan Kumar
那么,你认为PDF为什么能够向Web服务提交数据呢?有任何参考资料吗? - ToBe
@RohanKumar,你问题底部的两个链接已经失效了。 - reformed
@reformed 我已经更新了损坏的链接。 - Rohan Kumar
4个回答

4
您可以使用TCPDF。 TCPDF是一个免费的开源软件PHP类,用于生成PDF文档。 TCPDF是唯一一个基于PHP的库,包括对UTF-8 Unicode和从右到左的语言(包括双向算法)的完全支持。
访问此链接以获取更多信息。 http://www.tcpdf.org/

3
为了使字段可编辑,您需要添加以下代码行:
$mpdf->useActiveForms = true;

这个应该适用于mPDF 5.3及以上版本。

3
需要给出自己的答案,因为@Christian提供了一个几乎正确且有效的示例URL,我在Github上找到了这个与活动表单相关的内容,但当我尝试使用我的HTML表单时,它会给我返回一个错误信息,类似于:

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

经过一些搜索,我发现表单的文本字段缺少name属性,当我添加该属性后,它就可以正常工作了。

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

问题并没有结束,当我提交表单后,浏览器控制台中没有任何显示。然后我在服务器端使用了php://input,它向我展示了一些响应内容,这些内容以FDF(表单数据格式)的形式呈现,并需要进行解析才能获取实际数据。我没有尝试解析它,但在此分享一些有用的链接:

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

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

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

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

    以下是链接


1
您所做的只是将一个表单打印到PDF上,但是没有提供可编辑功能。您的表单仍然是不可编辑的。您需要使用Acrobat SDK来创建可编辑的表单。

你有使用“Acrobat API”的想法吗?如何在“php”中使用它? - Rohan Kumar
您可以使用Acrobat JavaScript SDK .http://www.adobe.com/devnet/acrobat/overview.html ,特别是阅读选择正确的Acrobat SDK技术部分。 - Raptor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接