code: public boolean replacePushbuttonField(String field, PdfFormField button, int order) {
          if (getFieldType(field) != FIELD_TYPE_PUSHBUTTON)
              return false;
          Item item = getFieldItem(field);
          if (order >= item.size())
              return false;
          PdfDictionary merged = item.getMerged(order);
          PdfDictionary values = item.getValue(order);
          PdfDictionary widgets = item.getWidget(order);
          for (int k = 0; k < buttonRemove.length; ++k) {
              merged.remove(buttonRemove[k]);
              values.remove(buttonRemove[k]);
              widgets.remove(buttonRemove[k]);
          }
          for (Iterator it = button.getKeys().iterator(); it.hasNext();) {
              PdfName key = (PdfName)it.next();
              if (key.equals(PdfName.T) || key.equals(PdfName.RECT))
                  continue;
              if (key.equals(PdfName.FF))
                  values.put(key, button.get(key));
              else
                  widgets.put(key, button.get(key));
              merged.put(key, button.get(key));
          }
          return true;
      }
docs: Replaces the designated field with a new pushbutton. The pushbutton can be created with
  {@link #getNewPushbuttonFromField(String,int)} from the same document or it can be a
  generic PdfFormField of the type pushbutton.
  
  @param field the field name
  @param button the <CODE>PdfFormField</CODE> representing the pushbutton
  @param order the field order in fields with same name
  @return <CODE>true</CODE> if the field was replaced, <CODE>false</CODE> if the field
  was not a pushbutton
  
  @since 2.0.7