com.lowagie.text.pdf
Class XfaForm

java.lang.Object
  extended by com.lowagie.text.pdf.XfaForm

public class XfaForm
extends java.lang.Object

Processes XFA forms.

Author:
Paulo Soares (psoares@consiste.pt)

Nested Class Summary
static class XfaForm.AcroFieldsSearch
          A class to process "classic" fields.
static class XfaForm.InverseStore
          A structure to store each part of a SOM name and link it to the next part beginning from the lower hierarchy.
static class XfaForm.Stack2
          Another stack implementation.
static class XfaForm.Xml2Som
          A class for some basic SOM processing.
static class XfaForm.Xml2SomDatasets
          Processes the datasets section in the XFA form.
static class XfaForm.Xml2SomTemplate
          Processes the template section in the XFA form.
 
Field Summary
static java.lang.String XFA_DATA_SCHEMA
           
 
Constructor Summary
XfaForm()
          An empty constructor to build on.
XfaForm(PdfReader reader)
          A constructor from a PdfReader.
 
Method Summary
 java.lang.String findDatasetsName(java.lang.String name)
          Finds the complete SOM name contained in the datasets section from a possibly partial name.
 org.w3c.dom.Node findDatasetsNode(java.lang.String name)
          Finds the Node contained in the datasets section from a possibly partial name.
 java.lang.String findFieldName(java.lang.String name, AcroFields af)
          Finds the complete field name contained in the "classic" forms from a partial name.
 XfaForm.AcroFieldsSearch getAcroFieldsSom()
          Gets the class that contains the "classic" fields processing.
 org.w3c.dom.Node getDatasetsNode()
          Gets the Node that corresponds to the datasets part.
 XfaForm.Xml2SomDatasets getDatasetsSom()
          Gets the class that contains the datasets processing section of the XFA.
 org.w3c.dom.Document getDomDocument()
          Gets the top level DOM document.
static java.lang.String getNodeText(org.w3c.dom.Node n)
          Gets all the text contained in the child nodes of this node.
 PdfReader getReader()
          Gets the PdfReader used by this instance.
 XfaForm.Xml2SomTemplate getTemplateSom()
          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 isChanged()
          Checks if this XFA form was changed.
 boolean isXfaPresent()
          Returns true if it is a XFA form.
static byte[] serializeDoc(org.w3c.dom.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(org.w3c.dom.Document domDocument)
          Sets the top DOM document.
 void setNodeText(org.w3c.dom.Node n, java.lang.String text)
          Sets the text of this node.
 void setReader(PdfReader reader)
          Sets the PdfReader to be used by this instance.
 void setTemplateSom(XfaForm.Xml2SomTemplate templateSom)
          Sets the class that contains the template processing section of the XFA
 void setXfa(PdfWriter writer)
          Sets the XFA key from the instance data.
static void setXfa(XfaForm form, PdfReader reader, PdfWriter writer)
          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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

XFA_DATA_SCHEMA

public static final java.lang.String XFA_DATA_SCHEMA
See Also:
Constant Field Values
Constructor Detail

XfaForm

public XfaForm()
An empty constructor to build on.


XfaForm

public XfaForm(PdfReader reader)
        throws java.io.IOException,
               javax.xml.parsers.ParserConfigurationException,
               org.xml.sax.SAXException
A constructor from a PdfReader. It basically does everything from finding the XFA stream to the XML parsing.

Parameters:
reader - the reader
Throws:
java.io.IOException - on error
javax.xml.parsers.ParserConfigurationException - on error
org.xml.sax.SAXException - on error
Method Detail

getXfaObject

public static PdfObject getXfaObject(PdfReader reader)
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

public static void setXfa(XfaForm form,
                          PdfReader reader,
                          PdfWriter writer)
                   throws java.io.IOException
Sets the XFA key from a byte array. The old XFA is erased.

Parameters:
form - the data
reader - the reader
writer - the writer
Throws:
java.io.IOException - on error

setXfa

public void setXfa(PdfWriter writer)
            throws java.io.IOException
Sets the XFA key from the instance data. The old XFA is erased.

Parameters:
writer - the writer
Throws:
java.io.IOException - on error

serializeDoc

public static byte[] serializeDoc(org.w3c.dom.Node n)
                           throws java.io.IOException
Serializes a XML document to a byte array.

Parameters:
n - the XML document
Returns:
the serialized XML document
Throws:
java.io.IOException - on error

isXfaPresent

public boolean isXfaPresent()
Returns true if it is a XFA form.

Returns:
true if it is a XFA form

getDomDocument

public org.w3c.dom.Document getDomDocument()
Gets the top level DOM document.

Returns:
the top level DOM document

findFieldName

public java.lang.String findFieldName(java.lang.String name,
                                      AcroFields af)
Finds the complete field name contained in the "classic" forms from a partial name.

Parameters:
name - the complete or partial name
af - the fields
Returns:
the complete name or null if not found

findDatasetsName

public java.lang.String findDatasetsName(java.lang.String name)
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

public org.w3c.dom.Node findDatasetsNode(java.lang.String name)
Finds the Node contained in the datasets section from a possibly partial name.

Parameters:
name - the complete or partial name
Returns:
the Node or null if not found

getNodeText

public static java.lang.String getNodeText(org.w3c.dom.Node n)
Gets all the text contained in the child nodes of this node.

Parameters:
n - the Node
Returns:
the text found or "" if no text was found

setNodeText

public void setNodeText(org.w3c.dom.Node n,
                        java.lang.String text)
Sets the text of this node. All the child's node are deleted and a new child text node is created.

Parameters:
n - the Node to add the text to
text - the text to add

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

setDomDocument

public void setDomDocument(org.w3c.dom.Document domDocument)
Sets the top DOM document.

Parameters:
domDocument - the top DOM document

getReader

public PdfReader getReader()
Gets the PdfReader used by this instance.

Returns:
the PdfReader used by this instance

setReader

public void setReader(PdfReader reader)
Sets the PdfReader to be used by this instance.

Parameters:
reader - the PdfReader 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

public XfaForm.Xml2SomTemplate 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

public void setTemplateSom(XfaForm.Xml2SomTemplate templateSom)
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

public XfaForm.Xml2SomDatasets 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

public void setDatasetsSom(XfaForm.Xml2SomDatasets datasetsSom)
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

public XfaForm.AcroFieldsSearch getAcroFieldsSom()
Gets the class that contains the "classic" fields processing.

Returns:
the class that contains the "classic" fields processing

setAcroFieldsSom

public void setAcroFieldsSom(XfaForm.AcroFieldsSearch acroFieldsSom)
Sets the class that contains the "classic" fields processing.

Parameters:
acroFieldsSom - the class that contains the "classic" fields processing

getDatasetsNode

public org.w3c.dom.Node getDatasetsNode()
Gets the Node that corresponds to the datasets part.

Returns:
the Node that corresponds to the datasets part


iText 2.1.7