I simply want to set the border of a checkbox (i want the border to be
thin...like 1 pt.). I tried experimenting with a couple things but i can't
seem to accomplish it. Can anyone help me?
I don't see anything about setting the border in the PdfAppearance class. In
the Rectangle class there are multiple setBorder methods, and in
PdfFormField there is the setBorder and setBorderStyle methods. I tried all
of these with no success. Does anyone know the correct one to use and more
importantly the correct WAY to use it? The following is my code (after I
gave up trying to set the border).
import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
public class PdfHelper
{
public static void main(String[] args)
{
System.out.println("Textfield");
// step 1: creation of a document-object
Document document = new Document(PageSize.A4);
try
{
String fileName = "Temp/checkbox.pdf";
PdfWriter writer = PdfWriter.getInstance(document, new
FileOutputStream(fileName));
document.open();
PdfContentByte cb = writer.getDirectContent();
BaseFont font = BaseFont.createFont("Helvetica", "winansi", false);
writer.addAnnotation(getPdfCheckBox(writer, cb, "fieldName1", 10, font, 12,
170, 780, 10, 10, true));
}
catch(DocumentException de) {
System.err.println(de.getMessage());
}
catch(IOException ioe) {
System.err.println(ioe.getMessage());
}
catch(Exception ioe) {
System.err.println(ioe.getMessage());
}
document.close();
}
public static synchronized PdfFormField getPdfCheckBox( PdfWriter writer,
PdfContentByte cb,
String fieldName, // Acro field name
int maxLength, // Maximum characters you can fill in
BaseFont font,
float fontSize,
int x, // top left corner x-coordinate
int y, // top left corner y-coordinate
int width,
int height,
boolean isChecked) throws Exception
{
cb.moveTo(0, 0);
PdfAppearance tpOff = cb.createAppearance(width, height);
tpOff.rectangle(1, 1, width-2, height-2);
tpOff.stroke();
PdfAppearance tpOn = cb.createAppearance(width, height);
tpOn.rectangle(1, 1, width-2, height-2);
tpOn.setRGBColorFill(255, 255, 255);
tpOn.fillStroke();
tpOn.moveTo(1, 1);
tpOn.lineTo(width-1, height-1);
tpOn.moveTo(1, width-1);
tpOn.lineTo(height-1, 1);
tpOn.stroke();
Rectangle size = new Rectangle(x, y, x+width, y+height);
PdfFormField formField = PdfFormField.createCheckBox(writer);
formField.setWidget(size, PdfAnnotation.HIGHLIGHT_INVERT);
formField.setFieldName(fieldName);
formField.setValueAsName("Off");
formField.setAppearanceState("Off");
formField.setFieldFlags(PdfFormField.FLAGS_PRINT);
if (isChecked)
formField.setAppearanceState("On");
formField.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
formField.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", tpOn);
return formField;
}
}
--
View this message in context:
http://www.nabble.com/set-the-border-of-a-checkbox-tf4118986.html#a11714112
Sent from the iText - General mailing list archive at Nabble.com.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
iText-questions mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/itext-questions
Buy the iText book: http://itext.ugent.be/itext-in-action/