我正在尝试创建复选框,并尝试使用以下代码使用itext
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.GrayColor;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfFormField;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.RadioCheckField;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
public class RadioGroupMultiPage1
{
public static final String DEST = "C:\\CheckBox.pdf";
/** Possible values of a Choice field. */
public static final String[] LANGUAGES = {"English", "German", "French", "Spanish", "Dutch"};
public static void main(String[] args) throws DocumentException, IOException
{
File file = new File(DEST);
file.getParentFile().mkdirs();
new RadioGroupMultiPage1().createPdf(DEST);
}
public void createPdf(String dest) throws IOException, DocumentException
{
// step 1
Document document = new Document();
// step 2
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(dest));
// step 3
document.open();
// step 4
PdfContentByte cb = writer.getDirectContent();
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);
// add the content
for (int i = 0; i < LANGUAGES.length; i++)
{
cb.beginText();
cb.setFontAndSize(bf, 18);
cb.showTextAligned(Element.ALIGN_LEFT, LANGUAGES[i], 70, 790, 0);
cb.endText();
document.newPage();
}
// step 5
document.close();
}
}
但它只创建了文本,我甚至没有看到复选框,或者它没有创建。