【发布时间】:2014-07-27 23:16:32
【问题描述】:
长话短说;我想仅使用文本编辑器从 pdf 表单中编辑只读字段。我已经成功了,但我想了解为什么在某些情况下它不起作用...
我注意到,如果我有原始文档的 PDF 1.5 版本(没有字段,由 word 2010 保存为 pdf)并使用 Acrobat Pro XI 添加字段,请使用另存为其他... ->优化 PDF 并使其与 Acrobat 6.0 兼容。我的字段在文本编辑器(记事本++)中将如下所示:
<</AP<</N 28 0 R>>/DA(/Helv 12 Tf 0 g)/DV(mytextfield)/F 4/FT/Tx/Ff 1/MK<<>>/P 3 0
R/Rect[99.4934 686.99 249.493 708.99]/Subtype/Widget/T(%mytextfield)/Type/Annot/V(mytextfield)>>
endobj
28 0 obj
<</BBox[0.0 0.0 150.0 22.0]/FormType 1/Length 88/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</Font<</Helv 20 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream
/Tx BMC
q
1 1 148 20 re
W
n
BT
/Helv 12 Tf
0 g
2 6.548 Td
(mytextfield) Tj
这很容易修改,因为每次看到“mytextfield”时,它就是我的字段的内容,而在你看到“%mytextfield”的地方,它就是我的字段的名称。
另一方面,如果我使用我的 PDF 1.5(由 word 2010 保存)而不是使用 acrobat pro XI 进行优化保存(添加字段后),我通常保存它(另存为),我得到一个 PDF 1.6 带有以下内容(在记事本++中):
<</AcroForm 25 0 R/Lang(fr-CH)/MarkInfo<</Marked true>>/Metadata 3 0 R/Pages 15 0 R/StructTreeRoot 8 0 R/Type/Catalog>>
endobj
19 0 obj
<</Annots 26 0 R/Contents 22 0 R/CropBox[0 0 595.32 841.92]/Group<</CS/DeviceRGB/S/Transparency/Type/Group>>/MediaBox[0 0 595.32 841.92]/Parent 15 0 R/Resources<</ExtGState<</GS0 30 0 R>>/Font<</TT0 33 0 R>>/ProcSet[/PDF/Text]>>/Rotate 0/StructParents 0/Tabs/S/Type/Page>>
endobj
20 0 obj
<</BBox[0.0 0.0 150.0 22.0]/FormType 1/Length 85/Matrix[1.0 0.0 0.0 1.0 0.0 0.0]/Resources<</Font<</Helv 28 0 R>>/ProcSet[/PDF/Text]>>/Subtype/Form/Type/XObject>>stream
/Tx BMC
q
1 1 148 20 re
W
n
BT
/Helv 12 Tf
0 g
2 6.548 Td
(mytextfield) Tj
这不是编辑字段的简单格式(如果我更改 mytextfield,我会得到一个损坏的文档!)。现在,如果当我在 acrobat pro 中打开这个 PDF 1.6 并使用上面提到的优化 PDF 技巧保存它时,该字段将转换为第一个,那就太好了;但事实并非如此!相反,我得到了完全相同的字段格式。
所以我的问题如下:
- 有没有办法确保使用 Acrobat Pro 或任何其他程序将我的 pdf 表单(无论原始 PDF 版本是哪个 PDF 版本)转换为正确的格式(易于编辑的字段)?
- 有没有办法轻松编辑 PDF 1.6 字段?
【问题讨论】:
-
在编辑字段内容的过程中,是否确保不更改字段内容的大小?如果你不这样做,你会相应地更新交叉引用吗?如果不这样做,您肯定会创建无效文档。
-
你是在说我的第二个问题吗?如果是,我尝试更改 bbox 标签中的长度,但没有帮助。我还尝试保持相同的文本长度,但没有成功。请注意,在 1.5 版中,我什至不需要更改长度! PS 什么是交叉引用?
-
不,我说的是一般的编辑。 PDF 文件有一个交叉引用表(或流),指示每个间接对象的相应偏移量(每个 nnn 0 obj...endobj)。如果在编辑过程中您用更长或更短的东西替换了某些东西,那么您会破坏这些交叉引用。顺便说一句,您如何测试您的编辑是否正常?希望不仅仅是在 PDF 查看器中打开文件。 PDF 查看器经常即时修复 PDF...
-
是的,通过查看查看器(阅读器):o) 好的,我应该怎么做?我理解交叉引用的东西,但有没有解释这个的文件?或者你能告诉我一步一步怎么做吗?谢谢!
-
基本上在文本编辑器中手动编辑 PDF 是一种可靠的方法。因此,我的建议是不要这样做。如果您仍想尝试,您将找到文档here。