Java 类com.lowagie.text.pdf.PdfFormField 实例源码

项目:itext2    文件:PdfAnnotationsImp.java   
public PdfArray rotateAnnotations(PdfWriter writer, Rectangle pageSize) {
    PdfArray array = new PdfArray();
    int rotation = pageSize.getRotation() % 360;
    int currentPage = writer.getCurrentPageNumber();
    for (int k = 0; k < annotations.size(); ++k) {
        PdfAnnotation dic = (PdfAnnotation)annotations.get(k);
        int page = dic.getPlaceInPage();
        if (page > currentPage) {
            delayedAnnotations.add(dic);
            continue;
        }
        if (dic.isForm()) {
            if (!dic.isUsed()) {
                HashMap templates = dic.getTemplates();
                if (templates != null)
                    acroForm.addFieldTemplates(templates);
            }
            PdfFormField field = (PdfFormField)dic;
            if (field.getParent() == null)
                acroForm.addDocumentField(field.getIndirectReference());
        }
        if (dic.isAnnotation()) {
            array.add(dic.getIndirectReference());
            if (!dic.isUsed()) {
                PdfRectangle rect = (PdfRectangle)dic.get(PdfName.RECT);
                if (rect != null) {
                    switch (rotation) {
                        case 90:
                            dic.put(PdfName.RECT, new PdfRectangle(
                                    pageSize.getTop() - rect.bottom(),
                        rect.left(),
                        pageSize.getTop() - rect.top(),
                        rect.right()));
                            break;
                        case 180:
                            dic.put(PdfName.RECT, new PdfRectangle(
                                    pageSize.getRight() - rect.left(),
                        pageSize.getTop() - rect.bottom(),
                        pageSize.getRight() - rect.right(),
                        pageSize.getTop() - rect.top()));
                            break;
                        case 270:
                            dic.put(PdfName.RECT, new PdfRectangle(
                                    rect.bottom(),
                        pageSize.getRight() - rect.left(),
                        rect.top(),
                        pageSize.getRight() - rect.right()));
                            break;
                    }
                }
            }
        }
        if (!dic.isUsed()) {
            dic.setUsed();
            try {
                writer.addToBody(dic, dic.getIndirectReference());
            }
            catch (IOException e) {
                throw new ExceptionConverter(e);
            }
        }
    }
    return array;
}
项目:itext2    文件:FieldPositioningEvents.java   
/**
 * @see com.lowagie.text.pdf.PdfPageEvent#onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.Rectangle, java.lang.String)
 */
public void onGenericTag(PdfWriter writer, Document document,
        Rectangle rect, String text) {
    rect.setBottom(rect.getBottom() - 3);
    PdfFormField field = (PdfFormField) genericChunkFields.get(text);
    if (field == null) {
        TextField tf = new TextField(writer, new Rectangle(rect.getLeft(padding), rect.getBottom(padding), rect.getRight(padding), rect.getTop(padding)), text);
        tf.setFontSize(14);
        try {
            field = tf.getTextField();
        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }
    else {
        field.put(PdfName.RECT,  new PdfRectangle(rect.getLeft(padding), rect.getBottom(padding), rect.getRight(padding), rect.getTop(padding)));
    }
    if (parent == null)
        writer.addAnnotation(field);
    else
        parent.addKid(field);
}
项目:itext2    文件:FormComboTest.java   
/**
 * Generates an Acroform with a Combobox
 */
@Test
public void main() throws Exception {

    // step 1: creation of a document-object
    Document document = new Document(PageSize.A4);

    // step 2:
    PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("combo.pdf"));

    // step 3: we open the document
    document.open();

    // step 4:
    PdfContentByte cb = writer.getDirectContent();
    cb.moveTo(0, 0);
    String options[] = { "Red", "Green", "Blue" };
    PdfFormField field = PdfFormField.createCombo(writer, true, options, 0);
    field.setWidget(new Rectangle(100, 700, 180, 720), PdfAnnotation.HIGHLIGHT_INVERT);
    field.setFieldName("ACombo");
    field.setValueAsString("Red");
    writer.addAnnotation(field);

    // step 5: we close the document
    document.close();
}
项目:dhis2-core    文件:DefaultPdfDataEntryFormService.java   
private void addCell_WithDropDownListField( PdfPTable table, Rectangle rect, PdfWriter writer, PdfPCell cell, String strfldName, String[] optionList,
    String[] valueList ) throws IOException, DocumentException
{
    TextField textList = new TextField( writer, rect, strfldName );

    textList.setChoices( optionList );
    textList.setChoiceExports( valueList );

    textList.setBorderWidth( 1 );
    textList.setBorderColor( Color.BLACK );
    textList.setBorderStyle( PdfBorderDictionary.STYLE_SOLID );
    textList.setBackgroundColor( COLOR_BACKGROUDTEXTBOX );

    PdfFormField dropDown = textList.getComboField();

    cell.setCellEvent( new PdfFieldCell( dropDown, rect.getWidth(), rect.getHeight(), writer ) );

    table.addCell( cell );
}
项目:dhis2-core    文件:DefaultPdfDataEntryFormService.java   
private void setCheckboxAppearance( PdfFormField checkboxfield, PdfContentByte canvas, float width )
{
    PdfAppearance[] onOff = new PdfAppearance[2];
    onOff[0] = canvas.createAppearance( width + 2, width + 2 );
    onOff[0].rectangle( 1, 1, width, width );
    onOff[0].stroke();
    onOff[1] = canvas.createAppearance( width + 2, width + 2 );
    onOff[1].setRGBColorFill( 255, 128, 128 );
    onOff[1].rectangle( 1, 1, width, width );
    onOff[1].fillStroke();
    onOff[1].moveTo( 1, 1 );
    onOff[1].lineTo( width + 1, width + 1 );
    onOff[1].moveTo( 1, width + 1 );
    onOff[1].lineTo( width + 1, 1 );
    onOff[1].stroke();

    checkboxfield.setAppearance( PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff[0] );
    checkboxfield.setAppearance( PdfAnnotation.APPEARANCE_NORMAL, "On", onOff[1] );
}
项目:AgileAlligators    文件:DefaultPdfDataEntryFormService.java   
private void addCell_WithDropDownListField( PdfPTable table, Rectangle rect, PdfWriter writer, PdfPCell cell, String strfldName, String[] optionList,
    String[] valueList ) throws IOException, DocumentException
{
    TextField textList = new TextField( writer, rect, strfldName );

    textList.setChoices( optionList );
    textList.setChoiceExports( valueList );

    textList.setBorderWidth( 1 );
    textList.setBorderColor( Color.BLACK );
    textList.setBorderStyle( PdfBorderDictionary.STYLE_SOLID );
    textList.setBackgroundColor( COLOR_BACKGROUDTEXTBOX );

    PdfFormField dropDown = textList.getComboField();

    cell.setCellEvent( new PdfFieldCell( dropDown, rect.getWidth(), rect.getHeight(), writer ) );

    table.addCell( cell );
}
项目:AgileAlligators    文件:DefaultPdfDataEntryFormService.java   
private void setCheckboxAppearance( PdfFormField checkboxfield, PdfContentByte canvas, float width )
{
    PdfAppearance[] onOff = new PdfAppearance[2];
    onOff[0] = canvas.createAppearance( width + 2, width + 2 );
    onOff[0].rectangle( 1, 1, width, width );
    onOff[0].stroke();
    onOff[1] = canvas.createAppearance( width + 2, width + 2 );
    onOff[1].setRGBColorFill( 255, 128, 128 );
    onOff[1].rectangle( 1, 1, width, width );
    onOff[1].fillStroke();
    onOff[1].moveTo( 1, 1 );
    onOff[1].lineTo( width + 1, width + 1 );
    onOff[1].moveTo( 1, width + 1 );
    onOff[1].lineTo( width + 1, 1 );
    onOff[1].stroke();

    checkboxfield.setAppearance( PdfAnnotation.APPEARANCE_NORMAL, "Off", onOff[0] );
    checkboxfield.setAppearance( PdfAnnotation.APPEARANCE_NORMAL, "On", onOff[1] );
}
项目:DroidText    文件:FieldPositioningEvents.java   
/**
 * @see com.lowagie.text.pdf.PdfPageEvent#onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.Rectangle, java.lang.String)
 */
public void onGenericTag(PdfWriter writer, Document document,
        Rectangle rect, String text) {
    rect.setBottom(rect.getBottom() - 3);
    PdfFormField field = (PdfFormField) genericChunkFields.get(text);
    if (field == null) {
        TextField tf = new TextField(writer, new Rectangle(rect.getLeft(padding), rect.getBottom(padding), rect.getRight(padding), rect.getTop(padding)), text);
        tf.setFontSize(14);
        try {
            field = tf.getTextField();
        } catch (Exception e) {
            throw new ExceptionConverter(e);
        }
    }
    else {
        field.put(PdfName.RECT,  new PdfRectangle(rect.getLeft(padding), rect.getBottom(padding), rect.getRight(padding), rect.getTop(padding)));
    }
    if (parent == null)
        writer.addAnnotation(field);
    else
        parent.addKid(field);
}
项目:itext2    文件:PdfAnnotationsImp.java   
public void addAnnotation(PdfAnnotation annot) {
    if (annot.isForm()) {
        PdfFormField field = (PdfFormField)annot;
        if (field.getParent() == null)
            addFormFieldRaw(field);
    }
    else
        annotations.add(annot);
}
项目:itext2    文件:PdfAnnotationsImp.java   
void addFormFieldRaw(PdfFormField field) {
    annotations.add(field);
    ArrayList kids = field.getKids();
    if (kids != null) {
        for (int k = 0; k < kids.size(); ++k)
            addFormFieldRaw((PdfFormField)kids.get(k));
    }
}
项目:itext2    文件:FieldPositioningEvents.java   
/** Creates a new event. This constructor will be used if you need to position fields with a Cell Event. 
    * @throws DocumentException
    * @throws IOException*/
   public FieldPositioningEvents(PdfWriter writer, PdfFormField parent, String text) throws IOException, DocumentException {
    this.parent = parent;
    TextField tf = new TextField(writer, new Rectangle(0, 0), text);
    tf.setFontSize(14);
    cellField = tf.getTextField();
}
项目:itext2    文件:SimpleRegistrationFormTest.java   
/**
 * @see com.lowagie.text.pdf.PdfPCellEvent#cellLayout(com.lowagie.text.pdf.PdfPCell,
 *      com.lowagie.text.Rectangle, com.lowagie.text.pdf.PdfContentByte[])
 */
public void cellLayout(PdfPCell cell, Rectangle position, PdfContentByte[] canvases) {
    TextField tf = new TextField(writer, position, fieldname);
    tf.setFontSize(12);
    try{
        PdfFormField field = tf.getTextField();
        writer.addAnnotation(field);
    } catch (Exception e) {
        throw new ExceptionConverter(e);
    }
}
项目:itext2    文件:FormPushButtonTest.java   
/**
 * Generates an Acroform with a PushButton
 */
@Test
public void main() throws Exception {

    Document.compress = false;
    // step 1: creation of a document-object
    Document document = new Document(PageSize.A4);

    // step 2:
    PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("pushbutton.pdf"));

    // step 3: we open the document
    document.open();

    // step 4:
    PdfFormField pushbutton = PdfFormField.createPushButton(writer);
    PdfContentByte cb = writer.getDirectContent();
    cb.moveTo(0, 0);
    PdfAppearance normal = cb.createAppearance(100, 50);
    normal.setColorFill(Color.GRAY);
    normal.rectangle(5, 5, 90, 40);
    normal.fill();
    PdfAppearance rollover = cb.createAppearance(100, 50);
    rollover.setColorFill(Color.RED);
    rollover.rectangle(5, 5, 90, 40);
    rollover.fill();
    PdfAppearance down = cb.createAppearance(100, 50);
    down.setColorFill(Color.BLUE);
    down.rectangle(5, 5, 90, 40);
    down.fill();
    pushbutton.setFieldName("PushMe");
    pushbutton.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, normal);
    pushbutton.setAppearance(PdfAnnotation.APPEARANCE_ROLLOVER, rollover);
    pushbutton.setAppearance(PdfAnnotation.APPEARANCE_DOWN, down);
    pushbutton.setWidget(new Rectangle(100, 700, 200, 750), PdfAnnotation.HIGHLIGHT_PUSH);
    writer.addAnnotation(pushbutton);

    // step 5: we close the document
    document.close();
}
项目:jasperreports    文件:TextInputElementPdfHandler.java   
@Override
    public void exportElement(JRPdfExporterContext exporterContext, JRGenericPrintElement element)
    {
        PdfWriter writer = exporterContext.getPdfWriter();
        JasperPrint jasperPrint = exporterContext.getExportedReport();

        JRPrintText printText = (JRPrintText)element.getParameterValue(TextInputElement.PARAMETER_PRINT_TEXT_ELEMENT);
        if (printText == null) //FIXMEINPUT deal with xml serialization
        {
            return;
        }

        Rectangle rectangle = new Rectangle(
                element.getX() + exporterContext.getOffsetX(),
                jasperPrint.getPageHeight() - element.getY() - exporterContext.getOffsetY(),
                element.getX() + exporterContext.getOffsetX() + element.getWidth(),
                jasperPrint.getPageHeight() - element.getY() - exporterContext.getOffsetY() - element.getHeight()
                );
        TextField text = new TextField(writer, rectangle, getFieldName(element));
        Color backColor = printText.getBackcolor();
        if(backColor != null){
            text.setBackgroundColor(backColor);
        }
        Color forecolor = printText.getForecolor();
        if(forecolor != null){
            text.setTextColor(forecolor);
        }
        text.setText(printText.getFullText());
        text.setDefaultText("default:" + printText.getFullText());
//      text.setBackgroundColor(element.getBackcolor());
//      text.setTextColor(element.getForecolor());
//      text.setText(getText(element));
//      text.setDefaultText(getDefaultText(element));

        //FIXME: dynamic settings below:

//      text.setAlignment(Element.ALIGN_LEFT);
//      text.setBorderColor(Color.BLACK);
//      text.setBorderWidth(TextField.BORDER_WIDTH_THIN);
//      text.setBorderStyle(PdfBorderDictionary.STYLE_INSET);

//      text.setChoiceExports(null);
//      text.setChoices(null);
//      text.setChoiceSelection(0);
//      text.setExtensionFont(null);
//      text.setExtraMargin(0, 0);
//      try{
//          text.setFont(BaseFont.createFont(BaseFont.COURIER, BaseFont.CP1250, true));
//      }catch(Exception e){
//          throw new JRRuntimeException(e);
//      }
        text.setFontSize(printText.getFontsize());
        if (Boolean.TRUE.equals(element.getParameterValue(TextInputElement.PARAMETER_MULTI_LINE)))
        {
            text.setOptions(TextField.MULTILINE);
        }
//      text.setRotation(90);
        text.setVisibility(TextField.VISIBLE);

        try{
            PdfFormField field = text.getTextField();
            writer.addAnnotation(field);
        }catch(Exception e){
            throw new JRRuntimeException(e);
        }

    }
项目:dhis2-core    文件:PdfFieldCell.java   
public PdfFieldCell( PdfFormField formField, float width, float height, PdfWriter writer )
{
    this.formField = formField;
    this.width = width;
    this.height = height;
    this.writer = writer;
    this.type = TYPE_DEFAULT;
}
项目:dhis2-core    文件:PdfFieldCell.java   
public PdfFieldCell( PdfFormField formField, float width, float height, int type, PdfWriter writer )
{
    this.formField = formField;
    this.width = width;
    this.height = height;
    this.writer = writer;
    this.type = type;
}
项目:dhis2-core    文件:PdfFieldCell.java   
public PdfFieldCell( PdfFormField formField, String jsAction, String name, String text, int type, PdfWriter writer )
{
    this.formField = formField;
    this.writer = writer;
    this.type = type;
    this.name = name;
    this.text = text;
    this.jsAction = jsAction;
}
项目:dhis2-core    文件:PdfFieldCell.java   
public PdfFieldCell( PdfFormField parent, String[] texts, String[] values, String checkValue, float width, float height,
    int type, PdfWriter writer )
{
    this.writer = writer;
    this.type = type;
    this.parent = parent;
    this.texts = texts;
    this.values = values;
    this.checkValue = checkValue;
    this.width = width;
    this.height = height;
}
项目:dhis2-core    文件:DefaultPdfDataEntryFormService.java   
@SuppressWarnings( "unused" )
private void addCell_WithRadioButton( PdfPTable table, PdfWriter writer, PdfPCell cell, String strfldName )
{
    PdfFormField radiogroupField = PdfFormField.createRadioButton( writer, true );
    radiogroupField.setFieldName( strfldName );

    cell.setCellEvent( new PdfFieldCell( radiogroupField, new String[]{ "Yes", "No", "null" }, new String[]{
        "true", "false", "" }, "", 30.0f, PdfDataEntryFormUtil.UNITSIZE_DEFAULT, PdfFieldCell.TYPE_RADIOBUTTON, writer ) );

    table.addCell( cell );

    writer.addAnnotation( radiogroupField );
}
项目:AgileAlligators    文件:PdfFieldCell.java   
public PdfFieldCell( PdfFormField formField, float width, float height, PdfWriter writer )
{
    this.formField = formField;
    this.width = width;
    this.height = height;
    this.writer = writer;
    this.type = TYPE_DEFAULT;
}
项目:AgileAlligators    文件:PdfFieldCell.java   
public PdfFieldCell( PdfFormField formField, float width, float height, int type, PdfWriter writer )
{
    this.formField = formField;
    this.width = width;
    this.height = height;
    this.writer = writer;
    this.type = type;
}
项目:AgileAlligators    文件:PdfFieldCell.java   
public PdfFieldCell( PdfFormField formField, String jsAction, String name, String text, int type, PdfWriter writer )
{
    this.formField = formField;
    this.writer = writer;
    this.type = type;
    this.name = name;
    this.text = text;
    this.jsAction = jsAction;
}
项目:AgileAlligators    文件:PdfFieldCell.java   
public PdfFieldCell( PdfFormField parent, String[] texts, String[] values, String checkValue, float width, float height,
    int type, PdfWriter writer )
{
    this.writer = writer;
    this.type = type;
    this.parent = parent;
    this.texts = texts;
    this.values = values;
    this.checkValue = checkValue;
    this.width = width;
    this.height = height;
}
项目:AgileAlligators    文件:DefaultPdfDataEntryFormService.java   
@SuppressWarnings( "unused" )
private void addCell_WithRadioButton( PdfPTable table, PdfWriter writer, PdfPCell cell, String strfldName )
{
    PdfFormField radiogroupField = PdfFormField.createRadioButton( writer, true );
    radiogroupField.setFieldName( strfldName );

    cell.setCellEvent( new PdfFieldCell( radiogroupField, new String[]{ "Yes", "No", "null" }, new String[]{
        "true", "false", "" }, "", 30.0f, PdfDataEntryFormUtil.UNITSIZE_DEFAULT, PdfFieldCell.TYPE_RADIOBUTTON, writer ) );

    table.addCell( cell );

    writer.addAnnotation( radiogroupField );
}
项目:PDFTestForAndroid    文件:FormCombo.java   
/**
 * Generates an Acroform with a Combobox
 * 
 * @param args
 *            no arguments needed here
 */
public static void main(String[] args) {

    System.out.println("Combo");

    // step 1: creation of a document-object
    Document document = new Document(PageSize.A4);

    try {

        // step 2:
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(android.os.Environment.getExternalStorageDirectory() + java.io.File.separator + "droidtext" + java.io.File.separator + "combo.pdf"));

        // step 3: we open the document
        document.open();

        // step 4:
        PdfContentByte cb = writer.getDirectContent();
        cb.moveTo(0, 0);
        String options[] = { "Red", "Green", "Blue" };
        PdfFormField field = PdfFormField.createCombo(writer, true, options, 0);
        field.setWidget(new Rectangle(100, 700, 180, 720), PdfAnnotation.HIGHLIGHT_INVERT);
        field.setFieldName("ACombo");
        field.setValueAsString("Red");
        writer.addAnnotation(field);

    } catch (DocumentException de) {
        System.err.println(de.getMessage());
    } catch (IOException ioe) {
        System.err.println(ioe.getMessage());
    }

    // step 5: we close the document
    document.close();
}
项目:DroidText    文件:PdfAnnotationsImp.java   
public void addAnnotation(PdfAnnotation annot) {
    if (annot.isForm()) {
        PdfFormField field = (PdfFormField)annot;
        if (field.getParent() == null)
            addFormFieldRaw(field);
    }
    else
        annotations.add(annot);
}
项目:DroidText    文件:PdfAnnotationsImp.java   
void addFormFieldRaw(PdfFormField field) {
    annotations.add(field);
    ArrayList kids = field.getKids();
    if (kids != null) {
        for (int k = 0; k < kids.size(); ++k)
            addFormFieldRaw((PdfFormField)kids.get(k));
    }
}
项目:DroidText    文件:FieldPositioningEvents.java   
/** Creates a new event. This constructor will be used if you need to position fields with a Cell Event. 
    * @throws DocumentException
    * @throws IOException*/
   public FieldPositioningEvents(PdfWriter writer, PdfFormField parent, String text) throws IOException, DocumentException {
    this.parent = parent;
    TextField tf = new TextField(writer, new Rectangle(0, 0), text);
    tf.setFontSize(14);
    cellField = tf.getTextField();
}
项目:itext2    文件:PdfAnnotationsImp.java   
public void addCalculationOrder(PdfFormField formField) {
    acroForm.addCalculationOrder(formField);
}
项目:itext2    文件:FieldPositioningEvents.java   
/**
 * Add a PdfFormField that has to be tied to a generic Chunk.
 */
public void addField(String text, PdfFormField field) {
    genericChunkFields.put(text, field);
}
项目:itext2    文件:FieldPositioningEvents.java   
/** Creates a new event. This constructor will be used if you need to position fields with a Cell Event. */
public FieldPositioningEvents(PdfWriter writer, PdfFormField field) {
    this.cellField = field;
    this.fieldWriter = writer;
}
项目:itext2    文件:FieldPositioningEvents.java   
/** Creates a new event. This constructor will be used if you need to position fields with a Cell Event. */
public FieldPositioningEvents(PdfFormField parent, PdfFormField field) {
    this.cellField = field;
    this.parent = parent;
}
项目:itext2    文件:FieldPositioningEvents.java   
/**
 * @param parent The parent to set.
 */
public void setParent(PdfFormField parent) {
    this.parent = parent;
}
项目:itext2    文件:OptionalContentTest.java   
/**
 * Demonstrates the use of layers.
 * 
 * @param args
 *            no arguments needed
 */
@Test
public void main() throws Exception {
    // step 1: creation of a document-object
    Document document = new Document(PageSize.A4, 50, 50, 50, 50);
    // step 2: creation of the writer
    PdfWriter writer = PdfWriter.getInstance(document,
            PdfTestBase.getOutputStream("optionalcontent.pdf"));
    writer.setPdfVersion(PdfWriter.VERSION_1_5);
    writer.setViewerPreferences(PdfWriter.PageModeUseOC);
    // step 3: opening the document
    document.open();
    // step 4: content
    PdfContentByte cb = writer.getDirectContent();
    Phrase explanation = new Phrase(
            "Automatic layers, form fields, images, templates and actions",
            new Font(Font.HELVETICA, 18, Font.BOLD, Color.red));
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, explanation, 50,
            650, 0);
    PdfLayer l1 = new PdfLayer("Layer 1", writer);
    PdfLayer l2 = new PdfLayer("Layer 2", writer);
    PdfLayer l3 = new PdfLayer("Layer 3", writer);
    PdfLayer l4 = new PdfLayer("Form and XObject Layer", writer);
    PdfLayerMembership m1 = new PdfLayerMembership(writer);
    m1.addMember(l2);
    m1.addMember(l3);
    Phrase p1 = new Phrase("Text in layer 1");
    Phrase p2 = new Phrase("Text in layer 2 or layer 3");
    Phrase p3 = new Phrase("Text in layer 3");
    cb.beginLayer(l1);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, p1, 50, 600, 0f);
    cb.endLayer();
    cb.beginLayer(m1);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, p2, 50, 550, 0);
    cb.endLayer();
    cb.beginLayer(l3);
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, p3, 50, 500, 0);
    cb.endLayer();
    TextField ff = new TextField(writer, new Rectangle(200, 600, 300, 620),
            "field1");
    ff.setBorderColor(Color.blue);
    ff.setBorderStyle(PdfBorderDictionary.STYLE_SOLID);
    ff.setBorderWidth(TextField.BORDER_WIDTH_THIN);
    ff.setText("I'm a form field");
    PdfFormField form = ff.getTextField();
    form.setLayer(l4);
    writer.addAnnotation(form);
    Image img = Image.getInstance(PdfTestBase.RESOURCES_DIR
            + "pngnow.png");
    img.setLayer(l4);
    img.setAbsolutePosition(200, 550);
    cb.addImage(img);
    PdfTemplate tp = cb.createTemplate(100, 20);
    Phrase pt = new Phrase("I'm a template", new Font(Font.HELVETICA, 12,
            Font.NORMAL, Color.magenta));
    ColumnText.showTextAligned(tp, Element.ALIGN_LEFT, pt, 0, 0, 0);
    tp.setLayer(l4);
    tp.setBoundingBox(new Rectangle(0, -10, 100, 20));
    cb.addTemplate(tp, 200, 500);
    ArrayList<Object> state = new ArrayList<Object>();
    state.add("toggle");
    state.add(l1);
    state.add(l2);
    state.add(l3);
    state.add(l4);
    PdfAction action = PdfAction.setOCGstate(state, true);
    Chunk ck = new Chunk("Click here to toggle the layers", new Font(
            Font.HELVETICA, 18, Font.NORMAL, Color.yellow)).setBackground(
            Color.blue).setAction(action);
    ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, new Phrase(ck),
            250, 400, 0);
    cb.sanityCheck();

    // step 5: closing the document
    document.close();
}
项目:itext2    文件:FormCheckboxTest.java   
/**
 * Generates an Acroform with a Checkbox
 */
@Test
public void main() throws Exception {

    // step 1: creation of a document-object
    Document document = new Document(PageSize.A4);

    // step 2:
    PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("checkbox.pdf"));

    // step 3: we open the document
    document.open();

    // step 4:
    PdfContentByte cb = writer.getDirectContent();
    cb.moveTo(0, 0);
    PdfFormField field = PdfFormField.createCheckBox(writer);
    PdfAppearance tpOff = cb.createAppearance(20, 20);
    PdfAppearance tpOn = cb.createAppearance(20, 20);
    tpOff.rectangle(1, 1, 18, 18);
    tpOff.stroke();

    tpOn.setRGBColorFill(255, 128, 128);
    tpOn.rectangle(1, 1, 18, 18);
    tpOn.fillStroke();
    tpOn.moveTo(1, 1);
    tpOn.lineTo(19, 19);
    tpOn.moveTo(1, 19);
    tpOn.lineTo(19, 1);
    tpOn.stroke();

    field.setWidget(new Rectangle(100, 700, 120, 720), PdfAnnotation.HIGHLIGHT_INVERT);
    field.setFieldName("Urgent");
    field.setValueAsName("Off");
    field.setAppearanceState("Off");
    field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
    field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "On", tpOn);
    writer.addAnnotation(field);

    // step 5: we close the document
    document.close();
}
项目:itext2    文件:FormTextFieldTest.java   
/**
 * Generates an Acroform with a TextField
 */
@Test
public void main() throws Exception {

    // step 1: creation of a document-object
    Document document = new Document(PageSize.A4);

    // step 2:
    PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("textfield.pdf"));

    // step 3: we open the document
    document.open();

    // step 4:
    BaseFont helv = BaseFont.createFont("Helvetica", "winansi", false);
    PdfContentByte cb = writer.getDirectContent();
    cb.moveTo(0, 0);
    String text = "Some start text";
    float fontSize = 12;
    Color textColor = new GrayColor(0f);
    PdfFormField field = PdfFormField.createTextField(writer, false, false, 0);
    field.setWidget(new Rectangle(171, 750, 342, 769), PdfAnnotation.HIGHLIGHT_INVERT);
    field.setFlags(PdfAnnotation.FLAGS_PRINT);
    field.setFieldName("ATextField");
    field.setValueAsString(text);
    field.setDefaultValueAsString(text);
    field.setBorderStyle(new PdfBorderDictionary(2, PdfBorderDictionary.STYLE_SOLID));
    field.setPage();
    PdfAppearance tp = cb.createAppearance(171, 19);
    PdfAppearance da = (PdfAppearance) tp.getDuplicate();
    da.setFontAndSize(helv, fontSize);
    da.setColorFill(textColor);
    field.setDefaultAppearanceString(da);
    tp.beginVariableText();
    tp.saveState();
    tp.rectangle(2, 2, 167, 15);
    tp.clip();
    tp.newPath();
    tp.beginText();
    tp.setFontAndSize(helv, fontSize);
    tp.setColorFill(textColor);
    tp.setTextMatrix(4, 5);
    tp.showText(text);
    tp.endText();
    tp.restoreState();
    tp.endVariableText();
    field.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, tp);
    writer.addAnnotation(field);

    // step 5: we close the document
    document.close();
}
项目:itext2    文件:StudentCardFormTest.java   
private static StudentCardFormTest createForm (PdfFormField field) {
    StudentCardFormTest form = new StudentCardFormTest();
    form.field = field;
    return form;
}
项目:itext2    文件:FormRadioButtonTest.java   
/**
 * Generates an Acroform with a RadioButton
 */
@Test
public void main() throws Exception {

    // step 1: creation of a document-object
    Document document = new Document(PageSize.A4);

    // step 2:
    PdfWriter writer = PdfWriter.getInstance(document, PdfTestBase.getOutputStream("radiobutton.pdf"));

    // step 3: we open the document
    document.open();

    // step 4:
    PdfContentByte cb = writer.getDirectContent();
    cb.moveTo(0, 0);
    PdfFormField radio = PdfFormField.createRadioButton(writer, true);
    PdfAppearance tpOff = cb.createAppearance(20, 20);
    PdfAppearance tpOn = cb.createAppearance(20, 20);

    tpOff.circle(10, 10, 9);
    tpOff.stroke();

    tpOn.circle(10, 10, 9);
    tpOn.stroke();
    tpOn.circle(10, 10, 3);
    tpOn.fillStroke();

    radio.setFieldName("CreditCard");
    radio.setValueAsName("MasterCard");

    PdfFormField radio1 = PdfFormField.createEmpty(writer);
    radio1.setWidget(new Rectangle(100, 700, 120, 720), PdfAnnotation.HIGHLIGHT_INVERT);
    radio1.setAppearanceState("MasterCard");
    radio1.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
    radio1.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "MasterCard", tpOn);
    radio.addKid(radio1);

    PdfFormField radio2 = PdfFormField.createEmpty(writer);
    radio2.setWidget(new Rectangle(100, 660, 120, 680), PdfAnnotation.HIGHLIGHT_INVERT);
    radio2.setAppearanceState("Off");
    radio2.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
    radio2.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Visa", tpOn);
    radio.addKid(radio2);

    PdfFormField radio3 = PdfFormField.createEmpty(writer);
    radio3.setWidget(new Rectangle(100, 620, 120, 640), PdfAnnotation.HIGHLIGHT_INVERT);
    radio3.setAppearanceState("Off");
    radio3.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "Off", tpOff);
    radio3.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, "American", tpOn);
    radio.addKid(radio3);

    writer.addAnnotation(radio);

    // step 5: we close the document
    document.close();
}
项目:dhis2-core    文件:DefaultPdfDataEntryFormService.java   
private void addCell_WithCheckBox( PdfPTable table, PdfWriter writer, PdfPCell cell, String strfldName )
    throws IOException, DocumentException
{
    float sizeDefault = PdfDataEntryFormUtil.UNITSIZE_DEFAULT;

    RadioCheckField checkbox = new RadioCheckField( writer, new Rectangle( sizeDefault, sizeDefault ), "Yes", "On" );

    checkbox.setBorderWidth( 1 );
    checkbox.setBorderColor( Color.BLACK );

    PdfFormField checkboxfield = checkbox.getCheckField();
    checkboxfield.setFieldName( strfldName + "_" + PdfFieldCell.TPYEDEFINE_NAME + PdfFieldCell.TYPE_CHECKBOX );

    setCheckboxAppearance( checkboxfield, writer.getDirectContent(), sizeDefault );

    cell.setCellEvent( new PdfFieldCell( checkboxfield, sizeDefault, sizeDefault, PdfFieldCell.TYPE_CHECKBOX, writer ) );

    table.addCell( cell );
}
项目:AgileAlligators    文件:DefaultPdfDataEntryFormService.java   
private void addCell_WithCheckBox( PdfPTable table, PdfWriter writer, PdfPCell cell, String strfldName )
    throws IOException, DocumentException
{
    float sizeDefault = PdfDataEntryFormUtil.UNITSIZE_DEFAULT;

    RadioCheckField checkbox = new RadioCheckField( writer, new Rectangle( sizeDefault, sizeDefault ), "Yes", "On" );

    checkbox.setBorderWidth( 1 );
    checkbox.setBorderColor( Color.BLACK );

    PdfFormField checkboxfield = checkbox.getCheckField();
    checkboxfield.setFieldName( strfldName + "_" + PdfFieldCell.TPYEDEFINE_NAME + PdfFieldCell.TYPE_CHECKBOX );

    setCheckboxAppearance( checkboxfield, writer.getDirectContent(), sizeDefault );

    cell.setCellEvent( new PdfFieldCell( checkboxfield, sizeDefault, sizeDefault, PdfFieldCell.TYPE_CHECKBOX, writer ) );

    table.addCell( cell );
}