itextpdf将带复选框的html_始终选中Itext复选框

I am using Itext to create a pdf and I cannot get the checkbox to uncheck. Here is my code:

RadioCheckField bt = new RadioCheckField(writer, new Rectangle(300, 300, 400, 400),

"check1", "Yes");

bt.setCheckType(RadioCheckField.TYPE_CHECK);

bt.setBorderWidth(BaseField.BORDER_WIDTH_THICK);

bt.setBorderColor(BaseColor.BLACK);

bt.setBackgroundColor(BaseColor.WHITE);

bt.setChecked(false);

PdfFormField ck = bt.getCheckField();

writer.addAnnotation(ck);

You can see that the bt.setChecked(false) is in the code, but the checkbox is still checked. I looked at the docs and it seems to me that it is supposed to work this way. What do I not understand?

解决方案

Try the following way, for me it is working:

public void addRadioGroup() throws Exception{

if(!this.doc.isOpen()){

this.doc.open();

}

PdfFormField radioGroup = PdfFormField.createRadioButton(this.writer, false);

radioGroup.setFieldName("numbers");

for(int i=0;i<3;i++){

Rectangle rect = new Rectangle(130+(40*i), 430, 160+(40*i), 455);

this.addRadioButtonKid(radioGroup, rect,String.valueOf(i));

}

this.writer.addAnnotation(radioGroup);

}

private void addRadioButtonKid(PdfFormField radio, Rectangle rect, String onValue) throws Exception{

RadioCheckField bt = new RadioCheckField(this.writer, rect, null, onValue);

bt.setBorderWidth(BaseField.BORDER_WIDTH_THICK);

bt.setBorderColor(Color.BLACK);

bt.setBackgroundColor(Color.WHITE);

bt.setCheckType(RadioCheckField.TYPE_CROSS);

bt.setChecked(false);

PdfFormField ck = bt.getCheckField();

ck.setPlaceInPage(1);

radio.addKid(ck);

}

The only problem I had was that the default "check style" wasn't changed. A user reported this problem back in 2011 on the mailinglist in 2011. If you need another style patch iText for yourself or use the workaround described by Mark.

Update: After 2 years they seem to have fixed the problem in the latest iText version 5.4.3 (cp. the change of Michaël Demey)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值