do not coding by yourself, there is an exist example.
plz see function com.radaee.reader.PDFTextAct.NewFields():
private void NewFields(int pageno)
{
Page page = m_doc.GetPage(pageno);
DocFont dfont = m_doc.NewFontCID("Times", 8);//embed in horizontal writing
ResFont rfont = page.AddResFont(dfont);
PageContent content = new PageContent();
content.Create();
content.SetFillColor(0);
page.ObjsStart();
float rect[] = new float[4];
float font_size = 20;
float box_size = 20;
float text_gap = 5;
//2 radiobox for male/female.
rect[0] = 20;
rect[1] = 630;
rect[2] = rect[0] + box_size;
rect[3] = rect[1] + box_size;
content.TextBegin();
content.TextSetFont(rfont, font_size);
content.TextMove(rect[0] + box_size + text_gap, rect[1] + font_size * 0.15f);
content.DrawText("Male");
content.TextEnd();
page.AddFieldRadio(rect, "radsex", "Male", null, null);
rect[0] = 100;
rect[1] = 630;
rect[2] = rect[0] + box_size;
rect[3] = rect[1] + box_size;
content.TextBegin();
content.TextSetFont(rfont, font_size);
content.TextMove(rect[0] + box_size + text_gap, rect[1] + font_size * 0.15f);
content.DrawText("Female");
content.TextEnd();
page.AddFieldRadio(rect, "radsex", "Female", null, null);
//checkbox for married.
rect[0] = 20;
rect[1] = 600;
rect[2] = rect[0] + box_size;
rect[3] = rect[1] + box_size;
content.TextBegin();
content.TextSetFont(rfont, font_size);
content.TextMove(rect[0] + box_size + text_gap, rect[1] + font_size * 0.15f);
content.DrawText("Is married?");
content.TextEnd();
page.AddFieldCheck(rect, "chk1", "Married", null, null);
//checkbox for parents.
rect[0] = 20;
rect[1] = 570;
rect[2] = rect[0] + box_size;
rect[3] = rect[1] + box_size;
content.TextBegin();
content.TextSetFont(rfont, font_size);
content.TextMove(rect[0] + box_size + text_gap, rect[1] + font_size * 0.15f);
content.DrawText("Has children?");
content.TextEnd();
page.AddFieldCheck(rect, "chk2", "Children", null, null);
//input textbox.
rect[0] = 20;
rect[1] = 540;
rect[2] = rect[0] + 200;
rect[3] = rect[1] + box_size;
content.TextBegin();
content.TextSetFont(rfont, font_size);
content.TextMove(rect[0], rect[1] + font_size * 0.15f);
content.DrawText("Address:");
content.TextEnd();
float tsize[] = content.TextGetSize(rfont, "Address:", font_size, font_size, 0, 0);
rect[0] += tsize[0] + text_gap;
rect[2] = rect[0] + 200;
page.AddFieldEditbox(rect, "txt1", false, false);
//combo-box.
rect[0] = 20;
rect[1] = 510;
rect[2] = rect[0] + 200;
rect[3] = rect[1] + box_size;
content.TextBegin();
content.TextSetFont(rfont, font_size);
content.TextMove(rect[0], rect[1] + font_size * 0.15f);
content.DrawText("Country:");
content.TextEnd();
tsize = content.TextGetSize(rfont, "Country:", font_size, font_size, 0, 0);
rect[0] += tsize[0] + text_gap;
rect[2] = rect[0] + 100;
page.AddFieldCombo(rect, "Country", new String[]{"England", "Italy", "American", "Japan"});
page.AddContent(content, true);
content.Destroy();
page.Close();
}
the label using page content to display texts.