Создание поля подписи в документах PDF - PullRequest
0 голосов
/ 08 мая 2019

Мне нужно создать PDF-файл, в котором я использую PDFmake для достижения этой цели. Но PDFmake не имеет возможности добавлять поле подписи в документ.

Итак, я открыл образец PDF с полем подписи и скопировал объект, который содержал имя поля подписи:

2 0 obj
<</F 4/Type/Annot/Subtype/Widget/Rect[294 465 470 420]/FT/Sig/DA(/Helv 0 Tf 0 g)/T(Signature2)/P 2 0 R>>
endobj

Когда я вставляю его в новый документ, он показывает Rect, но как только я нажимаю на него, появляется ошибка «Документ не может быть подписан». (грубый перевод), пока щелчок мышью на поле для подписи в файле примера PDF запускает процесс подписания.

Теперь мой вопрос: что мне не хватает в новом Документе?

1 Ответ

0 голосов
/ 08 мая 2019
2 0 obj
<</F 4/Type/Annot/Subtype/Widget/Rect[294 465 470 420]/FT/Sig/DA(/Helv 0 Tf 0 g)/T(Signature2)/P 2 0 R>>
endobj

Последняя запись /P 2 0 R не подходит: значение P должно быть косвенной ссылкой на объект страницы, с которым связана эта аннотация. Но, очевидно,сам объект поля является объектом 2 0, очевидно , а не объектом страницы.

Таким образом, измените значение P , чтобы оно указывало на рассматриваемый объект страницы.Или вообще удалите его, для аннотаций виджета поля формы это необязательно.

Другие детали, которые вы, возможно, еще не рассмотрели:

  • Поле не имеет Родитель запись.Таким образом, это корневое поле.Следовательно, его необходимо добавить в массив Fields в словаре AcroForm .
  • Поле объединено с его аннотацией виджета.В качестве аннотации виджета на него следует ссылаться из массива Annots его страницы.
  • Поле с именем "Signature2".Поэтому убедитесь, что в вашем PDF-файле нет другого поля формы с таким именем.

Вы говорите о копировании и вставке объектов PDF между документами.Если вы случайно хотите скопировать и вставить текстовые редакторы, будьте предельно осторожны!Убедитесь, что ваш редактор может справиться с произвольным содержимым файла (даже нетекстовым) и не повредить их.И, безусловно, обновите таблицы перекрестных ссылок или потоки, чтобы они соответствовали изменениям смещения, внесенным вашим редактированием.

...