List of usage examples for com.lowagie.text.pdf PdfFormField setFieldFlags
public int setFieldFlags(int flags)
From source file:at.reppeitsolutions.formbuilder.components.pdf.itext.ITextCheckbox.java
License:Open Source License
@Override public void cellLayout(PdfPCell cell, Rectangle rectangle, PdfContentByte[] canvases) { PdfWriter writer = canvases[0].getPdfWriter(); PdfAppearance[] onOff = new PdfAppearance[2]; onOff[0] = canvases[0].createAppearance(20, 20); onOff[0].rectangle(1, 1, 18, 18);//from ww w . ja v a 2s .co m onOff[0].stroke(); onOff[1] = canvases[0].createAppearance(20, 20); onOff[1].setRGBColorFill(255, 128, 128); onOff[1].rectangle(1, 1, 18, 18); onOff[1].fillStroke(); onOff[1].moveTo(1, 1); onOff[1].lineTo(19, 19); onOff[1].moveTo(1, 19); onOff[1].lineTo(19, 1); onOff[1].stroke(); RadioCheckField checkbox; Font f = new Font(); f.setSize(ITextInputText.FONTSIZE); for (int i = 0; i < values.length; i++) { try { Rectangle rect = ITextRadio.getBoxRectangle(rectangle, i); checkbox = new RadioCheckField(writer, rect, UUID.randomUUID().toString(), "Yes"); boolean checked = false; if (selectedValues != null) { for (int i2 = 0; i2 < selectedValues.length; i2++) { if (values[i].equals(selectedValues[i2])) { checked = true; break; } } } checkbox.setChecked(checked); PdfFormField field = checkbox.getCheckField(); field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff[0]); field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Yes", onOff[1]); if (locked) { field.setFieldFlags(BaseField.READ_ONLY); } writer.addAnnotation(field); ITextRadio.addBoxDescription(rectangle, i, values, canvases); } catch (IOException ex) { Logger.getLogger(ITextCheckbox.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(ITextCheckbox.class.getName()).log(Level.SEVERE, null, ex); } } }
From source file:at.reppeitsolutions.formbuilder.components.pdf.itext.ITextInputText.java
License:Open Source License
@Override public void cellLayout(PdfPCell cell, Rectangle rectangle, PdfContentByte[] canvases) { PdfWriter writer = canvases[0].getPdfWriter(); TextField text = new TextField(writer, rectangle, String.format("text_" + UUID.randomUUID().toString())); text.setBorderStyle(PdfBorderDictionary.STYLE_INSET); text.setText(value);/*from ww w . j av a 2s . c o m*/ text.setFontSize(FONTSIZE); text.setAlignment(Element.ALIGN_LEFT); try { PdfFormField field = text.getTextField(); if (locked) { field.setFieldFlags(BaseField.READ_ONLY); } writer.addAnnotation(field); } catch (IOException ioe) { throw new ExceptionConverter(ioe); } catch (DocumentException de) { throw new ExceptionConverter(de); } }
From source file:at.reppeitsolutions.formbuilder.components.pdf.itext.ITextListbox.java
License:Open Source License
@Override public void cellLayout(PdfPCell cell, Rectangle rectangle, PdfContentByte[] canvases) { PdfWriter writer = canvases[0].getPdfWriter(); TextField text = new TextField(writer, rectangle, String.format("choice_" + UUID.randomUUID().toString())); text.setBorderStyle(PdfBorderDictionary.STYLE_INSET); text.setFontSize(ITextInputText.FONTSIZE); text.setOptions(TextField.MULTISELECT); text.setChoices(values);/*from w ww . jav a 2 s. c om*/ ArrayList<Integer> choiceSelections = new ArrayList<>(); if (selectedValues != null) { for (int i = 0; i < values.length; i++) { for (int i2 = 0; i2 < selectedValues.length; i2++) { if (values[i].equals(selectedValues[i2])) { choiceSelections.add(i); break; } } } } text.setChoiceSelections(choiceSelections); try { PdfFormField listField = text.getListField(); if (locked) { listField.setFieldFlags(BaseField.READ_ONLY); } writer.addAnnotation(listField); } catch (IOException ex) { Logger.getLogger(ITextListbox.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(ITextListbox.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:at.reppeitsolutions.formbuilder.components.pdf.itext.ITextRadio.java
License:Open Source License
@Override public void cellLayout(PdfPCell cell, Rectangle rectangle, PdfContentByte[] canvases) { PdfWriter writer = canvases[0].getPdfWriter(); PdfFormField radiogroup = PdfFormField.createRadioButton(writer, true); radiogroup.setFieldName(UUID.randomUUID().toString()); if (locked) { radiogroup.setFieldFlags(BaseField.READ_ONLY); }//w ww . j a va 2s. c o m RadioCheckField radio; for (int i = 0; i < values.length; i++) { try { Rectangle rect = getBoxRectangle(rectangle, i); radio = new RadioCheckField(writer, rect, null, UUID.randomUUID().toString()); radio.setBorderColor(GrayColor.GRAYBLACK); radio.setBackgroundColor(GrayColor.GRAYWHITE); radio.setCheckType(RadioCheckField.TYPE_CIRCLE); if (value != null && values[i].equals(value)) { radio.setChecked(true); } PdfFormField field = radio.getRadioField(); radiogroup.addKid(field); addBoxDescription(rectangle, i, values, canvases); } catch (IOException ex) { Logger.getLogger(ITextRadio.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(ITextRadio.class.getName()).log(Level.SEVERE, null, ex); } } writer.addAnnotation(radiogroup); }
From source file:at.reppeitsolutions.formbuilder.components.pdf.itext.ITextSelect.java
License:Open Source License
@Override public void cellLayout(PdfPCell cell, Rectangle rectangle, PdfContentByte[] canvases) { PdfWriter writer = canvases[0].getPdfWriter(); TextField text = new TextField(writer, rectangle, String.format("choice_" + UUID.randomUUID().toString())); text.setBorderStyle(PdfBorderDictionary.STYLE_INSET); text.setChoices(values);/*from ww w .j av a 2 s.c o m*/ text.setFontSize(ITextInputText.FONTSIZE); text.setChoiceExports(text.getChoices()); for (int i = 0; value != null && i < values.length; i++) { if (values[i].equals(value)) { text.setChoiceSelection(i); break; } } try { PdfFormField comboField = text.getComboField(); if (locked) { comboField.setFieldFlags(BaseField.READ_ONLY); } writer.addAnnotation(comboField); } catch (IOException ex) { Logger.getLogger(ITextSelect.class.getName()).log(Level.SEVERE, null, ex); } catch (DocumentException ex) { Logger.getLogger(ITextSelect.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:org.xhtmlrenderer.pdf.CheckboxFormField.java
License:Open Source License
public void paint(RenderingContext c, ITextOutputDevice outputDevice, BlockBox box) { PdfContentByte cb = outputDevice.getCurrentPage(); PdfWriter writer = outputDevice.getWriter(); Element elm = box.getElement(); Rectangle targetArea = outputDevice.createLocalTargetArea(c, box); String onValue = getValue(elm); RadioCheckField field = new RadioCheckField(writer, targetArea, getFieldName(outputDevice, elm), onValue); field.setChecked(isChecked(elm));//from w w w . j a v a 2 s.c om field.setCheckType(RadioCheckField.TYPE_CHECK); field.setBorderStyle(PdfBorderDictionary.STYLE_SOLID); //TODO Consider if we can get some more correct color field.setBorderColor(Color.black); field.setBorderWidth(BaseField.BORDER_WIDTH_THIN); try { PdfFormField formField = field.getCheckField(); if (isReadOnly(elm)) { formField.setFieldFlags(PdfFormField.FF_READ_ONLY); } writer.addAnnotation(formField); } catch (IOException ioe) { System.out.println(ioe); } catch (DocumentException de) { System.out.println(de); } }
From source file:org.xhtmlrenderer.pdf.RadioButtonFormField.java
License:Open Source License
private void createField(RenderingContext c, ITextOutputDevice outputDevice, PdfContentByte cb, PdfWriter writer, PdfFormField group, RadioButtonFormField fieldElem, RadioButtonFormField checked) { Box box = fieldElem.getBox(); Element e = box.getElement(); String onValue = getValue(e); float width = outputDevice.getDeviceLength(fieldElem.getWidth()); float height = outputDevice.getDeviceLength(fieldElem.getHeight()); PdfFormField field = PdfFormField.createEmpty(writer); FSColor color = box.getStyle().getColor(); FSColor darker = box.getEffBackgroundColor(c).darkenColor(); createAppearances(cb, field, onValue, width, height, true, color, darker); createAppearances(cb, field, onValue, width, height, false, color, darker); field.setWidget(outputDevice.createTargetArea(c, box), PdfAnnotation.HIGHLIGHT_INVERT); // XXX createTargetArea already looks up the page, but hopefully a document // won't have enough radio buttons to matter Rectangle bounds = box.getContentAreaEdge(box.getAbsX(), box.getAbsY(), c); PageBox page = c.getRootLayer().getPage(c, bounds.y); field.setPlaceInPage(page.getPageNo() + 1); field.setBorderStyle(new PdfBorderDictionary(0.0f, 0)); field.setAppearanceState(fieldElem == checked ? onValue : OFF_STATE); if (isReadOnly(e)) { field.setFieldFlags(PdfFormField.FF_READ_ONLY); }/*w w w. j a v a2s .c o m*/ group.addKid(field); }
From source file:org.xhtmlrenderer.pdf.SelectFormField.java
License:Open Source License
public void paint(RenderingContext c, ITextOutputDevice outputDevice, BlockBox box) { PdfWriter writer = outputDevice.getWriter(); String[][] options = getPDFOptions(); int selectedIndex = getSelectedIndex(); PdfFormField field; /*//from ww w . j av a 2 s . c o m * Comment out for now. We need to draw an appropriate appearance for * this to work correctly. */ /* if (isMultiple(box.getElement())) { field = PdfFormField.createList(writer, options, selectedIndex); } else { field = PdfFormField.createCombo(writer, false, options, selectedIndex); } */ field = PdfFormField.createCombo(writer, false, options, selectedIndex); field.setWidget(outputDevice.createLocalTargetArea(c, box), PdfAnnotation.HIGHLIGHT_INVERT); field.setFieldName(getFieldName(outputDevice, box.getElement())); if (options.length > 0) { field.setValueAsString(options[selectedIndex][0]); } createAppearance(c, outputDevice, box, field); if (isReadOnly(box.getElement())) { field.setFieldFlags(PdfFormField.FF_READ_ONLY); } /* if (isMultiple(box.getElement())) { field.setFieldFlags(PdfFormField.FF_MULTISELECT); } */ writer.addAnnotation(field); }
From source file:org.xhtmlrenderer.pdf.TextFormField.java
License:Open Source License
public void paint(RenderingContext c, ITextOutputDevice outputDevice, BlockBox box) { PdfWriter writer = outputDevice.getWriter(); Element elem = box.getElement(); Rectangle targetArea = outputDevice.createLocalTargetArea(c, box); TextField field = new TextField(writer, targetArea, getFieldName(outputDevice, elem)); String value = getValue(elem); field.setText(value);// ww w. java2s .c o m try { PdfFormField formField = field.getTextField(); createAppearance(c, outputDevice, box, formField, value); //TODO add max length back in if (isReadOnly(elem)) { formField.setFieldFlags(PdfFormField.FF_READ_ONLY); } writer.addAnnotation(formField); } catch (IOException ioe) { System.out.println(ioe); } catch (DocumentException de) { System.out.println(de); } }
From source file:questions.forms.MultipleChoice.java
public static void createPdf() throws IOException, DocumentException { // step 1//from w w w .j av a 2 s. c o m Document document = new Document(); // step 2 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT)); // step 3 document.open(); // step 4 TextField field = new TextField(writer, new Rectangle(36, 750, 144, 806), "iText"); field.setFontSize(9); String[] list_options = { "JAVA", "C", "CS", "VB", "PHP" }; field.setChoiceExports(list_options); String[] list_values = { "Java", "C/C++", "C#", "VB", "PHP" }; field.setChoices(list_values); PdfFormField f = field.getListField(); f.setFieldFlags(PdfFormField.FF_MULTISELECT); f.put(PdfName.I, new PdfArray(new int[] { 0, 2 })); writer.addAnnotation(f); // step 5 document.close(); }