com.lowagie.text.pdf

Class 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 (psoares@consiste.pt)

Field Summary
booleaniconFitToBounds
Holds value of property iconFitToBounds.
floaticonHorizontalAdjustment
Holds value of property iconHorizontalAdjustment.
PRIndirectReferenceiconReference
Holds value of property iconReference.
floaticonVerticalAdjustment
Holds value of property iconVerticalAdjustment.
Imageimage
Holds value of property image.
intlayout
Holds value of property layout.
static intLAYOUT_ICON_LEFT_LABEL_RIGHT
A layout option
static intLAYOUT_ICON_ONLY
A layout option
static intLAYOUT_ICON_TOP_LABEL_BOTTOM
A layout option
static intLAYOUT_LABEL_LEFT_ICON_RIGHT
A layout option
static intLAYOUT_LABEL_ONLY
A layout option
static intLAYOUT_LABEL_OVER_ICON
A layout option
static intLAYOUT_LABEL_TOP_ICON_BOTTOM
A layout option
booleanproportionalIcon
Holds value of property proportionalIcon.
intscaleIcon
Holds value of property scaleIcon.
static intSCALE_ICON_ALWAYS
An icon scaling option
static intSCALE_ICON_IS_TOO_BIG
An icon scaling option
static intSCALE_ICON_IS_TOO_SMALL
An icon scaling option
static intSCALE_ICON_NEVER
An icon scaling option
PdfTemplatetemplate
Holds value of property template.
PdfTemplatetp
Constructor Summary
PushbuttonField(PdfWriter writer, Rectangle box, String fieldName)
Creates a new instance of PushbuttonField
Method Summary
floatcalculateFontSize(float w, float h)
PdfAppearancegetAppearance()
Gets the button appearance.
PdfFormFieldgetField()
Gets the pushbutton field.
floatgetIconHorizontalAdjustment()
Getter for property iconHorizontalAdjustment.
PRIndirectReferencegetIconReference()
Gets the reference to an existing icon.
floatgetIconVerticalAdjustment()
Getter for property iconVerticalAdjustment.
ImagegetImage()
Getter for property image.
intgetLayout()
Getter for property layout.
intgetScaleIcon()
Getter for property scaleIcon.
PdfTemplategetTemplate()
Getter for property template.
booleanisIconFitToBounds()
Getter for property iconFitToBounds.
booleanisProportionalIcon()
Getter for property proportionalIcon.
voidsetIconFitToBounds(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.
voidsetIconHorizontalAdjustment(float iconHorizontalAdjustment)
A number between 0 and 1 indicating the fraction of leftover space to allocate at the left of the icon.
voidsetIconReference(PRIndirectReference iconReference)
Sets the reference to an existing icon.
voidsetIconVerticalAdjustment(float iconVerticalAdjustment)
A number between 0 and 1 indicating the fraction of leftover space to allocate at the bottom of the icon.
voidsetImage(Image image)
Sets the icon as an image.
voidsetLayout(int layout)
Sets the icon and label layout.
voidsetProportionalIcon(boolean proportionalIcon)
Sets the way the icon is scaled.
voidsetScaleIcon(int scaleIcon)
Sets the way the icon will be scaled.
voidsetTemplate(PdfTemplate template)
Sets the icon as a template.

Field Detail

iconFitToBounds

private boolean iconFitToBounds
Holds value of property iconFitToBounds.

iconHorizontalAdjustment

private float iconHorizontalAdjustment
Holds value of property iconHorizontalAdjustment.

iconReference

private PRIndirectReference iconReference
Holds value of property iconReference.

iconVerticalAdjustment

private float iconVerticalAdjustment
Holds value of property iconVerticalAdjustment.

image

private Image image
Holds value of property image.

layout

private int layout
Holds value of property layout.

LAYOUT_ICON_LEFT_LABEL_RIGHT

public static final int LAYOUT_ICON_LEFT_LABEL_RIGHT
A layout option

LAYOUT_ICON_ONLY

public static final int LAYOUT_ICON_ONLY
A layout option

LAYOUT_ICON_TOP_LABEL_BOTTOM

public static final int LAYOUT_ICON_TOP_LABEL_BOTTOM
A layout option

LAYOUT_LABEL_LEFT_ICON_RIGHT

public static final int LAYOUT_LABEL_LEFT_ICON_RIGHT
A layout option

LAYOUT_LABEL_ONLY

public static final int LAYOUT_LABEL_ONLY
A layout option

LAYOUT_LABEL_OVER_ICON

public static final int LAYOUT_LABEL_OVER_ICON
A layout option

LAYOUT_LABEL_TOP_ICON_BOTTOM

public static final int LAYOUT_LABEL_TOP_ICON_BOTTOM
A layout option

proportionalIcon

private boolean proportionalIcon
Holds value of property proportionalIcon.

scaleIcon

private int scaleIcon
Holds value of property scaleIcon.

SCALE_ICON_ALWAYS

public static final int SCALE_ICON_ALWAYS
An icon scaling option

SCALE_ICON_IS_TOO_BIG

public static final int SCALE_ICON_IS_TOO_BIG
An icon scaling option

SCALE_ICON_IS_TOO_SMALL

public static final int SCALE_ICON_IS_TOO_SMALL
An icon scaling option

SCALE_ICON_NEVER

public static final int SCALE_ICON_NEVER
An icon scaling option

template

private PdfTemplate template
Holds value of property template.

tp

private PdfTemplate tp

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

calculateFontSize

private float calculateFontSize(float w, float h)

getAppearance

public PdfAppearance getAppearance()
Gets the button appearance.

Returns: the button appearance

Throws: IOException on error DocumentException on error

getField

public PdfFormField getField()
Gets the pushbutton field.

Returns: the pushbutton field

Throws: IOException on error DocumentException on error

getIconHorizontalAdjustment

public float getIconHorizontalAdjustment()
Getter for property iconHorizontalAdjustment.

Returns: Value of property iconHorizontalAdjustment.

getIconReference

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

Returns: the reference to an existing icon.

getIconVerticalAdjustment

public float getIconVerticalAdjustment()
Getter for property iconVerticalAdjustment.

Returns: Value of property iconVerticalAdjustment.

getImage

public Image getImage()
Getter for property image.

Returns: Value of property image.

getLayout

public int getLayout()
Getter for property layout.

Returns: Value of property layout.

getScaleIcon

public int getScaleIcon()
Getter for property scaleIcon.

Returns: Value of property scaleIcon.

getTemplate

public PdfTemplate getTemplate()
Getter for property template.

Returns: Value of property template.

isIconFitToBounds

public boolean isIconFitToBounds()
Getter for property iconFitToBounds.

Returns: Value of property iconFitToBounds.

isProportionalIcon

public boolean isProportionalIcon()
Getter for property proportionalIcon.

Returns: Value of property proportionalIcon.

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

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

setIconReference

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

Parameters: iconReference the reference to an existing icon

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

setImage

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

Parameters: image the image

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.

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

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

setTemplate

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

Parameters: template the template