Java 如何使用iText制作交互式表单PDF?

Java 如何使用iText制作交互式表单PDF?,java,itext,Java,Itext,任何人都可以告诉如何开发一个应用程序PDF格式包含文本框,复选框和单选按钮。我们要求pdf具有不同的表单字段,以便使用iTextJavaAPI开发 任何人都可以告诉我如何开发一个包含文本框的PDF表单 参考iText原作者的样本 例如 复选框和 ,例如 RadioCheckField复选框; for(int i=0;i

任何人都可以告诉如何开发一个应用程序PDF格式包含文本框,复选框和单选按钮。我们要求pdf具有不同的表单字段,以便使用iTextJavaAPI开发

任何人都可以告诉我如何开发一个包含文本框的PDF表单

参考iText原作者的样本

例如

复选框和

,例如

RadioCheckField复选框;
for(int i=0;i
单选按钮

,例如

BaseFont bf=BaseFont.createFont(BaseFont.HELVETICA、BaseFont.WINANSI、BaseFont.NOT_EMBEDDED);
//创建一个跨越不同页面的无线字段
PdfFormField-radiogroup=PdfFormField.createRadioButton(writer,true);
radiogroup.setFieldName(“语言”);
矩形rect=新矩形(40806,60788);
无线电检查现场无线电;
PdfFormField射野;
对于(int page=0;page
当然,请查看完整的示例源代码,以便将其放到上下文中。如果可能的话,读这本书来了解你在做什么

任何人都可以告诉我如何开发一个包含文本框的PDF表单

参考iText原作者的样本

例如

复选框和

,例如

RadioCheckField复选框;
for(int i=0;i
单选按钮

,例如

BaseFont bf=BaseFont.createFont(BaseFont.HELVETICA、BaseFont.WINANSI、BaseFont.NOT_EMBEDDED);
//创建一个跨越不同页面的无线字段
PdfFormField-radiogroup=PdfFormField.createRadioButton(writer,true);
radiogroup.setFieldName(“语言”);
矩形rect=新矩形(40806,60788);
无线电检查现场无线电;
PdfFormField射野;
对于(int page=0;page
当然,请查看完整的示例源代码,以便将其放到上下文中。如果可能的话,读这本书来了解你在做什么

任何人都可以告诉我如何开发一个包含文本框的PDF表单

参考iText原作者的样本

例如

复选框和

,例如

RadioCheckField复选框;
for(int i=0;i
单选按钮

,例如

BaseFont bf=BaseFont.createFont(BaseFont.HELVETICA、BaseFont.WINANSI、BaseFont.NOT_EMBEDDED);
//创建一个跨越不同页面的无线字段
PdfFormField-radiogroup=PdfFormField.createRadioButton(writer,true);
radiogroup.setFieldName(“语言”);
矩形rect=新矩形(40806,60788);
无线电检查现场无线电;
PdfFormField射野;
对于(int page=0;page
当然,请查看完整的示例源代码,以便将其放到上下文中。如果可能的话,读这本书来了解你在做什么

任何人都可以告诉我如何开发一个包含文本框的PDF表单

参考iText原作者的样本

例如

复选框和

,例如

RadioCheckField复选框;
for(int i=0;i    TextField text = new TextField(writer, rectangle,
            String.format("text_%s", tf));
    text.setBackgroundColor(new GrayColor(0.75f));
    switch(tf) {
    case 1:
        text.setBorderStyle(PdfBorderDictionary.STYLE_BEVELED);
        text.setText("Enter your name here...");
        text.setFontSize(0);
        text.setAlignment(Element.ALIGN_CENTER);
        text.setOptions(TextField.REQUIRED);
        break;
    case ...:
        ...
    }
    try {
        PdfFormField field = text.getTextField();
        ...
        writer.addAnnotation(field);
    }
    catch(IOException ioe) {
        throw new ExceptionConverter(ioe);
    }
    catch(DocumentException de) {
        throw new ExceptionConverter(de);
    }
    RadioCheckField checkbox;
    for (int i = 0; i < LANGUAGES.length; i++) {
        rect = new Rectangle(180, 806 - i * 40, 200, 788 - i * 40);
        checkbox = new RadioCheckField(writer, rect, LANGUAGES[i], "Yes");
        field = checkbox.getCheckField();
        field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff[0]);
        field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Yes", onOff[1]);
        writer.addAnnotation(field);
        ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT,
            new Phrase(LANGUAGES[i], font), 210, 790 - i * 40, 0);
    }
    BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
    // create a radio field spanning different pages
    PdfFormField radiogroup = PdfFormField.createRadioButton(writer, true);
    radiogroup.setFieldName("language");
    Rectangle rect = new Rectangle(40, 806, 60, 788);
    RadioCheckField radio;
    PdfFormField radiofield;
    for (int page = 0; page < LANGUAGES.length; ) {
        radio = new RadioCheckField(writer, rect, null, LANGUAGES[page]);
        radio.setBackgroundColor(new GrayColor(0.8f));
        radiofield = radio.getRadioField();
        radiofield.setPlaceInPage(++page);
        radiogroup.addKid(radiofield);
    }
    writer.addAnnotation(radiogroup);