今天我在 Checkbox 上遇到了类似的问题。我也看到了java.lang.NullPointerException
错误。经过调查,我发现这是因为我的可填充复选框使用自定义字形图标('X')作为复选标记而不是默认样式。
因此,在阅读此答案https://stackoverflow.com/a/29034948/11898471后,它通过摆脱我的自定义复选框字形图标来锻炼身体。在没有看到您的代码的情况下,我不知道您是如何按照自己的方式进行操作的,但我的情况是使用自定义复选框来展平客户上传的 PDF 表单。我所做的是提取所有表单数据并重新填写表单,以便他们摆脱所有自定义复选框标记。就像是:
$pdf = new Pdf($uploadedFile->getRealPath(), ['command' => env('PDFTK_PATH')]);
/* Extract form field to remove custom markup field that cannot be filled. Eg: custom checkbox icon */
$pdf2 = new Pdf($uploadedFile->getRealPath(), ['command' => env('PDFTK_PATH')]);
$data = $pdf2->getDataFields();
$data = (array) $data;
$fill_data = [];
foreach ($data as $field) {
if (isset($field['FieldValue'])) {
$fill_data[$field['FieldName']] = $field['FieldValue'];
}
}
/* Update form field */
$pdf->fillForm($fill_data)
->flatten()
->saveAs(storage_path('app/'.$flattenedFilename));