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

我有问题,我会用 php 生成 pdf 中的复选框,但是如果我重新检查复选框状态,我找不到复选框。

我试过:

  • TCPDF(生成)

  • C#(阅读,未找到复选框)

  • Python(读取,Pypdf2,未找到复选框)

图片:

文件:

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 pypdf


pdfobject=open('sample.pdf','rb')

pdf=pypdf.PdfFileReader(pdfobject)

print(pdf.getFields())

正如您所读,我想查看生成的复选框状态,无论是 python 还是 c#、php 有谁知道这个问题的解决方案吗?


猛跑小猪
浏览 87回答 1
1回答

三国纷争

您传递true给$js参数,该参数不会真正将复选框添加到 PDF,但会包含 JavaScript,它将在打开时创建字段(通过能够执行 JavaScript 的查看器应用程序)。尝试传递false或保留参数(false= 默认值)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python