PDF 表单字段即使在焦点后也显示原始字段值

问题描述 投票:0回答:1

大家。 我正在尝试创建一个带有可填写表单字段的 PDF,但在 Chrome 中呈现 PDF 时出现一些奇怪的行为。正如预期的那样,输入字段首先是空的。我可以点击进入,输入一个值(例如很多“bbbbbbb”),然后点击离开 - 直到此时一切正常。但是,当我再次单击该字段并开始写入时,即使我正在写入,它仍然显示原始值。例如,如果我单击字段的开头并添加一堆“aaaaaaa”,我仍然可以看到新值后面的字母“bbbbbbbb”。

First value bbbbb

Second value aaaaa

这只发生在 Chrome 中。当相同的 PDF 在 Acrobat reader 或 Mozilla 中显示时,它工作得很好。虽然当我打开此 PDF 时 Acrobat reader 会崩溃,但当我用表单打开其他 PDF 文件时似乎也会崩溃,所以这可能是无关的。

我在这里添加PDF文件的源代码:


%PDF-1.4
1 0 obj 
<</Type /Catalog /Version /1.4 /Pages 2 0 R /Acroform <</NeedAppearances false /Fields [5 0 R ] >> /Names 8 0 R >>
endobj
2 0 obj 
<</Type /Pages /Kids [11 0 R ] /Count 1 >>
endobj
3 0 obj 
<</Type /Font /Subtype /Type1 /Encoding /WinAnsiEncoding /BaseFont /Helvetica >>
endobj
4 0 obj 
<</Length 57 /Type /XObject /Subtype /Form /BBox [0 0 150 30 ] /Resources <</ProcSet [/PDF /Text /ImageC /ImageB /ImageI ] >> /Matrix [1 0 0 1 0 0 ] >>
stream
/Tx BMC 
BT 
/Helvetica 11 Tf 0 g 
5 5 Td 
() Tj 
ET 
EMC
endstream
endobj
5 0 obj 
<</Type /Annot /Subtype /Widget /FT /Tx /Rect [150 395 300 425 ] /T (yourname) /DA (/Helvetica 11 Tf 0 g) /F 4 /Ff 0 /DR <</Font <</Helvetica 3 0 R >> >> 
/AP <</N 4 0 R >> /P 11 0 R >>
endobj
6 0 obj 
[]
endobj
7 0 obj 
<</Names 6 0 R >>
endobj
8 0 obj 
<</Dests 10 0 R >>
endobj
9 0 obj 
[]
endobj
10 0 obj 
<</Names 9 0 R >>
endobj
11 0 obj 
<</Type /Page /LastModified (D:20240326234624+01'00') /Resources <</ProcSet [/PDF /Text ] /Font <</F1 13 0 R >> >> /MediaBox [0 0 595 842 ] 
/Contents [12 0 R ] /Annots [5 0 R 5 0 R ] /Parent 2 0 R >>
endobj
12 0 obj 
<</Length 101 >>
stream
0.8 g
20 20 555 802 re
 f
/F1 14 Tf
0 g
BT
40 400 Td
(Fill your name) Tj
ET
1 g
150 395 150 30 re
 f

endstream
endobj
13 0 obj 
<</Type /Font /Encoding /WinAnsiEncoding /Subtype /Type1 /BaseFont /Helvetica >>
endobj
xref
0 14 
0000000000 65535 f 
0000000015 00000 n 
0000000146 00000 n 
0000000205 00000 n 
0000000302 00000 n 
0000000545 00000 n 
0000000747 00000 n 
0000000766 00000 n 
0000000800 00000 n 
0000000835 00000 n 
0000000854 00000 n 
0000000889 00000 n 
0000001107 00000 n 
0000001260 00000 n 
trailer
<</ID [<36613663383332633536383565333731> <62306330656135306564363564633233> ] /Size 14 /Root 1 0 R >>
startxref
1358
%%EOF

最终文件可供下载:https://filetransfer.io/data-package/AqJUA8a1#link (该文件是相当空的概念,目前只有一个表单字段。)

如果您对此感兴趣,我正在通过我在工作中遇到的旧 PHP Zend PDF 库生成该 PDF 文件。

有人知道我的代码可能有什么问题吗?

pdf pdf-generation zend-pdf
1个回答
0
投票

上面的代码有一个错误,缺少辅助注释行,初始化应该是:

%PDF-1.4
%âãÏÓ
1 0 ...

缺少的标头将抛出所有指令,并强制将 PDF 重新编译为带有缺少注释的二进制文件!

但这不是问题,也就是说,您正在调用注释来渲染两次。 Chrome 的困惑似乎是正确的。两个文件都有这个结构!

/Annots [5 0 R 5 0 R ]
© www.soinside.com 2019 - 2024. All rights reserved.