为了账号安全,请及时绑定邮箱和手机立即绑定

使用 PHP 生成复选框并将复选框状态读回 PDF

使用 PHP 生成复选框并将复选框状态读回 PDF

猛跑小猪 2023-09-19 14:41:00
我有问题,我会用 php 生成 pdf 中的复选框,但是如果我重新检查复选框状态,我找不到复选框。我试过:TCPDF(生成)C#(阅读,未找到复选框)Python(读取,Pypdf2,未找到复选框)图片:Acrobat Reader 打开 pdf 显示复选框 ( https://prnt.sc/uqjny8 )Python 3.8 阅读器输出 ( https://prnt.sc/uqjp9o )C# 代码输出 ( https://prnt.sc/uqjpnw )文件:没有复选框的简单 PDF ( http://www.africau.edu/images/default/sample.pdf )带有复选框的 PDF ( https://easyupload.io/zjn85z )PHP 复选框生成代码:$pdf = new \setasign\Fpdi\TcpdfFpdi('L', 'mm', 'A4');$pages = $pdf->setSourceFile('file://C:/Users/JonDoe/Desktop/sample.pdf');for ($i = 1; $i <= $pages; $i++){    $pdf->AddPage();    $page = $pdf->importPage($i);    $pdf->useTemplate($page, 0, 0);    $pdf->CheckBox('newsletter', 5, true, array(), array(), 'OK1', 600/5, 500/5, true);}$pdf->Output("file://C:/Users/JonDoe/Desktop/sample.pdf", 'F');读者脚本:C#:using System;using iTextSharp.text.pdf;using System.Linq;namespace PDF_Checkbox{    class Program    {        static void Main(string[] args)        {            string path = "C:\\Users\\JonDoe\\Desktop\\sample";            PdfReader reader2 = new PdfReader(@"" + path + ".pdf");            var fieldList = GetFormFieldNamesWithValues(reader2);            Console.WriteLine("============================================================");            Console.WriteLine("Fields: " + fieldList);            Console.WriteLine("============================================================");            Console.ReadKey();        }        private static string GetFormFieldNamesWithValues(PdfReader pdfReader)        {             return string.Join("\r\n", pdfReader.AcroFields.Fields.Select(x => x.Key + "=" + pdfReader.AcroFields.GetField(x.Key)).ToArray());        }    }}Python 3.8:import PyPDF2 as pypdfpdfobject=open('sample.pdf','rb')pdf=pypdf.PdfFileReader(pdfobject)print(pdf.getFields())正如您所读,我想查看生成的复选框状态,无论是 python 还是 c#、php 有谁知道这个问题的解决方案吗?
查看完整描述

1 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

您传递true$js参数,该参数不会真正将复选框添加到 PDF,但会包含 JavaScript,它将在打开时创建字段(通过能够执行 JavaScript 的查看器应用程序)。

尝试传递false或保留参数(false= 默认值)。

查看完整回答
反对 回复 2023-09-19
  • 1 回答
  • 0 关注
  • 50 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信