com.itextpdf.text.pdf
Class PushbuttonField

java.lang.Object
  extended by com.itextpdf.text.pdf.BaseField
      extended by com.itextpdf.text.pdf.PushbuttonField

public class PushbuttonField
extends BaseField

Creates a pushbutton field. It supports all the text and icon alignments. The icon may be an image or a template.

Example usage:

 Document document = new Document(PageSize.A4, 50, 50, 50, 50);
 PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("output.pdf"));
 document.open();
 PdfContentByte cb = writer.getDirectContent();
 Image img = Image.getInstance("image.png");
 PushbuttonField bt = new PushbuttonField(writer, new Rectangle(100, 100, 200, 200), "Button1");
 bt.setText("My Caption");
 bt.setFontSize(0);
 bt.setImage(img);
 bt.setLayout(PushbuttonField.LAYOUT_ICON_TOP_LABEL_BOTTOM);
 bt.setBackgroundColor(Color.cyan);
 bt.setBorderStyle(PdfBorderDictionary.STYLE_SOLID);
 bt.setBorderColor(Color.red);
 bt.setBorderWidth(3);
 PdfFormField ff = bt.getField();
 PdfAction ac = PdfAction.createSubmitForm("http://www.submit-site.com", null, 0);
 ff.setAction(ac);
 writer.addAnnotation(ff);
 document.close();
 

Author:
Paulo Soares

Field Summary
private  boolean iconFitToBounds
          Holds value of property iconFitToBounds.
private  float iconHorizontalAdjustment
          Holds value of property iconHorizontalAdjustment.
private  PRIndirectReference iconReference
          Holds value of property iconReference.
private  float iconVerticalAdjustment
          Holds value of property iconVerticalAdjustment.
private  Image image
          Holds value of property image.
private  int layout
          Holds value of property layout.
static int LAYOUT_ICON_LEFT_LABEL_RIGHT
          A layout option
static int LAYOUT_ICON_ONLY
          A layout option
static int LAYOUT_ICON_TOP_LABEL_BOTTOM
          A layout option
static int LAYOUT_LABEL_LEFT_ICON_RIGHT
          A layout option
static int LAYOUT_LABEL_ONLY
          A layout option
static int LAYOUT_LABEL_OVER_ICON
          A layout option
static int LAYOUT_LABEL_TOP_ICON_BOTTOM
          A layout option
private  boolean proportionalIcon
          Holds value of property proportionalIcon.
static int SCALE_ICON_ALWAYS
          An icon scaling option
static int SCALE_ICON_IS_TOO_BIG
          An icon scaling option
static int SCALE_ICON_IS_TOO_SMALL
          An icon scaling option
static int SCALE_ICON_NEVER
          An icon scaling option
private  int scaleIcon
          Holds value of property scaleIcon.
private  PdfTemplate template
          Holds value of property template.
private  PdfTemplate tp
           
 
Fields inherited from class com.itextpdf.text.pdf.BaseField
alignment, backgroundColor, BORDER_WIDTH_MEDIUM, BORDER_WIDTH_THICK, BORDER_WIDTH_THIN, borderColor, borderStyle, borderWidth, box, COMB, DO_NOT_SCROLL, DO_NOT_SPELL_CHECK, EDIT, fieldName, FILE_SELECTION, font, fontSize, HIDDEN, HIDDEN_BUT_PRINTABLE, maxCharacterLength, MULTILINE, MULTISELECT, options, PASSWORD, READ_ONLY, REQUIRED, rotation, text, textColor, visibility, VISIBLE, VISIBLE_BUT_DOES_NOT_PRINT, writer
 
Constructor Summary
PushbuttonField(PdfWriter writer, Rectangle box, String fieldName)
          Creates a new instance of PushbuttonField
 
Method Summary
private  float calculateFontSize(float w, float h)
           
 PdfAppearance getAppearance()
          Gets the button appearance.
 PdfFormField getField()
          Gets the pushbutton field.
 float getIconHorizontalAdjustment()
          Getter for property iconHorizontalAdjustment.
 PRIndirectReference getIconReference()
          Gets the reference to an existing icon.
 float getIconVerticalAdjustment()
          Getter for property iconVerticalAdjustment.
 Image getImage()
          Getter for property image.
 int getLayout()
          Getter for property layout.
 int getScaleIcon()
          Getter for property scaleIcon.
 PdfTemplate getTemplate()
          Getter for property template.
 boolean isIconFitToBounds()
          Getter for property iconFitToBounds.
 boolean isProportionalIcon()
          Getter for property proportionalIcon.
 void setIconFitToBounds(boolean iconFitToBounds)
          If true the icon will be scaled to fit fully within the bounds of the annotation, if false the border width will be taken into account.
 void setIconHorizontalAdjustment(float iconHorizontalAdjustment)
          A number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon.
 void setIconReference(PRIndirectReference iconReference)
          Sets the reference to an existing icon.
 void setIconVerticalAdjustment(float iconVerticalAdjustment)
          A number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon.
 void setImage(Image image)
          Sets the icon as an image.
 void setLayout(int layout)
          Sets the icon and label layout.
 void setProportionalIcon(boolean proportionalIcon)
          Sets the way the icon is scaled.
 void setScaleIcon(int scaleIcon)
          Sets the way the icon will be scaled.
 void setTemplate(PdfTemplate template)
          Sets the icon as a template.
 
Methods inherited from class com.itextpdf.text.pdf.BaseField
breakLines, getAlignment, getBackgroundColor, getBorderAppearance, getBorderColor, getBorderStyle, getBorderWidth, getBox, getFieldName, getFont, getFontSize, getHardBreaks, getMaxCharacterLength, getOptions, getRealFont, getRotation, getText, getTextColor, getVisibility, getWriter, moveFields, setAlignment, setBackgroundColor, setBorderColor, setBorderStyle, setBorderWidth, setBox, setFieldName, setFont, setFontSize, setMaxCharacterLength, setOptions, setRotation, setRotationFromPage, setText, setTextColor, setVisibility, setWriter, trimRight
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LAYOUT_LABEL_ONLY

public static final int LAYOUT_LABEL_ONLY
A layout option

See Also:
Constant Field Values

LAYOUT_ICON_ONLY

public static final int LAYOUT_ICON_ONLY
A layout option

See Also:
Constant Field Values

LAYOUT_ICON_TOP_LABEL_BOTTOM

public static final int LAYOUT_ICON_TOP_LABEL_BOTTOM
A layout option

See Also:
Constant Field Values

LAYOUT_LABEL_TOP_ICON_BOTTOM

public static final int LAYOUT_LABEL_TOP_ICON_BOTTOM
A layout option

See Also:
Constant Field Values

LAYOUT_ICON_LEFT_LABEL_RIGHT

public static final int LAYOUT_ICON_LEFT_LABEL_RIGHT
A layout option

See Also:
Constant Field Values

LAYOUT_LABEL_LEFT_ICON_RIGHT

public static final int LAYOUT_LABEL_LEFT_ICON_RIGHT
A layout option

See Also:
Constant Field Values

LAYOUT_LABEL_OVER_ICON

public static final int LAYOUT_LABEL_OVER_ICON
A layout option

See Also:
Constant Field Values

SCALE_ICON_ALWAYS

public static final int SCALE_ICON_ALWAYS
An icon scaling option

See Also:
Constant Field Values

SCALE_ICON_NEVER

public static final int SCALE_ICON_NEVER
An icon scaling option

See Also:
Constant Field Values

SCALE_ICON_IS_TOO_BIG

public static final int SCALE_ICON_IS_TOO_BIG
An icon scaling option

See Also:
Constant Field Values

SCALE_ICON_IS_TOO_SMALL

public static final int SCALE_ICON_IS_TOO_SMALL
An icon scaling option

See Also:
Constant Field Values

layout

private int layout
Holds value of property layout.


image

private Image image
Holds value of property image.


template

private PdfTemplate template
Holds value of property template.


scaleIcon

private int scaleIcon
Holds value of property scaleIcon.


proportionalIcon

private boolean proportionalIcon
Holds value of property proportionalIcon.


iconVerticalAdjustment

private float iconVerticalAdjustment
Holds value of property iconVerticalAdjustment.


iconHorizontalAdjustment

private float iconHorizontalAdjustment
Holds value of property iconHorizontalAdjustment.


iconFitToBounds

private boolean iconFitToBounds
Holds value of property iconFitToBounds.


tp

private PdfTemplate tp

iconReference

private PRIndirectReference iconReference
Holds value of property iconReference.

Constructor Detail

PushbuttonField

public PushbuttonField(PdfWriter writer,
                       Rectangle box,
                       String fieldName)
Creates a new instance of PushbuttonField

Parameters:
writer - the document PdfWriter
box - the field location and dimensions
fieldName - the field name. If null only the widget keys will be included in the field allowing it to be used as a kid field.
Method Detail

getLayout

public int getLayout()
Getter for property layout.

Returns:
Value of property layout.

setLayout

public void setLayout(int layout)
Sets the icon and label layout. Possible values are LAYOUT_LABEL_ONLY, LAYOUT_ICON_ONLY, LAYOUT_ICON_TOP_LABEL_BOTTOM, LAYOUT_LABEL_TOP_ICON_BOTTOM, LAYOUT_ICON_LEFT_LABEL_RIGHT, LAYOUT_LABEL_LEFT_ICON_RIGHT and LAYOUT_LABEL_OVER_ICON. The default is LAYOUT_LABEL_ONLY.

Parameters:
layout - New value of property layout.

getImage

public Image getImage()
Getter for property image.

Returns:
Value of property image.

setImage

public void setImage(Image image)
Sets the icon as an image.

Parameters:
image - the image

getTemplate

public PdfTemplate getTemplate()
Getter for property template.

Returns:
Value of property template.

setTemplate

public void setTemplate(PdfTemplate template)
Sets the icon as a template.

Parameters:
template - the template

getScaleIcon

public int getScaleIcon()
Getter for property scaleIcon.

Returns:
Value of property scaleIcon.

setScaleIcon

public void setScaleIcon(int scaleIcon)
Sets the way the icon will be scaled. Possible values are SCALE_ICON_ALWAYS, SCALE_ICON_NEVER, SCALE_ICON_IS_TOO_BIG and SCALE_ICON_IS_TOO_SMALL. The default is SCALE_ICON_ALWAYS.

Parameters:
scaleIcon - the way the icon will be scaled

isProportionalIcon

public boolean isProportionalIcon()
Getter for property proportionalIcon.

Returns:
Value of property proportionalIcon.

setProportionalIcon

public void setProportionalIcon(boolean proportionalIcon)
Sets the way the icon is scaled. If true the icon is scaled proportionally, if false the scaling is done anamorphicaly.

Parameters:
proportionalIcon - the way the icon is scaled

getIconVerticalAdjustment

public float getIconVerticalAdjustment()
Getter for property iconVerticalAdjustment.

Returns:
Value of property iconVerticalAdjustment.

setIconVerticalAdjustment

public void setIconVerticalAdjustment(float iconVerticalAdjustment)
A number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon. A value of 0 positions the icon at the bottom of the annotation rectangle. A value of 0.5 centers it within the rectangle. The default is 0.5.

Parameters:
iconVerticalAdjustment - a number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon

getIconHorizontalAdjustment

public float getIconHorizontalAdjustment()
Getter for property iconHorizontalAdjustment.

Returns:
Value of property iconHorizontalAdjustment.

setIconHorizontalAdjustment

public void setIconHorizontalAdjustment(float iconHorizontalAdjustment)
A number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon. A value of 0 positions the icon at the left of the annotation rectangle. A value of 0.5 centers it within the rectangle. The default is 0.5.

Parameters:
iconHorizontalAdjustment - a number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon

calculateFontSize

private float calculateFontSize(float w,
                                float h)
                         throws IOException,
                                DocumentException
Throws:
IOException
DocumentException

getAppearance

public PdfAppearance getAppearance()
                            throws IOException,
                                   DocumentException
Gets the button appearance.

Returns:
the button appearance
Throws:
IOException - on error
DocumentException - on error

getField

public PdfFormField getField()
                      throws IOException,
                             DocumentException
Gets the pushbutton field.

Returns:
the pushbutton field
Throws:
IOException - on error
DocumentException - on error

isIconFitToBounds

public boolean isIconFitToBounds()
Getter for property iconFitToBounds.

Returns:
Value of property iconFitToBounds.

setIconFitToBounds

public void setIconFitToBounds(boolean iconFitToBounds)
If true the icon will be scaled to fit fully within the bounds of the annotation, if false the border width will be taken into account. The default is false.

Parameters:
iconFitToBounds - if true the icon will be scaled to fit fully within the bounds of the annotation, if false the border width will be taken into account

getIconReference

public PRIndirectReference getIconReference()
Gets the reference to an existing icon.

Returns:
the reference to an existing icon.

setIconReference

public void setIconReference(PRIndirectReference iconReference)
Sets the reference to an existing icon.

Parameters:
iconReference - the reference to an existing icon

Hosted by Hostbasket