formField.setFlags(PdfFormField.FLAGS_PRINT);

----- Original Message ----- 
From: "P Govind" <[EMAIL PROTECTED]>
To: <itext-questions@lists.sourceforge.net>
Sent: Wednesday, October 19, 2005 6:23 PM
Subject: [iText-questions] check box not printing


I need to display a large number of servlet request parameters in a pdf
format. So I decided to create a helper class which will have factory
methods to create various pdf objects and can be used to create a pdf
template, which can be filled in with the user entered values using the
pdfstamper class. The problem I am having is
that the check boxes that I create doesn't print even though they are
visible on the pdf report. The code is given below. Please tell what I am
doing wrong? Also is there any other better ways to acheive my goal?
(populating pdf template with request information)

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:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
iText-questions mailing list
iText-questions@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/itext-questions

Reply via email to