#javascript #node.js #laravel #pdf #pdf-form
Вопрос:
Я создаю веб-приложение, в котором мне нужно динамически заполнять формы PDF. В конечном результате мне нужны редактируемые PDF-формы с динамически заданными значениями.
Я использовал PDFTK для заполнения PDF-форм на PHP, но я не могу запустить его на реальном сервере и не соответствует требованиям к редактируемому выводу PDF-формы. Вот почему я нахожу библиотеку JavaScript, чтобы я мог заполнять PDF-формы, оставаясь редактируемыми в формате PDF.
Комментарии:
1. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
Ответ №1:
Это буквально свело меня с ума около 2 месяцев назад. Итак, в принципе, здесь есть 2 подхода:
- У вас есть серверная часть, на которую вы отправляете значения, и она заполняет PDF, загружает его куда-нибудь и отправляет вам ссылку. Или просто отправьте вам сам файл в виде большого двоичного объекта. (отказоустойчиво, если все другие решения терпят неудачу. По моему опыту, намного надежнее)
- То, что вы ищете — интерфейсное решение, которое будет принимать пользовательский ввод, заполните шаблон 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))
Это должно быть прямолинейно, если вы посмотрите документацию по ссылке, которую я предоставил.