You are viewing a plain text version of this content. The canonical link for it is here.
Posted to odf-commits@incubator.apache.org by bu...@apache.org on 2017/04/11 23:13:31 UTC

svn commit: r1010270 [7/13] - in /websites/staging/odftoolkit/trunk/content: ./ odftoolkit/ odftoolkit/GSoC/ odftoolkit/docs/ odftoolkit/docs/governance/ odftoolkit/odfdom/ odftoolkit/simple/ odftoolkit/simple/demo/ odftoolkit/simple/document/ odftoolk...

Modified: websites/staging/odftoolkit/trunk/content/odftoolkit/simple/demo/demo6.html
==============================================================================
--- websites/staging/odftoolkit/trunk/content/odftoolkit/simple/demo/demo6.html (original)
+++ websites/staging/odftoolkit/trunk/content/odftoolkit/simple/demo/demo6.html Tue Apr 11 23:13:30 2017
@@ -50,7 +50,18 @@
   <div id="clear"></div>
   
   <div id="sidenav">
-    <h1 id="general">General</h1>
+    <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="general">General<a class="headerlink" href="#general" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="/odftoolkit/index.html">About</a></li>
 <li><a href="/odftoolkit/downloads.html">Downloads</a></li>
@@ -58,21 +69,21 @@
 <li><a href="/odftoolkit/license.html">License</a></li>
 <li><a href="/odftoolkit/privacy.html">Privacy Policy</a></li>
 </ul>
-<h1 id="components">Components</h1>
+<h1 id="components">Components<a class="headerlink" href="#components" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="/odftoolkit/odfdom/index.html">ODFDOM</a></li>
 <li><a href="/odftoolkit/simple/index.html">Simple API</a></li>
 <li><a href="/odftoolkit/conformance/ODFValidator.html">ODF Validator</a></li>
 <li><a href="/odftoolkit/xsltrunner/ODFXSLTRunner.html">XSLT Runner</a></li>
 </ul>
-<h1 id="community">Community</h1>
+<h1 id="community">Community<a class="headerlink" href="#community" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="/odftoolkit/get-involved.html">Get Involved</a></li>
 <li><a href="/odftoolkit/mailing-lists.html">Mailing Lists</a></li>
 <li><a href="/odftoolkit/people.html">People</a></li>
 <li><a href="/odftoolkit/community-faqs.html">Community FAQs</a></li>
 </ul>
-<h1 id="development">Development</h1>
+<h1 id="development">Development<a class="headerlink" href="#development" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="/odftoolkit/source.html">Source Code</a></li>
 <li><a href="https://issues.apache.org/jira/browse/ODFTOOLKIT">Bug Tracker</a></li>
@@ -80,13 +91,12 @@
 <li><a href="/odftoolkit/website-local.html">Website</a></li>
 <li><a href="/odftoolkit/developer-faqs.html">Developer FAQs</a></li>
 </ul>
-<h1 id="ppmc">PPMC</h1>
+<h1 id="ppmc">PPMC<a class="headerlink" href="#ppmc" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="/odftoolkit/ppmc-faqs.html">PPMC FAQs</a></li>
-<li><a href="/odftoolkit/odftoolkit-release-guide.html">Release Guide</a> <br />
-</li>
+<li><a href="/odftoolkit/odftoolkit-release-guide.html">Release Guide</a>   </li>
 </ul>
-<h1 id="asf">ASF</h1>
+<h1 id="asf">ASF<a class="headerlink" href="#asf" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
 <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
@@ -96,66 +106,72 @@
   <div id="contenta">
   
     
-    <p><strong><a href="index.html">Demos</a></strong> &gt; <strong>Booking Sheet with Text Box</strong> <br />
-</p>
-<p><strong>Overview</strong> <br />
-</p>
-<p>This demo shows the power of text box and paragraph support in Simple API. <br />
-</p>
-<p>The background of this demo is that a travel agency has to help customers book hotel. They have a spreadsheet file in hand, which records all of the visitors' information. They need to generate an order form with the requirements of hotel reservation using these data. A order form template has been supplied. This program generates order forms for all the visitors based on records of passengers in spreadsheet and the given template.  <br />
-</p>
+    <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><strong><a href="index.html">Demos</a></strong> &gt; <strong>Booking Sheet with Text Box</strong>   </p>
+<p><strong>Overview</strong>   </p>
+<p>This demo shows the power of text box and paragraph support in Simple API.   </p>
+<p>The background of this demo is that a travel agency has to help customers book hotel. They have a spreadsheet file in hand, which records all of the visitors' information. They need to generate an order form with the requirements of hotel reservation using these data. A order form template has been supplied. This program generates order forms for all the visitors based on records of passengers in spreadsheet and the given template.    </p>
 <p><img src="image/demo6.png" ><br/><br/> 
 <strong>Code Introduction</strong></p>
 <p>There code of this demo is very simple. First, load template document and spreadsheet separately. Secondly, iterate data table and create new section and paragraph. The Text Boxes in the paragraph are also cloned. All of them are iterated and filled information from data table.<br/>
 Data items counts are also computed. These counts are wrote to the bottom table of the sheet.<br/></p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">try</span> <span class="p">{</span>
-        <span class="sr">//</span> <span class="n">load</span> <span class="n">template</span> <span class="n">document</span>
-        <span class="n">TextDocument</span> <span class="n">doc</span> <span class="o">=</span> <span class="n">TextDocument</span><span class="o">.</span><span class="n">loadDocument</span><span class="p">(</span><span class="s">&quot;DemoTemplate.odt&quot;</span><span class="p">);</span>
-        <span class="n">Table</span> <span class="n">roomtable</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getTableByName</span><span class="p">(</span><span class="s">&quot;RoomTable&quot;</span><span class="p">);</span>
-        <span class="n">roomtable</span><span class="o">.</span><span class="n">remove</span><span class="p">();</span>
-        <span class="n">Section</span> <span class="n">templateSection</span> <span class="o">=</span> <span class="n">doc</span><span class="o">.</span><span class="n">getSectionByName</span><span class="p">(</span><span class="s">&quot;SectionForm&quot;</span><span class="p">);</span>
-        <span class="sr">//</span> <span class="n">load</span> <span class="n">passenger</span> <span class="n">data</span> <span class="n">document</span>
-        <span class="n">SpreadsheetDocument</span> <span class="n">data</span> <span class="o">=</span> <span class="n">SpreadsheetDocument</span><span class="o">.</span><span class="n">loadDocument</span><span class="p">(</span><span class="s">&quot;Passengers.ods&quot;</span><span class="p">);</span>
-        <span class="n">Table</span> <span class="n">table</span> <span class="o">=</span> <span class="n">data</span><span class="o">.</span><span class="n">getTableByName</span><span class="p">(</span><span class="s">&quot;passenger&quot;</span><span class="p">);</span>
-        <span class="nb">int</span> <span class="n">count</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">getRowCount</span><span class="p">();</span>
-        <span class="nb">int</span> <span class="n">type1Count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">type2Count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">type3Count</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>
-        <span class="k">for</span> <span class="p">(</span><span class="nb">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">count</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
-            <span class="n">Row</span> <span class="n">row</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">getRowByIndex</span><span class="p">(</span><span class="n">i</span><span class="p">);</span>
-            <span class="k">for</span> <span class="p">(</span><span class="nb">int</span> <span class="n">j</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">j</span> <span class="o">&lt;</span> <span class="mi">6</span><span class="p">;</span> <span class="n">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
-                <span class="n">Paragraph</span> <span class="n">para</span> <span class="o">=</span> <span class="n">templateSection</span><span class="o">.</span><span class="n">getParagraphByIndex</span><span class="p">(</span><span class="n">j</span><span class="p">,</span> <span class="n">false</span><span class="p">);</span>
-                <span class="n">Textbox</span> <span class="n">nameBox</span> <span class="o">=</span> <span class="n">para</span><span class="o">.</span><span class="n">getTextboxIterator</span><span class="p">()</span><span class="o">.</span><span class="k">next</span><span class="p">();</span>
-                <span class="n">String</span> <span class="n">content</span> <span class="o">=</span> <span class="n">row</span><span class="o">.</span><span class="n">getCellByIndex</span><span class="p">(</span><span class="n">j</span><span class="p">)</span><span class="o">.</span><span class="n">getDisplayText</span><span class="p">();</span>
-                <span class="n">nameBox</span><span class="o">.</span><span class="n">setTextContent</span><span class="p">(</span><span class="n">content</span><span class="p">);</span>
-                <span class="k">if</span> <span class="p">(</span><span class="n">j</span> <span class="o">==</span> <span class="mi">5</span><span class="p">)</span> <span class="p">{</span>
-                    <span class="k">if</span> <span class="p">(</span><span class="n">content</span><span class="o">.</span><span class="n">equals</span><span class="p">(</span><span class="s">&quot;Deluxe Room&quot;</span><span class="p">))</span>
+<div class="codehilite"><pre><span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span><span class="n">String</span><span class="p">[]</span> <span class="n">args</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">try</span> <span class="p">{</span>
+        <span class="o">//</span> <span class="n">load</span> <span class="n">template</span> <span class="n">document</span>
+        <span class="n">TextDocument</span> <span class="n">doc</span> <span class="p">=</span> <span class="n">TextDocument</span><span class="p">.</span><span class="n">loadDocument</span><span class="p">(</span>&quot;<span class="n">DemoTemplate</span><span class="p">.</span><span class="n">odt</span>&quot;<span class="p">);</span>
+        <span class="n">Table</span> <span class="n">roomtable</span> <span class="p">=</span> <span class="n">doc</span><span class="p">.</span><span class="n">getTableByName</span><span class="p">(</span>&quot;<span class="n">RoomTable</span>&quot;<span class="p">);</span>
+        <span class="n">roomtable</span><span class="p">.</span><span class="n">remove</span><span class="p">();</span>
+        <span class="n">Section</span> <span class="n">templateSection</span> <span class="p">=</span> <span class="n">doc</span><span class="p">.</span><span class="n">getSectionByName</span><span class="p">(</span>&quot;<span class="n">SectionForm</span>&quot;<span class="p">);</span>
+        <span class="o">//</span> <span class="n">load</span> <span class="n">passenger</span> <span class="n">data</span> <span class="n">document</span>
+        <span class="n">SpreadsheetDocument</span> <span class="n">data</span> <span class="p">=</span> <span class="n">SpreadsheetDocument</span><span class="p">.</span><span class="n">loadDocument</span><span class="p">(</span>&quot;<span class="n">Passengers</span><span class="p">.</span><span class="n">ods</span>&quot;<span class="p">);</span>
+        <span class="n">Table</span> <span class="n">table</span> <span class="p">=</span> <span class="n">data</span><span class="p">.</span><span class="n">getTableByName</span><span class="p">(</span>&quot;<span class="n">passenger</span>&quot;<span class="p">);</span>
+        <span class="n">int</span> <span class="n">count</span> <span class="p">=</span> <span class="n">table</span><span class="p">.</span><span class="n">getRowCount</span><span class="p">();</span>
+        <span class="n">int</span> <span class="n">type1Count</span> <span class="p">=</span> 0<span class="p">,</span> <span class="n">type2Count</span> <span class="p">=</span> 0<span class="p">,</span> <span class="n">type3Count</span> <span class="p">=</span> 0<span class="p">;</span>
+        <span class="k">for</span> <span class="p">(</span><span class="n">int</span> <span class="nb">i</span> <span class="p">=</span> 1<span class="p">;</span> <span class="nb">i</span> <span class="o">&lt;</span> <span class="n">count</span><span class="p">;</span> <span class="nb">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
+            <span class="n">Row</span> <span class="n">row</span> <span class="p">=</span> <span class="n">table</span><span class="p">.</span><span class="n">getRowByIndex</span><span class="p">(</span><span class="nb">i</span><span class="p">);</span>
+            <span class="k">for</span> <span class="p">(</span><span class="n">int</span> <span class="nb">j</span> <span class="p">=</span> 0<span class="p">;</span> <span class="nb">j</span> <span class="o">&lt;</span> 6<span class="p">;</span> <span class="nb">j</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
+                <span class="n">Paragraph</span> <span class="n">para</span> <span class="p">=</span> <span class="n">templateSection</span><span class="p">.</span><span class="n">getParagraphByIndex</span><span class="p">(</span><span class="nb">j</span><span class="p">,</span> <span class="n">false</span><span class="p">);</span>
+                <span class="n">Textbox</span> <span class="n">nameBox</span> <span class="p">=</span> <span class="n">para</span><span class="p">.</span><span class="n">getTextboxIterator</span><span class="p">().</span><span class="n">next</span><span class="p">();</span>
+                <span class="n">String</span> <span class="n">content</span> <span class="p">=</span> <span class="n">row</span><span class="p">.</span><span class="n">getCellByIndex</span><span class="p">(</span><span class="nb">j</span><span class="p">).</span><span class="n">getDisplayText</span><span class="p">();</span>
+                <span class="n">nameBox</span><span class="p">.</span><span class="n">setTextContent</span><span class="p">(</span><span class="n">content</span><span class="p">);</span>
+                <span class="k">if</span> <span class="p">(</span><span class="nb">j</span> <span class="o">==</span> 5<span class="p">)</span> <span class="p">{</span>
+                    <span class="k">if</span> <span class="p">(</span><span class="n">content</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span>&quot;<span class="n">Deluxe</span> <span class="n">Room</span>&quot;<span class="p">))</span>
                         <span class="n">type1Count</span><span class="o">++</span><span class="p">;</span>
-                    <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">content</span><span class="o">.</span><span class="n">equals</span><span class="p">(</span><span class="s">&quot;Studio/Junior Suite&quot;</span><span class="p">))</span>
+                    <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">content</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span>&quot;<span class="n">Studio</span><span class="o">/</span><span class="n">Junior</span> <span class="n">Suite</span>&quot;<span class="p">))</span>
                         <span class="n">type2Count</span><span class="o">++</span><span class="p">;</span>
-                    <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">content</span><span class="o">.</span><span class="n">equals</span><span class="p">(</span><span class="s">&quot;Executive Suite&quot;</span><span class="p">))</span>
+                    <span class="k">else</span> <span class="k">if</span> <span class="p">(</span><span class="n">content</span><span class="p">.</span><span class="n">equals</span><span class="p">(</span>&quot;<span class="n">Executive</span> <span class="n">Suite</span>&quot;<span class="p">))</span>
                         <span class="n">type3Count</span><span class="o">++</span><span class="p">;</span>
                 <span class="p">}</span>
             <span class="p">}</span>
-            <span class="n">doc</span><span class="o">.</span><span class="n">appendSection</span><span class="p">(</span><span class="n">templateSection</span><span class="p">,</span> <span class="n">false</span><span class="p">);</span>
-            <span class="n">doc</span><span class="o">.</span><span class="n">addParagraph</span><span class="p">(</span><span class="n">null</span><span class="p">);</span>
+            <span class="n">doc</span><span class="p">.</span><span class="n">appendSection</span><span class="p">(</span><span class="n">templateSection</span><span class="p">,</span> <span class="n">false</span><span class="p">);</span>
+            <span class="n">doc</span><span class="p">.</span><span class="n">addParagraph</span><span class="p">(</span><span class="n">null</span><span class="p">);</span>
         <span class="p">}</span>
-        <span class="n">templateSection</span><span class="o">.</span><span class="n">remove</span><span class="p">();</span>
-        <span class="n">roomtable</span><span class="o">.</span><span class="n">getCellByPosition</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">setStringValue</span><span class="p">(</span><span class="n">type1Count</span> <span class="o">+</span> <span class="s">&quot;&quot;</span><span class="p">);</span>
-        <span class="n">roomtable</span><span class="o">.</span><span class="n">getCellByPosition</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">setStringValue</span><span class="p">(</span><span class="n">type2Count</span> <span class="o">+</span> <span class="s">&quot;&quot;</span><span class="p">);</span>
-        <span class="n">roomtable</span><span class="o">.</span><span class="n">getCellByPosition</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span><span class="o">.</span><span class="n">setStringValue</span><span class="p">(</span><span class="n">type3Count</span> <span class="o">+</span> <span class="s">&quot;&quot;</span><span class="p">);</span>
+        <span class="n">templateSection</span><span class="p">.</span><span class="n">remove</span><span class="p">();</span>
+        <span class="n">roomtable</span><span class="p">.</span><span class="n">getCellByPosition</span><span class="p">(</span>2<span class="p">,</span> 1<span class="p">).</span><span class="n">setStringValue</span><span class="p">(</span><span class="n">type1Count</span> <span class="o">+</span> &quot;&quot;<span class="p">);</span>
+        <span class="n">roomtable</span><span class="p">.</span><span class="n">getCellByPosition</span><span class="p">(</span>2<span class="p">,</span> 2<span class="p">).</span><span class="n">setStringValue</span><span class="p">(</span><span class="n">type2Count</span> <span class="o">+</span> &quot;&quot;<span class="p">);</span>
+        <span class="n">roomtable</span><span class="p">.</span><span class="n">getCellByPosition</span><span class="p">(</span>2<span class="p">,</span> 3<span class="p">).</span><span class="n">setStringValue</span><span class="p">(</span><span class="n">type3Count</span> <span class="o">+</span> &quot;&quot;<span class="p">);</span>
 
-        <span class="n">doc</span><span class="o">.</span><span class="n">getContentRoot</span><span class="p">()</span><span class="o">.</span><span class="n">appendChild</span><span class="p">(</span><span class="n">roomtable</span><span class="o">.</span><span class="n">getOdfElement</span><span class="p">());</span>
-        <span class="n">doc</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="s">&quot;output.odt&quot;</span><span class="p">);</span>
-    <span class="p">}</span> <span class="n">catch</span> <span class="p">(</span><span class="n">Exception</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
-        <span class="n">e</span><span class="o">.</span><span class="n">printStackTrace</span><span class="p">();</span>
+        <span class="n">doc</span><span class="p">.</span><span class="n">getContentRoot</span><span class="p">().</span><span class="n">appendChild</span><span class="p">(</span><span class="n">roomtable</span><span class="p">.</span><span class="n">getOdfElement</span><span class="p">());</span>
+        <span class="n">doc</span><span class="p">.</span><span class="n">save</span><span class="p">(</span>&quot;<span class="n">output</span><span class="p">.</span><span class="n">odt</span>&quot;<span class="p">);</span>
+    <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="n">Exception</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
+        <span class="n">e</span><span class="p">.</span><span class="n">printStackTrace</span><span class="p">();</span>
     <span class="p">}</span>
 
 <span class="p">}</span>
 </pre></div>
 
 
-<p><strong>Download</strong> <br />
-</p>
+<p><strong>Download</strong>   </p>
 <p>Powered by the Simple Java API for ODF version  <a target="_new" href="../downloads.html">0.5</a>.<br />
 You can download the code of this demo from <a href="TextboxDemo.zip">here</a>.</p>
   </div>

Modified: websites/staging/odftoolkit/trunk/content/odftoolkit/simple/demo/demo7.html
==============================================================================
--- websites/staging/odftoolkit/trunk/content/odftoolkit/simple/demo/demo7.html (original)
+++ websites/staging/odftoolkit/trunk/content/odftoolkit/simple/demo/demo7.html Tue Apr 11 23:13:30 2017
@@ -50,7 +50,18 @@
   <div id="clear"></div>
   
   <div id="sidenav">
-    <h1 id="general">General</h1>
+    <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<h1 id="general">General<a class="headerlink" href="#general" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="/odftoolkit/index.html">About</a></li>
 <li><a href="/odftoolkit/downloads.html">Downloads</a></li>
@@ -58,21 +69,21 @@
 <li><a href="/odftoolkit/license.html">License</a></li>
 <li><a href="/odftoolkit/privacy.html">Privacy Policy</a></li>
 </ul>
-<h1 id="components">Components</h1>
+<h1 id="components">Components<a class="headerlink" href="#components" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="/odftoolkit/odfdom/index.html">ODFDOM</a></li>
 <li><a href="/odftoolkit/simple/index.html">Simple API</a></li>
 <li><a href="/odftoolkit/conformance/ODFValidator.html">ODF Validator</a></li>
 <li><a href="/odftoolkit/xsltrunner/ODFXSLTRunner.html">XSLT Runner</a></li>
 </ul>
-<h1 id="community">Community</h1>
+<h1 id="community">Community<a class="headerlink" href="#community" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="/odftoolkit/get-involved.html">Get Involved</a></li>
 <li><a href="/odftoolkit/mailing-lists.html">Mailing Lists</a></li>
 <li><a href="/odftoolkit/people.html">People</a></li>
 <li><a href="/odftoolkit/community-faqs.html">Community FAQs</a></li>
 </ul>
-<h1 id="development">Development</h1>
+<h1 id="development">Development<a class="headerlink" href="#development" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="/odftoolkit/source.html">Source Code</a></li>
 <li><a href="https://issues.apache.org/jira/browse/ODFTOOLKIT">Bug Tracker</a></li>
@@ -80,13 +91,12 @@
 <li><a href="/odftoolkit/website-local.html">Website</a></li>
 <li><a href="/odftoolkit/developer-faqs.html">Developer FAQs</a></li>
 </ul>
-<h1 id="ppmc">PPMC</h1>
+<h1 id="ppmc">PPMC<a class="headerlink" href="#ppmc" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="/odftoolkit/ppmc-faqs.html">PPMC FAQs</a></li>
-<li><a href="/odftoolkit/odftoolkit-release-guide.html">Release Guide</a> <br />
-</li>
+<li><a href="/odftoolkit/odftoolkit-release-guide.html">Release Guide</a>   </li>
 </ul>
-<h1 id="asf">ASF</h1>
+<h1 id="asf">ASF<a class="headerlink" href="#asf" title="Permanent link">&para;</a></h1>
 <ul>
 <li><a href="http://www.apache.org">Apache Software Foundation</a></li>
 <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
@@ -96,154 +106,151 @@
   <div id="contenta">
   
     
-    <p><a href="index.html"><strong>Demos</strong></a> &gt; <b> Offer Letter with Text Fields</b> <br />
-</p>
-<p><strong>Overview</strong>  <br />
-</p>
-<p>We have introduced several samples about how to use Simple ODF API to generate document from the predefined templete, for example, Demo: <a href="demo3.html">Navigation API in Hotel Receipt</a>. I believe you have known how easy it is. But sounds like, we never talk about how to create a template document using  Simple ODF API. <br />
-</p>
-<p>Today, let's do it. <br />
-</p>
-<p>Simple API provides Fields API since version 0.5. OpenDocument text documents or OpenDocument text content embedded in other types of documents may contain variable text elements called fields. Fields are commonly used for, a page number field displays the number of the page on which it appears or a creation date field displays the date on which a document was created. Besides, there are several advance field, such as, variable field and condition field.    <br />
-</p>
-<p>This demo provides a Java application which can create the offer letter template document from a sample and use it to generate new offer letters with the information from a spreadsheet. The template document contains some fields whose content is decided by the information from data file.   <br />
-</p>
-<p>The following picture show a sample offer letter. I have labeled the variable content with blod and color style.  <br />
-</p>
-<p><img alt="image1" src="image/offer-letter-sample.png" />  <br />
-</p>
+    <style type="text/css">
+/* The following code is added by mdx_elementid.py
+   It was originally lifted from http://subversion.apache.org/style/site.css */
+/*
+ * Hide class="elementid-permalink", except when an enclosing heading
+ * has the :hover property.
+ */
+.headerlink, .elementid-permalink {
+  visibility: hidden;
+}
+h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
+<p><a href="index.html"><strong>Demos</strong></a> &gt; <b> Offer Letter with Text Fields</b>   </p>
+<p><strong>Overview</strong>    </p>
+<p>We have introduced several samples about how to use Simple ODF API to generate document from the predefined templete, for example, Demo: <a href="demo3.html">Navigation API in Hotel Receipt</a>. I believe you have known how easy it is. But sounds like, we never talk about how to create a template document using  Simple ODF API.   </p>
+<p>Today, let's do it.   </p>
+<p>Simple API provides Fields API since version 0.5. OpenDocument text documents or OpenDocument text content embedded in other types of documents may contain variable text elements called fields. Fields are commonly used for, a page number field displays the number of the page on which it appears or a creation date field displays the date on which a document was created. Besides, there are several advance field, such as, variable field and condition field.      </p>
+<p>This demo provides a Java application which can create the offer letter template document from a sample and use it to generate new offer letters with the information from a spreadsheet. The template document contains some fields whose content is decided by the information from data file.     </p>
+<p>The following picture show a sample offer letter. I have labeled the variable content with blod and color style.    </p>
+<p><img alt="image1" src="image/offer-letter-sample.png" />    </p>
 <p>This offer was generated on "2011-01-20". It also can be in any other date, so this text content should be replaced by a date field. "Tom King" is the receiver, this name can be replaced with a variable field, then we can send it to any other perpson. Similarly, "software engineer" is the job title of "Tom King", "R&amp;D" is the branch which he belongs to, and "2011-03-12" is his onboard date, all of them should be replaced by variable field in a template document.<br/><br/> 
 Salary and allowance are more complex. Different job titles and branches have different rules. Simplicity, we assume that except "Secretary" is 5,500,00, all of the other job titles are 6,000.00. We also assume that employees from "Sales" don't have allowance. Condition field or Hidden Text field is needed to realize these rules. The same as certificates/testimonials, for campus hires, they need supply "Educational certificates", while for professinal hires, they need supply "Experience certificates from previous employers" and "Copy of resignation/acceptation letter and relieving letter". This is another use case of condition field.<br/><br/>
-After replaced all of these variable content with fields, the template document is ready. The process of generate new offer letter is very simple. Only need to load the following data, update the variable values with the data and save as a new document.  <br />
-</p>
-<p><img alt="image2" src="image/candidate-data.png" />  <br />
-</p>
-<p>No need text content search, no need target replace. It's faster than the content replace way. Beside, the variable content is highlighted automatically by Symphony or Open Office when the document is opend. The following is a generated letter sample.  <br />
-</p>
+After replaced all of these variable content with fields, the template document is ready. The process of generate new offer letter is very simple. Only need to load the following data, update the variable values with the data and save as a new document.    </p>
+<p><img alt="image2" src="image/candidate-data.png" />    </p>
+<p>No need text content search, no need target replace. It's faster than the content replace way. Beside, the variable content is highlighted automatically by Symphony or Open Office when the document is opend. The following is a generated letter sample.    </p>
 <p><img alt="image3" src="image/generated-offer-letter.png" /></p>
 <p>As using fields, the new offer letter is easily updated without inconsistent, even though after generated. You can do it in Symphony or Open Office.
 Code Introduction
-There are two methods in the class, <code>createFieldTemplate()</code> is used to create template document from sample, and <code>generateOfferLetterDocument()</code> is used to generated new document using template and data file.  <br />
-</p>
-<div class="codehilite"><pre><span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="p">)</span> <span class="p">{</span>
-    <span class="n">try</span> <span class="p">{</span>
-        <span class="sr">//</span> <span class="n">create</span> <span class="n">offer</span> <span class="n">letter</span> <span class="n">template</span> <span class="n">with</span> <span class="n">sample</span> <span class="n">offer</span> <span class="n">letter</span><span class="o">.</span>
+There are two methods in the class, <code>createFieldTemplate()</code> is used to create template document from sample, and <code>generateOfferLetterDocument()</code> is used to generated new document using template and data file.    </p>
+<div class="codehilite"><pre><span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">main</span><span class="p">(</span><span class="n">String</span><span class="p">[]</span> <span class="n">args</span><span class="p">)</span> <span class="p">{</span>
+    <span class="k">try</span> <span class="p">{</span>
+        <span class="o">//</span> <span class="n">create</span> <span class="n">offer</span> <span class="n">letter</span> <span class="n">template</span> <span class="n">with</span> <span class="n">sample</span> <span class="n">offer</span> <span class="n">letter</span><span class="p">.</span>
         <span class="n">createFieldTemplate</span><span class="p">();</span>
-        <span class="sr">//</span> <span class="n">generate</span> <span class="n">offer</span> <span class="n">letters</span> <span class="k">for</span> <span class="n">the</span> <span class="n">candidates</span> <span class="n">from</span> <span class="n">spreadsheet</span> <span class="n">document</span><span class="o">.</span>
+        <span class="o">//</span> <span class="n">generate</span> <span class="n">offer</span> <span class="n">letters</span> <span class="k">for</span> <span class="n">the</span> <span class="n">candidates</span> <span class="n">from</span> <span class="n">spreadsheet</span> <span class="n">document</span><span class="p">.</span>
         <span class="n">generateOfferLetterDocument</span><span class="p">();</span>
-    <span class="p">}</span> <span class="n">catch</span> <span class="p">(</span><span class="n">Exception</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
-        <span class="n">e</span><span class="o">.</span><span class="n">printStackTrace</span><span class="p">();</span>
+    <span class="p">}</span> <span class="k">catch</span> <span class="p">(</span><span class="n">Exception</span> <span class="n">e</span><span class="p">)</span> <span class="p">{</span>
+        <span class="n">e</span><span class="p">.</span><span class="n">printStackTrace</span><span class="p">();</span>
     <span class="p">}</span>
 <span class="p">}</span>
 </pre></div>
 
 
-<p>Below is the source code of method <code>createFieldTemplate()</code>. The basic process is find the variable content and replace it with a field. We use <code>FixedDateField</code>, <code>UserVariableField</code>, <code>ConditionField</code> and <code>HiddenTextField</code> in this method. Simple ODF API provides more types of fields. For more information, please reference the <a href="../document/javadoc/index.html">Javadoc</a> or <a href="../document/cookbook/index.html">CookBook</a>.<br />
-</p>
+<p>Below is the source code of method <code>createFieldTemplate()</code>. The basic process is find the variable content and replace it with a field. We use <code>FixedDateField</code>, <code>UserVariableField</code>, <code>ConditionField</code> and <code>HiddenTextField</code> in this method. Simple ODF API provides more types of fields. For more information, please reference the <a href="../document/javadoc/index.html">Javadoc</a> or <a href="../document/cookbook/index.html">CookBook</a>.  </p>
 <div class="codehilite"><pre><span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">createFieldTemplate</span><span class="p">()</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
-    <span class="n">TextDocument</span> <span class="n">sampleDocument</span> <span class="o">=</span> <span class="n">TextDocument</span><span class="o">.</span><span class="n">loadDocument</span><span class="p">(</span><span class="s">&quot;Tom&#39;s Offer.odt&quot;</span><span class="p">);</span>
-    <span class="sr">//</span> <span class="n">replace</span> <span class="n">offer</span> <span class="n">date</span> <span class="n">with</span> <span class="n">FixedDateField</span>
-    <span class="n">TextNavigation</span> <span class="n">search</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TextNavigation</span><span class="p">(</span><span class="s">&quot;2011-01-20&quot;</span><span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
-    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="o">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
-        <span class="n">TextSelection</span> <span class="n">item</span> <span class="o">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="o">.</span><span class="n">nextSelection</span><span class="p">();</span>
-        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
-        <span class="n">fieldSelection</span><span class="o">.</span><span class="n">replaceWithSimpleField</span><span class="p">(</span><span class="n">Field</span><span class="o">.</span><span class="n">FieldType</span><span class="o">.</span><span class="n">FIXED_DATE_FIELD</span><span class="p">);</span>
-    <span class="p">}</span>
-    <span class="sr">//</span> <span class="n">replace</span> <span class="n">candidate</span> <span class="n">name</span> <span class="n">with</span> <span class="n">UserVariableField</span>
-    <span class="n">VariableField</span> <span class="n">candidateVar</span> <span class="o">=</span> <span class="n">Fields</span><span class="o">.</span><span class="n">createUserVariableField</span><span class="p">(</span><span class="n">sampleDocument</span><span class="p">,</span> <span class="s">&quot;candidateVar&quot;</span><span class="p">,</span> <span class="s">&quot;Tom King&quot;</span><span class="p">);</span>
-    <span class="n">search</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TextNavigation</span><span class="p">(</span><span class="s">&quot;Tom King&quot;</span><span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
-    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="o">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
-        <span class="n">TextSelection</span> <span class="n">item</span> <span class="o">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="o">.</span><span class="n">nextSelection</span><span class="p">();</span>
-        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
-        <span class="n">fieldSelection</span><span class="o">.</span><span class="n">replaceWithVariableField</span><span class="p">(</span><span class="n">candidateVar</span><span class="p">);</span>
-    <span class="p">}</span>
-    <span class="sr">//</span> <span class="n">replace</span> <span class="n">job</span> <span class="n">title</span> <span class="n">with</span> <span class="n">UserVariableField</span>
-    <span class="n">VariableField</span> <span class="n">jobTitleVar</span> <span class="o">=</span> <span class="n">Fields</span><span class="o">.</span><span class="n">createUserVariableField</span><span class="p">(</span><span class="n">sampleDocument</span><span class="p">,</span> <span class="s">&quot;jobTitleVar&quot;</span><span class="p">,</span> <span class="s">&quot;software engineer&quot;</span><span class="p">);</span>
-    <span class="n">search</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TextNavigation</span><span class="p">(</span><span class="s">&quot;software engineer&quot;</span><span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
-    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="o">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
-        <span class="n">TextSelection</span> <span class="n">item</span> <span class="o">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="o">.</span><span class="n">nextSelection</span><span class="p">();</span>
-        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
-        <span class="n">fieldSelection</span><span class="o">.</span><span class="n">replaceWithVariableField</span><span class="p">(</span><span class="n">jobTitleVar</span><span class="p">);</span>
-    <span class="p">}</span>
-    <span class="sr">//</span> <span class="n">replace</span> <span class="n">branch</span> <span class="n">with</span> <span class="n">UserVariableField</span>
-    <span class="n">VariableField</span> <span class="n">branchVar</span> <span class="o">=</span> <span class="n">Fields</span><span class="o">.</span><span class="n">createUserVariableField</span><span class="p">(</span><span class="n">sampleDocument</span><span class="p">,</span> <span class="s">&quot;branchVar&quot;</span><span class="p">,</span> <span class="s">&quot;R&amp;D&quot;</span><span class="p">);</span>
-    <span class="n">search</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TextNavigation</span><span class="p">(</span><span class="s">&quot;R&amp;D&quot;</span><span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
-    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="o">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
-        <span class="n">TextSelection</span> <span class="n">item</span> <span class="o">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="o">.</span><span class="n">nextSelection</span><span class="p">();</span>
-        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
-        <span class="n">fieldSelection</span><span class="o">.</span><span class="n">replaceWithVariableField</span><span class="p">(</span><span class="n">branchVar</span><span class="p">);</span>
-    <span class="p">}</span>
-    <span class="sr">//</span> <span class="n">replace</span> <span class="n">onboard</span> <span class="n">date</span> <span class="n">with</span> <span class="n">UserVariableField</span>
-    <span class="n">VariableField</span> <span class="n">onBoardDateVar</span> <span class="o">=</span> <span class="n">Fields</span><span class="o">.</span><span class="n">createUserVariableField</span><span class="p">(</span><span class="n">sampleDocument</span><span class="p">,</span> <span class="s">&quot;onBoardDateVar&quot;</span><span class="p">,</span> <span class="s">&quot;2011-03-12&quot;</span><span class="p">);</span>
-    <span class="n">search</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TextNavigation</span><span class="p">(</span><span class="s">&quot;2011-03-12&quot;</span><span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
-    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="o">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
-        <span class="n">TextSelection</span> <span class="n">item</span> <span class="o">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="o">.</span><span class="n">nextSelection</span><span class="p">();</span>
-        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
-        <span class="n">fieldSelection</span><span class="o">.</span><span class="n">replaceWithVariableField</span><span class="p">(</span><span class="n">onBoardDateVar</span><span class="p">);</span>
-    <span class="p">}</span>
-    <span class="sr">//</span> <span class="n">replace</span> <span class="n">salary</span> <span class="n">with</span> <span class="n">ConditionField</span>
-    <span class="n">search</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TextNavigation</span><span class="p">(</span><span class="s">&quot;6,000.00&quot;</span><span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
-    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="o">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
-        <span class="n">TextSelection</span> <span class="n">item</span> <span class="o">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="o">.</span><span class="n">nextSelection</span><span class="p">();</span>
-        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
-        <span class="n">fieldSelection</span><span class="o">.</span><span class="n">replaceWithConditionField</span><span class="p">(</span><span class="s">&quot;jobTitleVar != \&quot;Secretary\&quot;&quot;</span><span class="p">,</span> <span class="s">&quot;6,000.00&quot;</span><span class="p">,</span> <span class="s">&quot;5,500.00&quot;</span><span class="p">);</span>
-    <span class="p">}</span>
-    <span class="sr">//</span> <span class="n">replace</span> <span class="n">consolidated</span> <span class="n">allowance</span> <span class="n">with</span> <span class="n">HiddenTextField</span>
-    <span class="n">search</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TextNavigation</span><span class="p">(</span><span class="s">&quot; and a Consolidated Allowance of 400\\$ per month&quot;</span><span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
-    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="o">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
-        <span class="n">TextSelection</span> <span class="n">item</span> <span class="o">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="o">.</span><span class="n">nextSelection</span><span class="p">();</span>
-        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
-        <span class="n">fieldSelection</span><span class="o">.</span><span class="n">replaceWithHiddenTextField</span><span class="p">(</span><span class="s">&quot;branchVar == \&quot;Sales\&quot;&quot;</span><span class="p">,</span> <span class="s">&quot; and a Consolidated Allowance of 400$ per month&quot;</span><span class="p">);</span>
-    <span class="p">}</span>
-    <span class="sr">//</span> <span class="n">replace</span> <span class="n">certificates</span><span class="o">/</span><span class="n">testimonials</span> <span class="n">with</span> <span class="n">ConditionField</span>
-    <span class="n">Fields</span><span class="o">.</span><span class="n">createUserVariableField</span><span class="p">(</span><span class="n">sampleDocument</span><span class="p">,</span> <span class="s">&quot;campusHireVar&quot;</span><span class="p">,</span> <span class="s">&quot;N&quot;</span><span class="p">);</span>
-    <span class="n">search</span> <span class="o">=</span> <span class="k">new</span> <span class="n">TextNavigation</span><span class="p">(</span><span class="s">&quot;\\* Educational certificates&quot;</span><span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
-    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="o">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
-        <span class="n">TextSelection</span> <span class="n">item</span> <span class="o">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="o">.</span><span class="n">nextSelection</span><span class="p">();</span>
-        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="o">=</span> <span class="k">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
+    <span class="n">TextDocument</span> <span class="n">sampleDocument</span> <span class="p">=</span> <span class="n">TextDocument</span><span class="p">.</span><span class="n">loadDocument</span><span class="p">(</span>&quot;<span class="n">Tom</span><span class="o">&#39;</span><span class="n">s</span> <span class="n">Offer</span><span class="p">.</span><span class="n">odt</span>&quot;<span class="p">);</span>
+    <span class="o">//</span> <span class="n">replace</span> <span class="n">offer</span> <span class="n">date</span> <span class="n">with</span> <span class="n">FixedDateField</span>
+    <span class="n">TextNavigation</span> <span class="n">search</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TextNavigation</span><span class="p">(</span>&quot;2011<span class="o">-</span>01<span class="o">-</span>20&quot;<span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="p">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
+        <span class="n">TextSelection</span> <span class="n">item</span> <span class="p">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="p">.</span><span class="n">nextSelection</span><span class="p">();</span>
+        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
+        <span class="n">fieldSelection</span><span class="p">.</span><span class="n">replaceWithSimpleField</span><span class="p">(</span><span class="n">Field</span><span class="p">.</span><span class="n">FieldType</span><span class="p">.</span><span class="n">FIXED_DATE_FIELD</span><span class="p">);</span>
+    <span class="p">}</span>
+    <span class="o">//</span> <span class="n">replace</span> <span class="n">candidate</span> <span class="n">name</span> <span class="n">with</span> <span class="n">UserVariableField</span>
+    <span class="n">VariableField</span> <span class="n">candidateVar</span> <span class="p">=</span> <span class="n">Fields</span><span class="p">.</span><span class="n">createUserVariableField</span><span class="p">(</span><span class="n">sampleDocument</span><span class="p">,</span> &quot;<span class="n">candidateVar</span>&quot;<span class="p">,</span> &quot;<span class="n">Tom</span> <span class="n">King</span>&quot;<span class="p">);</span>
+    <span class="n">search</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TextNavigation</span><span class="p">(</span>&quot;<span class="n">Tom</span> <span class="n">King</span>&quot;<span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="p">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
+        <span class="n">TextSelection</span> <span class="n">item</span> <span class="p">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="p">.</span><span class="n">nextSelection</span><span class="p">();</span>
+        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
+        <span class="n">fieldSelection</span><span class="p">.</span><span class="n">replaceWithVariableField</span><span class="p">(</span><span class="n">candidateVar</span><span class="p">);</span>
+    <span class="p">}</span>
+    <span class="o">//</span> <span class="n">replace</span> <span class="n">job</span> <span class="n">title</span> <span class="n">with</span> <span class="n">UserVariableField</span>
+    <span class="n">VariableField</span> <span class="n">jobTitleVar</span> <span class="p">=</span> <span class="n">Fields</span><span class="p">.</span><span class="n">createUserVariableField</span><span class="p">(</span><span class="n">sampleDocument</span><span class="p">,</span> &quot;<span class="n">jobTitleVar</span>&quot;<span class="p">,</span> &quot;<span class="n">software</span> <span class="n">engineer</span>&quot;<span class="p">);</span>
+    <span class="n">search</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TextNavigation</span><span class="p">(</span>&quot;<span class="n">software</span> <span class="n">engineer</span>&quot;<span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="p">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
+        <span class="n">TextSelection</span> <span class="n">item</span> <span class="p">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="p">.</span><span class="n">nextSelection</span><span class="p">();</span>
+        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
+        <span class="n">fieldSelection</span><span class="p">.</span><span class="n">replaceWithVariableField</span><span class="p">(</span><span class="n">jobTitleVar</span><span class="p">);</span>
+    <span class="p">}</span>
+    <span class="o">//</span> <span class="n">replace</span> <span class="n">branch</span> <span class="n">with</span> <span class="n">UserVariableField</span>
+    <span class="n">VariableField</span> <span class="n">branchVar</span> <span class="p">=</span> <span class="n">Fields</span><span class="p">.</span><span class="n">createUserVariableField</span><span class="p">(</span><span class="n">sampleDocument</span><span class="p">,</span> &quot;<span class="n">branchVar</span>&quot;<span class="p">,</span> &quot;<span class="n">R</span><span class="o">&amp;</span><span class="n">D</span>&quot;<span class="p">);</span>
+    <span class="n">search</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TextNavigation</span><span class="p">(</span>&quot;<span class="n">R</span><span class="o">&amp;</span><span class="n">D</span>&quot;<span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="p">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
+        <span class="n">TextSelection</span> <span class="n">item</span> <span class="p">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="p">.</span><span class="n">nextSelection</span><span class="p">();</span>
+        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
+        <span class="n">fieldSelection</span><span class="p">.</span><span class="n">replaceWithVariableField</span><span class="p">(</span><span class="n">branchVar</span><span class="p">);</span>
+    <span class="p">}</span>
+    <span class="o">//</span> <span class="n">replace</span> <span class="n">onboard</span> <span class="n">date</span> <span class="n">with</span> <span class="n">UserVariableField</span>
+    <span class="n">VariableField</span> <span class="n">onBoardDateVar</span> <span class="p">=</span> <span class="n">Fields</span><span class="p">.</span><span class="n">createUserVariableField</span><span class="p">(</span><span class="n">sampleDocument</span><span class="p">,</span> &quot;<span class="n">onBoardDateVar</span>&quot;<span class="p">,</span> &quot;2011<span class="o">-</span>03<span class="o">-</span>12&quot;<span class="p">);</span>
+    <span class="n">search</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TextNavigation</span><span class="p">(</span>&quot;2011<span class="o">-</span>03<span class="o">-</span>12&quot;<span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="p">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
+        <span class="n">TextSelection</span> <span class="n">item</span> <span class="p">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="p">.</span><span class="n">nextSelection</span><span class="p">();</span>
+        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
+        <span class="n">fieldSelection</span><span class="p">.</span><span class="n">replaceWithVariableField</span><span class="p">(</span><span class="n">onBoardDateVar</span><span class="p">);</span>
+    <span class="p">}</span>
+    <span class="o">//</span> <span class="n">replace</span> <span class="n">salary</span> <span class="n">with</span> <span class="n">ConditionField</span>
+    <span class="n">search</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TextNavigation</span><span class="p">(</span>&quot;6<span class="p">,</span>000<span class="p">.</span>00&quot;<span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="p">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
+        <span class="n">TextSelection</span> <span class="n">item</span> <span class="p">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="p">.</span><span class="n">nextSelection</span><span class="p">();</span>
+        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
+        <span class="n">fieldSelection</span><span class="p">.</span><span class="n">replaceWithConditionField</span><span class="p">(</span>&quot;<span class="n">jobTitleVar</span> !<span class="p">=</span> <span class="o">\</span>&quot;<span class="n">Secretary</span><span class="o">\</span>&quot;&quot;<span class="p">,</span> &quot;6<span class="p">,</span>000<span class="p">.</span>00&quot;<span class="p">,</span> &quot;5<span class="p">,</span>500<span class="p">.</span>00&quot;<span class="p">);</span>
+    <span class="p">}</span>
+    <span class="o">//</span> <span class="n">replace</span> <span class="n">consolidated</span> <span class="n">allowance</span> <span class="n">with</span> <span class="n">HiddenTextField</span>
+    <span class="n">search</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TextNavigation</span><span class="p">(</span>&quot; <span class="n">and</span> <span class="n">a</span> <span class="n">Consolidated</span> <span class="n">Allowance</span> <span class="n">of</span> 400<span class="o">\\</span>$ <span class="n">per</span> <span class="n">month</span>&quot;<span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="p">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
+        <span class="n">TextSelection</span> <span class="n">item</span> <span class="p">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="p">.</span><span class="n">nextSelection</span><span class="p">();</span>
+        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
+        <span class="n">fieldSelection</span><span class="p">.</span><span class="n">replaceWithHiddenTextField</span><span class="p">(</span>&quot;<span class="n">branchVar</span> <span class="o">==</span> <span class="o">\</span>&quot;<span class="n">Sales</span><span class="o">\</span>&quot;&quot;<span class="p">,</span> &quot; <span class="n">and</span> <span class="n">a</span> <span class="n">Consolidated</span> <span class="n">Allowance</span> <span class="n">of</span> 400$ <span class="n">per</span> <span class="n">month</span>&quot;<span class="p">);</span>
+    <span class="p">}</span>
+    <span class="o">//</span> <span class="n">replace</span> <span class="n">certificates</span><span class="o">/</span><span class="n">testimonials</span> <span class="n">with</span> <span class="n">ConditionField</span>
+    <span class="n">Fields</span><span class="p">.</span><span class="n">createUserVariableField</span><span class="p">(</span><span class="n">sampleDocument</span><span class="p">,</span> &quot;<span class="n">campusHireVar</span>&quot;<span class="p">,</span> &quot;<span class="n">N</span>&quot;<span class="p">);</span>
+    <span class="n">search</span> <span class="p">=</span> <span class="n">new</span> <span class="n">TextNavigation</span><span class="p">(</span>&quot;<span class="o">\\*</span> <span class="n">Educational</span> <span class="n">certificates</span>&quot;<span class="p">,</span> <span class="n">sampleDocument</span><span class="p">);</span>
+    <span class="k">while</span> <span class="p">(</span><span class="n">search</span><span class="p">.</span><span class="n">hasNext</span><span class="p">())</span> <span class="p">{</span>
+        <span class="n">TextSelection</span> <span class="n">item</span> <span class="p">=</span> <span class="p">(</span><span class="n">TextSelection</span><span class="p">)</span> <span class="n">search</span><span class="p">.</span><span class="n">nextSelection</span><span class="p">();</span>
+        <span class="n">FieldSelection</span> <span class="n">fieldSelection</span> <span class="p">=</span> <span class="n">new</span> <span class="n">FieldSelection</span><span class="p">(</span><span class="n">item</span><span class="p">);</span>
         <span class="n">fieldSelection</span>
-                <span class="o">.</span><span class="n">replaceWithConditionField</span><span class="p">(</span>
-                        <span class="s">&quot;campusHireVar == \&quot;Y\&quot;&quot;</span><span class="p">,</span>
-                        <span class="s">&quot;* Educational certificates&quot;</span><span class="p">,</span>
-                        <span class="s">&quot;* Experience certificates from previous employers\n* Copy of resignation/acceptation letter and relieving letter&quot;</span><span class="p">);</span>
+                <span class="p">.</span><span class="n">replaceWithConditionField</span><span class="p">(</span>
+                        &quot;<span class="n">campusHireVar</span> <span class="o">==</span> <span class="o">\</span>&quot;<span class="n">Y</span><span class="o">\</span>&quot;&quot;<span class="p">,</span>
+                        &quot;<span class="o">*</span> <span class="n">Educational</span> <span class="n">certificates</span>&quot;<span class="p">,</span>
+                        &quot;<span class="o">*</span> <span class="n">Experience</span> <span class="n">certificates</span> <span class="n">from</span> <span class="n">previous</span> <span class="n">employers</span><span class="o">\</span><span class="n">n</span><span class="o">*</span> <span class="n">Copy</span> <span class="n">of</span> <span class="n">resignation</span><span class="o">/</span><span class="n">acceptation</span> <span class="n">letter</span> <span class="n">and</span> <span class="n">relieving</span> <span class="n">letter</span>&quot;<span class="p">);</span>
     <span class="p">}</span>
-    <span class="n">sampleDocument</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="s">&quot;OfferTemplate.odt&quot;</span><span class="p">);</span>
+    <span class="n">sampleDocument</span><span class="p">.</span><span class="n">save</span><span class="p">(</span>&quot;<span class="n">OfferTemplate</span><span class="p">.</span><span class="n">odt</span>&quot;<span class="p">);</span>
 <span class="p">}</span>
 </pre></div>
 
 
 <p>Method <code>generateOfferLetterDocument()</code> is easier. Just load the template document and data docuemnt and fill new value to all of the variables. <code>getVariableFieldByName()</code> is a method of <code>VariableContainer</code> used to iterate variable field by name.</p>
 <div class="codehilite"><pre><span class="n">public</span> <span class="n">static</span> <span class="n">void</span> <span class="n">generateOfferLetterDocument</span><span class="p">()</span> <span class="n">throws</span> <span class="n">Exception</span> <span class="p">{</span>
-    <span class="n">TextDocument</span> <span class="n">templateDocument</span> <span class="o">=</span> <span class="n">TextDocument</span><span class="o">.</span><span class="n">loadDocument</span><span class="p">(</span><span class="s">&quot;OfferTemplate.odt&quot;</span><span class="p">);</span>
-    <span class="n">SpreadsheetDocument</span> <span class="n">dataDocument</span> <span class="o">=</span> <span class="n">SpreadsheetDocument</span><span class="o">.</span><span class="n">loadDocument</span><span class="p">(</span><span class="s">&quot;Candidates.ods&quot;</span><span class="p">);</span>
-    <span class="n">Table</span> <span class="n">table</span> <span class="o">=</span> <span class="n">dataDocument</span><span class="o">.</span><span class="n">getTableByName</span><span class="p">(</span><span class="s">&quot;Sheet1&quot;</span><span class="p">);</span>
-    <span class="nb">int</span> <span class="n">rowCount</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">getRowCount</span><span class="p">();</span>
-    <span class="k">for</span><span class="p">(</span><span class="nb">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span> <span class="n">i</span> <span class="o">&amp;</span><span class="ow">lt</span> <span class="n">rowCount</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span>
+    <span class="n">TextDocument</span> <span class="n">templateDocument</span> <span class="p">=</span> <span class="n">TextDocument</span><span class="p">.</span><span class="n">loadDocument</span><span class="p">(</span>&quot;<span class="n">OfferTemplate</span><span class="p">.</span><span class="n">odt</span>&quot;<span class="p">);</span>
+    <span class="n">SpreadsheetDocument</span> <span class="n">dataDocument</span> <span class="p">=</span> <span class="n">SpreadsheetDocument</span><span class="p">.</span><span class="n">loadDocument</span><span class="p">(</span>&quot;<span class="n">Candidates</span><span class="p">.</span><span class="n">ods</span>&quot;<span class="p">);</span>
+    <span class="n">Table</span> <span class="n">table</span> <span class="p">=</span> <span class="n">dataDocument</span><span class="p">.</span><span class="n">getTableByName</span><span class="p">(</span>&quot;<span class="n">Sheet1</span>&quot;<span class="p">);</span>
+    <span class="n">int</span> <span class="n">rowCount</span> <span class="p">=</span> <span class="n">table</span><span class="p">.</span><span class="n">getRowCount</span><span class="p">();</span>
+    <span class="k">for</span><span class="p">(</span><span class="n">int</span> <span class="nb">i</span> <span class="p">=</span> 1<span class="p">;</span> <span class="nb">i</span> <span class="o">&amp;</span><span class="n">lt</span> <span class="n">rowCount</span><span class="p">;</span> <span class="nb">i</span><span class="o">++</span><span class="p">)</span>
     <span class="p">{</span>
-        <span class="n">Row</span> <span class="n">row</span> <span class="o">=</span> <span class="n">table</span><span class="o">.</span><span class="n">getRowByIndex</span><span class="p">(</span><span class="n">i</span><span class="p">);</span>
-        <span class="n">String</span> <span class="n">name</span> <span class="o">=</span> <span class="n">row</span><span class="o">.</span><span class="n">getCellByIndex</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">getDisplayText</span><span class="p">();</span>
-        <span class="n">VariableField</span> <span class="n">candidateVar</span> <span class="o">=</span> <span class="n">templateDocument</span><span class="o">.</span><span class="n">getVariableFieldByName</span><span class="p">(</span><span class="s">&quot;candidateVar&quot;</span><span class="p">);</span>
-        <span class="n">candidateVar</span><span class="o">.</span><span class="n">updateField</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
-        <span class="n">String</span> <span class="n">jobTitle</span> <span class="o">=</span> <span class="n">row</span><span class="o">.</span><span class="n">getCellByIndex</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">getDisplayText</span><span class="p">();</span>
-        <span class="n">VariableField</span> <span class="n">jobTitleVar</span> <span class="o">=</span> <span class="n">templateDocument</span><span class="o">.</span><span class="n">getVariableFieldByName</span><span class="p">(</span><span class="s">&quot;jobTitleVar&quot;</span><span class="p">);</span>
-        <span class="n">jobTitleVar</span><span class="o">.</span><span class="n">updateField</span><span class="p">(</span><span class="n">jobTitle</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
-        <span class="n">String</span> <span class="n">branch</span> <span class="o">=</span> <span class="n">row</span><span class="o">.</span><span class="n">getCellByIndex</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span><span class="o">.</span><span class="n">getDisplayText</span><span class="p">();</span>
-        <span class="n">VariableField</span> <span class="n">branchVar</span> <span class="o">=</span> <span class="n">templateDocument</span><span class="o">.</span><span class="n">getVariableFieldByName</span><span class="p">(</span><span class="s">&quot;branchVar&quot;</span><span class="p">);</span>
-        <span class="n">branchVar</span><span class="o">.</span><span class="n">updateField</span><span class="p">(</span><span class="n">branch</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
-        <span class="n">String</span> <span class="n">isCampusHire</span> <span class="o">=</span> <span class="n">row</span><span class="o">.</span><span class="n">getCellByIndex</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span><span class="o">.</span><span class="n">getDisplayText</span><span class="p">();</span>
-        <span class="n">VariableField</span> <span class="n">campusHireVar</span> <span class="o">=</span> <span class="n">templateDocument</span><span class="o">.</span><span class="n">getVariableFieldByName</span><span class="p">(</span><span class="s">&quot;campusHireVar&quot;</span><span class="p">);</span>
-        <span class="n">campusHireVar</span><span class="o">.</span><span class="n">updateField</span><span class="p">(</span><span class="n">isCampusHire</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
-        <span class="n">String</span> <span class="n">onBoradDate</span> <span class="o">=</span> <span class="n">row</span><span class="o">.</span><span class="n">getCellByIndex</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span><span class="o">.</span><span class="n">getDisplayText</span><span class="p">();</span>
-        <span class="n">VariableField</span> <span class="n">onBoardDateVar</span> <span class="o">=</span> <span class="n">templateDocument</span><span class="o">.</span><span class="n">getVariableFieldByName</span><span class="p">(</span><span class="s">&quot;onBoardDateVar&quot;</span><span class="p">);</span>
-        <span class="n">onBoardDateVar</span><span class="o">.</span><span class="n">updateField</span><span class="p">(</span><span class="n">onBoradDate</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
-        <span class="n">templateDocument</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="n">name</span><span class="o">+</span><span class="s">&quot;&#39;s offer letter.odt&quot;</span><span class="p">);</span>
+        <span class="n">Row</span> <span class="n">row</span> <span class="p">=</span> <span class="n">table</span><span class="p">.</span><span class="n">getRowByIndex</span><span class="p">(</span><span class="nb">i</span><span class="p">);</span>
+        <span class="n">String</span> <span class="n">name</span> <span class="p">=</span> <span class="n">row</span><span class="p">.</span><span class="n">getCellByIndex</span><span class="p">(</span>0<span class="p">).</span><span class="n">getDisplayText</span><span class="p">();</span>
+        <span class="n">VariableField</span> <span class="n">candidateVar</span> <span class="p">=</span> <span class="n">templateDocument</span><span class="p">.</span><span class="n">getVariableFieldByName</span><span class="p">(</span>&quot;<span class="n">candidateVar</span>&quot;<span class="p">);</span>
+        <span class="n">candidateVar</span><span class="p">.</span><span class="n">updateField</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
+        <span class="n">String</span> <span class="n">jobTitle</span> <span class="p">=</span> <span class="n">row</span><span class="p">.</span><span class="n">getCellByIndex</span><span class="p">(</span>1<span class="p">).</span><span class="n">getDisplayText</span><span class="p">();</span>
+        <span class="n">VariableField</span> <span class="n">jobTitleVar</span> <span class="p">=</span> <span class="n">templateDocument</span><span class="p">.</span><span class="n">getVariableFieldByName</span><span class="p">(</span>&quot;<span class="n">jobTitleVar</span>&quot;<span class="p">);</span>
+        <span class="n">jobTitleVar</span><span class="p">.</span><span class="n">updateField</span><span class="p">(</span><span class="n">jobTitle</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
+        <span class="n">String</span> <span class="n">branch</span> <span class="p">=</span> <span class="n">row</span><span class="p">.</span><span class="n">getCellByIndex</span><span class="p">(</span>2<span class="p">).</span><span class="n">getDisplayText</span><span class="p">();</span>
+        <span class="n">VariableField</span> <span class="n">branchVar</span> <span class="p">=</span> <span class="n">templateDocument</span><span class="p">.</span><span class="n">getVariableFieldByName</span><span class="p">(</span>&quot;<span class="n">branchVar</span>&quot;<span class="p">);</span>
+        <span class="n">branchVar</span><span class="p">.</span><span class="n">updateField</span><span class="p">(</span><span class="n">branch</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
+        <span class="n">String</span> <span class="n">isCampusHire</span> <span class="p">=</span> <span class="n">row</span><span class="p">.</span><span class="n">getCellByIndex</span><span class="p">(</span>3<span class="p">).</span><span class="n">getDisplayText</span><span class="p">();</span>
+        <span class="n">VariableField</span> <span class="n">campusHireVar</span> <span class="p">=</span> <span class="n">templateDocument</span><span class="p">.</span><span class="n">getVariableFieldByName</span><span class="p">(</span>&quot;<span class="n">campusHireVar</span>&quot;<span class="p">);</span>
+        <span class="n">campusHireVar</span><span class="p">.</span><span class="n">updateField</span><span class="p">(</span><span class="n">isCampusHire</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
+        <span class="n">String</span> <span class="n">onBoradDate</span> <span class="p">=</span> <span class="n">row</span><span class="p">.</span><span class="n">getCellByIndex</span><span class="p">(</span>4<span class="p">).</span><span class="n">getDisplayText</span><span class="p">();</span>
+        <span class="n">VariableField</span> <span class="n">onBoardDateVar</span> <span class="p">=</span> <span class="n">templateDocument</span><span class="p">.</span><span class="n">getVariableFieldByName</span><span class="p">(</span>&quot;<span class="n">onBoardDateVar</span>&quot;<span class="p">);</span>
+        <span class="n">onBoardDateVar</span><span class="p">.</span><span class="n">updateField</span><span class="p">(</span><span class="n">onBoradDate</span><span class="p">,</span> <span class="n">null</span><span class="p">);</span>
+        <span class="n">templateDocument</span><span class="p">.</span><span class="n">save</span><span class="p">(</span><span class="n">name</span><span class="o">+</span>&quot;<span class="s">&#39;</span><span class="err">s offer letter.odt&quot;);</span>
     <span class="p">}</span>
 <span class="p">}</span>
 </pre></div>
 
 
-<p><strong>Download</strong><br />
-</p>
+<p><strong>Download</strong>  </p>
 <p>Powered by the Simple Java API for ODF version <a href="../downloads.html">0.5</a>. <br />
 You can download the code of this demo from <a href="demo7.zip">here</a>.</p>
   </div>