#angular #laravel #jspdf
#угловой #ларавель #jspdf
Вопрос:
Я пытаюсь сгенерировать PDF-файл с помощью JSPDF и html2canvas в Angular и отправить его в Laravel для хранения в базе данных
в Angular у меня есть форма, в которой я могу вводить данные пользователя, и в режиме реального времени я использую двустороннюю привязку данных для заполнения pdf данными, которые я ввожу в тот же момент, и после отправки формы я собираю данные с помощью реактивной формы с именем createUserForm, преобразую DIV в PDF и добавляю его с помощью нового FormControl в форму и вызываю службу для отправки данных формы в Laravel API
угловой код
createUserForm: FormGroup = new FormGroup({ 'name': new FormControl(null, [Validators.required, Validators.minLength(3), Validators.maxLength(100)]), 'gender': new FormControl(null, [Validators.required]), 'date_of_birth': new FormControl(null, [Validators.required]), 'identity': new FormControl(null, [Validators.required, Validators.minLength(14), Validators.maxLength(14)]), 'test': new FormControl(null, [Validators.required, Validators.minLength(3), Validators.maxLength(100)]), 'result': new FormControl(null, [Validators.required]), 'register_date': new FormControl(null, [Validators.required]), 'result_date': new FormControl(null, [Validators.required]), 'branch': new FormControl(null, [Validators.required, Validators.minLength(3), Validators.maxLength(100)]), 'reference_range': new FormControl(null, [Validators.required]), 'lab_director': new FormControl(null, [Validators.required, Validators.minLength(3), Validators.maxLength(100)]), 'qr_url': new FormControl(this.qrCode) }); getFormData(formData: any) { if (formData.valid == true) { let data = document.getElementById('pdf')!; html2canvas(data).then(canvas =gt; { let docWidth = 208; let docHeight = canvas.height * docWidth / canvas.width; const contentDataURL = canvas.toDataURL('image/png') let doc = new jsPDF('p', 'mm', 'a4'); let position = 0; doc.addImage(contentDataURL, 'PNG', 0, position, docWidth, docHeight) let blob = doc.output('blob'); formData.addControl('report', new FormControl(blob, Validators.required)); }); } }
Когда я отправляю форму, Laravel возвращает ошибку «требуется поле отчета» и не видит большой двоичный объект