Заполнение формы PDF с использованием библиотеки javascript

#javascript #node.js #laravel #pdf #pdf-form

Вопрос:

Я создаю веб-приложение, в котором мне нужно динамически заполнять формы PDF. В конечном результате мне нужны редактируемые PDF-формы с динамически заданными значениями.

Я использовал PDFTK для заполнения PDF-форм на PHP, но я не могу запустить его на реальном сервере и не соответствует требованиям к редактируемому выводу PDF-формы. Вот почему я нахожу библиотеку JavaScript, чтобы я мог заполнять PDF-формы, оставаясь редактируемыми в формате PDF.

Комментарии:

1. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Это буквально свело меня с ума около 2 месяцев назад. Итак, в принципе, здесь есть 2 подхода:

  1. У вас есть серверная часть, на которую вы отправляете значения, и она заполняет PDF, загружает его куда-нибудь и отправляет вам ссылку. Или просто отправьте вам сам файл в виде большого двоичного объекта. (отказоустойчиво, если все другие решения терпят неудачу. По моему опыту, намного надежнее)
  2. То, что вы ищете — интерфейсное решение, которое будет принимать пользовательский ввод, заполните шаблон PDF, который вы подготовили заранее.

Я реализовал оба варианта, но поскольку вас больше интересует вариант 2, вот как я это сделал:

Я использовал этот пакет

https://github.com/phihag/pdfform.js/blob/master/README.md

Вместе с шаблоном формы PDF. Я заполнил ее, передав массив значений, которые соответствуют именам полей формы PRF!

Вот так:

 let filledPdf = pdfform().transform(arrayBuffer, {"field1Name":[field1Value],"field2Name" : [field2Value]  })
                const blob = new Blob([filledPdf], {type: "application/pdf"});

            setBlobContents(blob);

            pdfFile = blob;

            setBlobLink(URL.createObjectURL(blob))
 

Это должно быть прямолинейно, если вы посмотрите документацию по ссылке, которую я предоставил.