【发布时间】:2019-07-31 23:59:44
【问题描述】:
[EDIT]我来这里是想问是否有人可以帮助我...
使用 Itext 7,我无法理解如何设置“字段梳”?
PdfWriter writer = new PdfWriter(out);
InputStream stream = ((ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext()).getResourceAsStream("/resources/pdf/test.pdf");
PdfDocument pdf = new PdfDocument(new PdfReader(stream), writer);
PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
Map<String, PdfFormField> fields = form.getFormFields();
PdfFormField field = fields.get("ENTREPRISE");
if(field instanceof PdfTextFormField){
((PdfTextFormField) field).setMaxLen(30);
((PdfTextFormField) field).setComb(true);
((PdfTextFormField) field).setMultiline(false);
((PdfTextFormField) field).setPassword(false);
((PdfTextFormField) field).setFileSelect(false);
field.setValue(vo.getNomEntreprise());
}
这就是我关闭它的方式:
form.setNeedApparences(true)
//form.flattenFields();
pdf.close();
InputStream streamFinal = new ByteArrayInputStream(out.toByteArray());
vo.setFile(new DefaultStreamedContent(streamFinal, "application/pdf", "result.pdf"));
奇怪的是生成的表单(带有展平字段),一切都很完美,但如果我将 form#flattendfields 设置为 true,字段中的文本将显示为简单字符串且没有梳...
【问题讨论】: