当前位置: 首页 > 知识库问答 >
问题:

PHP - 如何在PDF文件中设置字段的值,然后保存?

苏培
2023-03-14

我正在构建一个应用程序来帮助为我的网站设置 PDF 表单。我有使用的标准表单,但每次将标准表单添加到新帐户时都需要更改 PDF 文件中的一些隐藏字段。

使用 PHP 如何更新 PDF 文件中字段的值,然后保存文件?我假设我需要使用某种 PHP-PDF 库,所以一个免费的库会有所帮助。

(表单已使用 Adobe Acrobat 使用表单字段进行编程,并且具有唯一的字段名称。我需要做的就是使用字段名称作为键更新几个现有字段)

例-

PDF File Location = www.mysite.com/accounts/john_smith/form.pdf
PDF Field to update (Field Name) = "account_directory"
PDF Field value to be set = "john_smith"

共有1个答案

金伟
2023-03-14

示例代码:

$data = array();
$field_name = "account_directory";
$field_value = "john_smith";
$data[$field_name] = $field_value;
/* Make $data as big as you need with as many field names/values 
as you need to populate your pdf */

$pdf_template_url = 'http://yoursite.com/yourpath/yourtemplate.pdf';
include 'createXFDF.php';
$xfdf = createXFDF( $pdf_template_url, $data );

/* Set up the temporary file name for xfdf */
$filename = "temp_file.xfdf";

/* Create and write the XFDF for this application */
$directory = $_SERVER['DOCUMENT_ROOT']."/path_to_temp_files/";
$xfdf_file_path = $directory.$filename ; /* needed for PDFTK */
// Open the temp xfdf file and erase the contents if any
$fp = fopen($directory.$filename, "w");
// Write the data to the file
fwrite($fp, $xfdf);
// Close the xfdf file
fclose($fp); 

/*  Write the pdf for this application - Temporary, then Final */
$pdf_template_path = '/yourpath/yourtemplate.pdf';
$pdftk = '/path/to/pdftk'; /* location of PDFTK */
$temp_pdf_file_path = substr( $xfdf_file_path, 0, -4 ) . 'pdf'; 

$command = "$pdftk $pdf_template_path fill_form $xfdf_file_path output $temp_pdf_file_path"; 
/* Note that the created file is NOT flattened so that recipient
can edit form - but this is not enough to allow edit with
Adobe Reader: will also need to remove the signature with PDFTK cat */

exec( $command, $output, $ret );

/* Workaround to get editable final pdf */ 
$pdf_path_final = $directory. "your_final_filename.pdf" ;
$command2 = "$pdftk $temp_pdf_file_path cat output $pdf_path_final";
exec( $command2, $output2, $ret2 );
/* Your pdf is now saved 

/* Remember to UNLINK any files you don't want to save - the .xfdf and the temporary pdf */
 类似资料:
  • 问题内容: 经过一些处理后,我想为用户输入设置一个cookie值,然后将其重定向到新页面。但是,cookie尚未设置。如果我注释掉重定向,则cookie设置成功。我认为这是某种形式的标题问题。在这种情况下最好的解决方法是什么? 请注意,无论哪种情况,setcookie都会返回,并且我不会收到任何错误/警告/通知。 编辑: 我正在使用Unix / Apache / MySQL / PHP 问题答案:

  • 问题内容: 我正在用nodejs和html进行项目。任何人都可以帮助您从server.js中设置html文本字段的值。例如,我在index.html上有ID为’name’的文本字段。我使用res.body.name =’nametest’。但是它不起作用。请给我一个简单的例子。谢谢朋友 问题答案: 为了设置服务器中的字段,您需要将其设置为在发送HTML时定义的预设值,或者稍后再动态设置。第一个选项

  • 我在动态应用程序中使用片段,其中User.java文件包含值,而< code>TabbedActivity.java文件包含三个片段。我想将文本设置为< code > profile rgament . Java 中的< code>TextView。因此,我在< code > fragment _ profile . XML 中创建了一个< code>TextView,并使用以下代码从< code

  • 问题内容: 有没有一种简单的方法可以为文本表单字段设置默认值? 问题答案: 可以在创建过程中轻松使用:

  • 我在groovy/spock中测试了一个java类。java类有最后一个字段: 我想测试一个方法是否使用这个记录器,最好是使用模拟。问题是这个字段是最终的,所以我不能直接设置它。我知道有一些变通方法,比如: 修改ield.set字段field.get 但这些都是可怕的黑客。有没有更好的方法?

  • 如何为PDF表单中的每个字段设置定义值,假设我的PDF表单中有5个字段,例如2个文本框(名字和姓氏)和2个复选框(Check_1,Check_2),2个单选按钮(男,女),然后最后我有另一个文本框(地址),现在我必须定义或设置每个字段的值,比如1代表名字,2代表姓氏,3代表Check_1并继续到7代表地址。下面是一段代码来定义每个字段的值,但我面临一些问题,当设置单选按钮字段的值时,当涉及男和女字

  • 我有一个Material UI文本字段作为输入,我需要强制输入大写文本。我曾尝试使用作为样式属性的一部分,但这似乎不起作用。我的组件中的所有其他样式都已正确应用,但textTransform未正确应用。 我也尝试过使用标准样式方法将我的样式作为道具传递给组件,但我得到了相同的结果。 我的组件: 输出:

  • 问题内容: 我有一个带有两个表的SQL Server 2008数据库。第一个表称为Department。第二个表称为票证。这两个表的定义如下: 我正在尝试找出一种动态更新Department.TotalTickets值的方法。当添加或删除工单时,我想自动增加或减少TotalTickets的值。有人可以告诉我在SQL Server 2008上执行此操作的最佳方法吗? 谢谢 问题答案: 有多种方法可以