Example:
Shows how to control how the field result is formatted.
public void insertCustomFormattingField() throws Exception
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Field field = builder.insertField("=-1234567.89 \\# \"### ### ###.000\"", null);
doc.getFieldOptions().setResultFormatter(new FieldResultFormatter("[{0}]", null));
field.update();
}
private class FieldResultFormatter implements IFieldResultFormatter
{
FieldResultFormatter(String numberFormat, String dateFormat)
{
mNumberFormat = numberFormat;
mDateFormat = dateFormat;
}
public String formatNumeric(double value, String format)
{
mNumberFormatInvocations.add(new Object[]{value, format});
return (mNumberFormat == null || "".equals(mNumberFormat)) ? null : MessageFormat.format(mNumberFormat, value);
}
public String formatDateTime(Date value, String format, /*CalendarType*/int calendarType)
{
mDateFormatInvocations.add(new Object[]{value, format, calendarType});
return (mDateFormat == null || "".equals(mDateFormat)) ? null : MessageFormat.format(mDateFormat, value);
}
public String format(String value, /*GeneralFormat*/int format)
{
throw new UnsupportedOperationException();
}
public String format(double value, /*GeneralFormat*/int format)
{
throw new UnsupportedOperationException();
}
private /*final*/ String mNumberFormat;
private /*final*/ String mDateFormat;
private /*final*/ ArrayList mNumberFormatInvocations = new ArrayList();
private /*final*/ ArrayList mDateFormatInvocations = new ArrayList();
private IFieldResultFormatter fieldResultFormatterImplementation;
}