Package com.lowagie.text.pdf
Class XfaForm
java.lang.Object
com.lowagie.text.pdf.XfaForm
Processes XFA forms.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
A class to process "classic" fields.static class
A structure to store each part of a SOM name and link it to the next part beginning from the lower hierarchy.static class
Another stack implementation.static class
A class for some basic SOM processing.static class
Processes the datasets section in the XFA form.static class
Processes the template section in the XFA form. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate XfaForm.AcroFieldsSearch
private boolean
private Node
private XfaForm.Xml2SomDatasets
private Document
private PdfReader
private Node
private XfaForm.Xml2SomTemplate
static final String
private boolean
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
Extracts the nodes from the domDocument.void
fillXfaForm
(File file) void
void
fillXfaForm
(Node node) Replaces the data under datasets/data.void
findDatasetsName
(String name) Finds the complete SOM name contained in the datasets section from a possibly partial name.findDatasetsNode
(String name) Finds theNode
contained in the datasets section from a possibly partial name.findFieldName
(String name, AcroFields af) Finds the complete field name contained in the "classic" forms from a partial name.Gets the class that contains the "classic" fields processing.Gets theNode
that corresponds to the datasets part.Gets the class that contains the datasets processing section of the XFA.Gets the top level DOM document.static String
getNodeText
(Node n) Gets all the text contained in the child nodes of this node.private static String
getNodeText
(Node n, String name) Gets thePdfReader
used by this instance.Gets the class that contains the template processing section of the XFA.static PdfObject
getXfaObject
(PdfReader reader) Return the XFA Object, could be an array, could be a Stream.boolean
Checks if this XFA form was changed.boolean
Returnstrue
if it is a XFA form.static byte[]
serializeDoc
(Node n) Serializes a XML document to a byte array.void
setAcroFieldsSom
(XfaForm.AcroFieldsSearch acroFieldsSom) Sets the class that contains the "classic" fields processing.void
setChanged
(boolean changed) Sets the changed status of this XFA instance.void
setDatasetsSom
(XfaForm.Xml2SomDatasets datasetsSom) Sets the class that contains the datasets processing section of the XFA.void
setDomDocument
(Document domDocument) Sets the top DOM document.void
setNodeText
(Node n, String text) Sets the text of this node.void
Sets thePdfReader
to be used by this instance.void
setTemplateSom
(XfaForm.Xml2SomTemplate templateSom) Sets the class that contains the template processing section of the XFAvoid
Sets the XFA key from the instance data.static void
Sets the XFA key from a byte array.void
setXfaPresent
(boolean xfaPresent) Sets the XFA form flag signaling that this is a valid XFA form.
-
Field Details
-
XFA_DATA_SCHEMA
- See Also:
-
templateSom
-
templateNode
-
datasetsSom
-
datasetsNode
-
acroFieldsSom
-
reader
-
xfaPresent
private boolean xfaPresent -
domDocument
-
changed
private boolean changed
-
-
Constructor Details
-
XfaForm
public XfaForm()An empty constructor to build on. -
XfaForm
A constructor from aPdfReader
. It basically does everything from finding the XFA stream to the XML parsing.- Parameters:
reader
- the reader- Throws:
IOException
- on errorParserConfigurationException
- on errorSAXException
- on error
-
-
Method Details
-
getXfaObject
Return the XFA Object, could be an array, could be a Stream. Returns null f no XFA Object is present.- Parameters:
reader
- a PdfReader instance- Returns:
- the XFA object
- Since:
- 2.1.3
-
setXfa
Sets the XFA key from a byte array. The old XFA is erased.- Parameters:
form
- the datareader
- the readerwriter
- the writer- Throws:
IOException
- on error
-
serializeDoc
Serializes a XML document to a byte array.- Parameters:
n
- the XML document- Returns:
- the serialized XML document
- Throws:
IOException
- on error
-
getNodeText
Gets all the text contained in the child nodes of this node.- Parameters:
n
- theNode
- Returns:
- the text found or "" if no text was found
-
getNodeText
-
extractNodes
private void extractNodes()Extracts the nodes from the domDocument.- Since:
- 2.1.5
-
setXfa
Sets the XFA key from the instance data. The old XFA is erased.- Parameters:
writer
- the writer- Throws:
IOException
- on error
-
isXfaPresent
public boolean isXfaPresent()Returnstrue
if it is a XFA form.- Returns:
true
if it is a XFA form
-
setXfaPresent
public void setXfaPresent(boolean xfaPresent) Sets the XFA form flag signaling that this is a valid XFA form.- Parameters:
xfaPresent
- the XFA form flag signaling that this is a valid XFA form
-
getDomDocument
Gets the top level DOM document.- Returns:
- the top level DOM document
-
setDomDocument
Sets the top DOM document.- Parameters:
domDocument
- the top DOM document
-
findFieldName
Finds the complete field name contained in the "classic" forms from a partial name.- Parameters:
name
- the complete or partial nameaf
- the fields- Returns:
- the complete name or
null
if not found
-
findDatasetsName
Finds the complete SOM name contained in the datasets section from a possibly partial name.- Parameters:
name
- the complete or partial name- Returns:
- the complete name or
null
if not found
-
findDatasetsNode
Finds theNode
contained in the datasets section from a possibly partial name.- Parameters:
name
- the complete or partial name- Returns:
- the
Node
ornull
if not found
-
setNodeText
Sets the text of this node. All the child's node are deleted and a new child text node is created.- Parameters:
n
- theNode
to add the text totext
- the text to add
-
getReader
Gets thePdfReader
used by this instance.- Returns:
- the
PdfReader
used by this instance
-
setReader
Sets thePdfReader
to be used by this instance.- Parameters:
reader
- thePdfReader
to be used by this instance
-
isChanged
public boolean isChanged()Checks if this XFA form was changed.- Returns:
true
if this XFA form was changed
-
setChanged
public void setChanged(boolean changed) Sets the changed status of this XFA instance.- Parameters:
changed
- the changed status of this XFA instance
-
getTemplateSom
Gets the class that contains the template processing section of the XFA.- Returns:
- the class that contains the template processing section of the XFA
-
setTemplateSom
Sets the class that contains the template processing section of the XFA- Parameters:
templateSom
- the class that contains the template processing section of the XFA
-
getDatasetsSom
Gets the class that contains the datasets processing section of the XFA.- Returns:
- the class that contains the datasets processing section of the XFA
-
setDatasetsSom
Sets the class that contains the datasets processing section of the XFA.- Parameters:
datasetsSom
- the class that contains the datasets processing section of the XFA
-
getAcroFieldsSom
Gets the class that contains the "classic" fields processing.- Returns:
- the class that contains the "classic" fields processing
-
setAcroFieldsSom
Sets the class that contains the "classic" fields processing.- Parameters:
acroFieldsSom
- the class that contains the "classic" fields processing
-
getDatasetsNode
Gets theNode
that corresponds to the datasets part.- Returns:
- the
Node
that corresponds to the datasets part
-
fillXfaForm
-
fillXfaForm
public void fillXfaForm(InputStream is) throws ParserConfigurationException, SAXException, IOException -
fillXfaForm
public void fillXfaForm(InputSource is) throws ParserConfigurationException, SAXException, IOException -
fillXfaForm
Replaces the data under datasets/data.- Parameters:
node
- node to fill data under- Since:
- iText 5.0.0
-