public class FieldPrivate extends Field
To learn more, visit the Working with Fields documentation article.
Remarks:
Provides a private storage area. This field is used to store data for documents converted from other file formats.
Examples:
Shows how to process PRIVATE fields.
public void fieldPrivate() throws Exception {
// Open a Corel WordPerfect document which we have converted to .docx format.
Document doc = new Document(getMyDir() + "Field sample - PRIVATE.docx");
// WordPerfect 5.x/6.x documents like the one we have loaded may contain PRIVATE fields.
// Microsoft Word preserves PRIVATE fields during load/save operations,
// but provides no functionality for them.
FieldPrivate field = (FieldPrivate) doc.getRange().getFields().get(0);
Assert.assertEquals(" PRIVATE \"My value\" ", field.getFieldCode());
Assert.assertEquals(FieldType.FIELD_PRIVATE, field.getType());
// We can also insert PRIVATE fields using a document builder.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.insertField(FieldType.FIELD_PRIVATE, true);
// These fields are not a viable way of protecting sensitive information.
// Unless backward compatibility with older versions of WordPerfect is essential,
// we can safely remove these fields. We can do this using a DocumentVisiitor implementation.
Assert.assertEquals(2, doc.getRange().getFields().getCount());
FieldPrivateRemover remover = new FieldPrivateRemover();
doc.accept(remover);
Assert.assertEquals(remover.getFieldsRemovedCount(), 2);
Assert.assertEquals(doc.getRange().getFields().getCount(), 0);
}
/// <summary>
/// Removes all encountered PRIVATE fields.
/// </summary>
public static class FieldPrivateRemover extends DocumentVisitor {
public FieldPrivateRemover() {
mFieldsRemovedCount = 0;
}
public int getFieldsRemovedCount() {
return mFieldsRemovedCount;
}
/// <summary>
/// Called when a FieldEnd node is encountered in the document.
/// If the node belongs to a PRIVATE field, the entire field is removed.
/// </summary>
public int visitFieldEnd(final FieldEnd fieldEnd) throws Exception {
if (fieldEnd.getFieldType() == FieldType.FIELD_PRIVATE) {
fieldEnd.getField().remove();
mFieldsRemovedCount++;
}
return VisitorAction.CONTINUE;
}
private int mFieldsRemovedCount;
}
getDisplayResult, getEnd, getFieldCode, getFieldCode, getFormat, getLocaleId, getResult, getSeparator, getStart, getType, isDirty, isDirty, isLocked, isLocked, needStoreOldResultNodes, remove, setLocaleId, setResult, unlink, update, update