You'll have to draw the checkbox with the required appearance, shape, size, color. It's just a drawing.
Paulo ----- Original Message ----- From: "feanor7" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Friday, July 20, 2007 7:59 PM Subject: [iText-questions] set the border of a checkbox > > 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; > } > } ------------------------------------------------------------------------- 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/
