itext - pdf复选框填充不同

问题描述 投票:2回答:1

我有一个pdf fillbale表单,里面有一个复选框。如果我使用acrobat阅读器,复选框就像这样填充

但是,如果我使用itext 5.5.13,复选框将填充如下所示。

复选框填充的方式在acrobat和itext之间是不同的。有没有办法让itext填充类似于acrobat的复选框并使其变为粗体。

我正在使用以下代码填充复选框。

PdfReader reader = new PdfReader(src);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
AcroFields form = stamper.getAcroFields();

form.setField("cb1", "Yes");

stamper.setFormFlattening(true);
stamper.close();

谢谢。

pdf checkbox itext pdf-generation
1个回答
1
投票

您可以使用/ AP键更改复选框的外观。对于复选框,您将在正常外观(/ N)下找到两种外观状态(开,关)。这些XObject定义了在呈现PDF时看到的内容。所以如果你想改变它,你必须定义自己的外观。看看下面的class,特别是在getAppearance()方法。创建后,您可以使用以下代码进行设置:

PdfAppearance tpon = getAppearance(isRadio, true);
PdfAppearance tpoff = getAppearance(isRadio, false);
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, onValue, tpon);
field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpoff);
field.setAppearanceState(checked ? onValue : "Off");
© www.soinside.com 2019 - 2024. All rights reserved.