Pasmaak Opmaak Toe Op Velde
Soms moet gebruikers persoonlike formatering op velde toepas. In hierdie artikel sal ons kyk na’n paar voorbeelde van hoe dit gedoen kan word.
Vir meer opsies te leer, sien die volledige lys van eienskappe vir elke veld tipe in die ooreenstemmende klas.
Hoe Om Pasgemaakte Formatering Toe Te Pas Op Veldresultaat
Aspose.Words verskaf API vir persoonlike opmaak van veld se resultaat. Jy kan IFieldResultFormatter koppelvlak implementeer om te beheer hoe die veldresultaat geformateer is. Jy kan numeriese formaatskakelaar toepas, d.w. s. # “#.##”, datum/tyd formaatskakelaar, d. w. s. @ “dd.MM.yyyy”, en getalformaatskakelaar, d. w. s. * Ordinal.
Die volgende kode voorbeeld toon hoe om persoonlike formatering vir die veld resultaat toe te pas.
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
DocumentBuilder builder = new DocumentBuilder(); | |
Document document = builder.getDocument(); | |
Field field = builder.insertField("=-1234567.89 \\# \"### ### ###.000\"", null); | |
document.getFieldOptions().setResultFormatter(new FieldResultFormatter("[%0$s]", null)); | |
field.update(); | |
document.save(dataDir+"FormatFieldResult_out.docx"); |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
public class FieldResultFormatter implements IFieldResultFormatter { | |
private final String mNumberFormat; | |
private final String mDateFormat; | |
private final ArrayList mNumberFormatInvocations = new ArrayList(); | |
private final ArrayList mDateFormatInvocations = new ArrayList(); | |
public FieldResultFormatter(String numberFormat, String dateFormat) { | |
mNumberFormat = numberFormat; | |
mDateFormat = dateFormat; | |
} | |
public FieldResultFormatter() { | |
mNumberFormat = null; | |
mDateFormat = null; | |
} | |
public String format(String arg0, int arg1) { | |
// TODO Auto-generated method stub | |
return null; | |
} | |
public String format(double arg0, int arg1) { | |
// TODO Auto-generated method stub | |
return null; | |
} | |
public String formatNumeric(double value, String format) { | |
// TODO Auto-generated method stub | |
mNumberFormatInvocations.add(new Object[]{value, format}); | |
return (mNumberFormat.isEmpty() || mNumberFormat == null) ? null | |
: String.format(mNumberFormat, value); | |
} | |
public String formatDateTime(Date value, String format, int calendarType) { | |
mDateFormatInvocations | |
.add(new Object[]{value, format, calendarType}); | |
return (mDateFormat.isEmpty() || mDateFormat == null) ? null : String | |
.format(mDateFormat, value); | |
} |
Hoe om IF
toestand te evalueer
As jy IF
toestand na Mail Merge wil evalueer, kan jy die EvaluateCondition metode gebruik wat onmiddellik die resultaat van die uitdrukking evaluering teruggee.
Die volgende kode voorbeeld toon hoe om hierdie metode te gebruik:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
DocumentBuilder builder = new DocumentBuilder(); | |
FieldIf field = (FieldIf) builder.insertField("IF 1 = 1", null); | |
int actualResult = field.evaluateCondition(); | |
System.out.println(actualResult); |
Hoe Om Pasgemaakte Formatering Op Tydveld Toe Te Pas
By verstek Aspose.Words updates TIME
veld met huidige kultuur kort tyd formaat. As u die TIME
- veld volgens u vereiste wil formateer, kan u dit bereik deur die IFieldUpdateCultureProvider - koppelvlak te implementeer.
Die volgende kode voorbeelde toon hoe om persoonlike formatering toe te pas op die TIME
veld:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.insertField(FieldType.FIELD_TIME, true); | |
doc.getFieldOptions().setFieldUpdateCultureSource(FieldUpdateCultureSource.FIELD_CODE); | |
doc.getFieldOptions().setFieldUpdateCultureProvider(new FieldUpdateCultureProvider()); | |
doc.save(getArtifactsDir() + "WorkingWithFields.FieldUpdateCulture.pdf"); |
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java | |
private static class FieldUpdateCultureProvider implements IFieldUpdateCultureProvider | |
{ | |
public CultureInfo getCulture(String name, Field field) | |
{ | |
switch (name) | |
{ | |
case "ru-RU": | |
CultureInfo culture = new CultureInfo(new Locale(name)); | |
DateTimeFormatInfo format = culture.getDateTimeFormat(); | |
format.setMonthNames(new String[] | |
{ | |
"месяц 1", "месяц 2", "месяц 3", "месяц 4", "месяц 5", "месяц 6", "месяц 7", "месяц 8", | |
"месяц 9", "месяц 10", "месяц 11", "месяц 12", "" | |
}); | |
format.setMonthGenitiveNames(format.getMonthNames()); | |
format.setAbbreviatedMonthNames(new String[] | |
{ | |
"мес 1", "мес 2", "мес 3", "мес 4", "мес 5", "мес 6", "мес 7", "мес 8", "мес 9", "мес 10", | |
"мес 11", "мес 12", "" | |
}); | |
format.setAbbreviatedMonthGenitiveNames(format.getAbbreviatedMonthNames()); | |
format.setDayNames(new String[] | |
{ | |
"день недели 7", "день недели 1", "день недели 2", "день недели 3", "день недели 4", | |
"день недели 5", "день недели 6" | |
}); | |
format.setAbbreviatedDayNames(new String[] | |
{ "день 7", "день 1", "день 2", "день 3", "день 4", "день 5", "день 6" }); | |
format.setShortestDayNames(new String[] { "д7", "д1", "д2", "д3", "д4", "д5", "д6" }); | |
format.setAMDesignator("До полудня"); | |
format.setPMDesignator("После полудня"); | |
final String PATTERN = "yyyy MM (MMMM) dd (dddd) hh:mm:ss tt"; | |
format.setLongDatePattern(PATTERN); | |
format.setLongTimePattern(PATTERN); | |
format.setShortDatePattern(PATTERN); | |
format.setShortTimePattern(PATTERN); | |
return culture; | |
case "en-US": | |
return new CultureInfo(new Locale(name)); | |
default: | |
return null; | |
} | |
} | |
} |