itext - pdf复选框填充不同

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了itext - pdf复选框填充不同相关的知识,希望对你有一定的参考价值。

我有一个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();

谢谢。

答案

您可以使用/ 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");

以上是关于itext - pdf复选框填充不同的主要内容,如果未能解决你的问题,请参考以下文章

iText7高级教程之html2pdf——2.使用CSS定义样式

iText7高级教程之html2pdf——2.使用CSS定义样式

使用itext7简单的生成一个pdf,创建一个pdf模板并进行填充

iText7高级教程之html2pdf——2.使用CSS定义样式

java itext pdf 怎样将复选框打上对号

如何使用 iText7 检测 PDF 中的 fontawesome 图标