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 [8/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/demo8.html
==============================================================================
--- websites/staging/odftoolkit/trunk/content/odftoolkit/simple/demo/demo8.html (original)
+++ websites/staging/odftoolkit/trunk/content/odftoolkit/simple/demo/demo8.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,67 +106,66 @@
   <div id="contenta">
   
     
-    <p><a href="index.html"><strong>Demos</strong></a> &gt; <b>Add 2D barcode image to a slide</b> <br />
-</p>
-<p><strong>Overview</strong>  <br />
-</p>
-<p>This demo shows the power of image and metadata support in Simple API.<br />
-</p>
-<p>A 2D bar code is a special image that can be scanned by a smart phone or a dedicated scanner. It could contain a URL, a books ISBN number a vCard for a person's contact, information, etc. It makes it easy to transfer information into a smartphone from a physical object, like a printed document, or a newspaper or magazine. <br />
-</p>
-<p>In this demo, the contact information of a document's author has been put in the metadata of a presentation document, with an ODF editor, such as IBM Lotus Symphony. The contact information in the metadata is extracted with the Simple ODF API, and wrapped into JSON object. Then a RESTful web service is called to generate a 2D bar code image based on this JSON object.  <br />
-</p>
-<p>The bar code image is then added to the first slide of this presentation using the Simple API. <br />
-</p>
-<p>This picture shows how the contact information is added to the metadata of this document.  <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>Add 2D barcode image to a slide</b>   </p>
+<p><strong>Overview</strong>    </p>
+<p>This demo shows the power of image and metadata support in Simple API.  </p>
+<p>A 2D bar code is a special image that can be scanned by a smart phone or a dedicated scanner. It could contain a URL, a books ISBN number a vCard for a person's contact, information, etc. It makes it easy to transfer information into a smartphone from a physical object, like a printed document, or a newspaper or magazine.   </p>
+<p>In this demo, the contact information of a document's author has been put in the metadata of a presentation document, with an ODF editor, such as IBM Lotus Symphony. The contact information in the metadata is extracted with the Simple ODF API, and wrapped into JSON object. Then a RESTful web service is called to generate a 2D bar code image based on this JSON object.    </p>
+<p>The bar code image is then added to the first slide of this presentation using the Simple API.   </p>
+<p>This picture shows how the contact information is added to the metadata of this document.    </p>
 <p><img alt="image1" src="image/demo8_metadata.bmp" /></p>
 <p>This picture shows the 2D bar code image added to the first slide of this presentation document.<br /><br/> 
-<img alt="image2" src="image/demo8_slide.bmp" /> <br />
-</p>
-<p><strong>Code Introduction</strong><br />
-</p>
-<p>There code of this demo is very simple. First, we load the presentation document, and extract the metadata with Simple ODF API. Second, we invoke the web service to generate the bar code image and get the URI of this image.  <br />
-</p>
-<p>Finally, we get the subtitle text box in the first slide, add an image just below of this subtitle text box. Please note how FrameRectangle is used to specify the image position.  <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">the</span> <span class="n">presentation</span>
-        <span class="n">PresentationDocument</span> <span class="n">presentation</span> <span class="o">=</span> <span class="n">PresentationDocument</span><span class="o">.</span><span class="n">loadDocument</span><span class="p">(</span><span class="s">&quot;Demotemplate.odp&quot;</span><span class="p">);</span>
-        <span class="sr">//g</span><span class="n">et</span> <span class="n">the</span> <span class="n">metadata</span>
-        <span class="n">Meta</span> <span class="n">metaData</span> <span class="o">=</span> <span class="k">new</span> <span class="n">Meta</span><span class="p">(</span><span class="n">presentation</span><span class="o">.</span><span class="n">getMetaDom</span><span class="p">());</span>
-        <span class="n">String</span> <span class="n">creator</span> <span class="o">=</span> <span class="n">metaData</span><span class="o">.</span><span class="n">getCreator</span><span class="p">();</span>
-        <span class="n">String</span> <span class="n">mailto</span> <span class="o">=</span> <span class="n">metaData</span><span class="o">.</span><span class="n">getUserDefinedDataValue</span><span class="p">(</span><span class="s">&quot;Email&quot;</span><span class="p">);</span>
-        <span class="n">String</span> <span class="n">phoneno</span> <span class="o">=</span> <span class="n">metaData</span><span class="o">.</span><span class="n">getUserDefinedDataValue</span><span class="p">(</span><span class="s">&quot;Phone&quot;</span><span class="p">);</span>
-
-        <span class="sr">//i</span><span class="n">nvoke</span> <span class="n">the</span> <span class="mi">2</span><span class="n">D</span> <span class="n">barcode</span> <span class="n">service</span><span class="p">,</span> <span class="ow">and</span> <span class="n">get</span> <span class="n">the</span> <span class="n">url</span>
-        <span class="n">BarcodeImageGeneration</span> <span class="n">demo</span> <span class="o">=</span> <span class="k">new</span> <span class="n">BarcodeImageGeneration</span><span class="p">();</span>
-        <span class="n">String</span> <span class="n">url</span> <span class="o">=</span> <span class="n">demo</span><span class="o">.</span><span class="n">invokepost</span><span class="p">(</span><span class="n">creator</span><span class="p">,</span><span class="n">mailto</span><span class="p">,</span><span class="n">phoneno</span><span class="p">);</span>
-
-        <span class="sr">//</span><span class="n">Add</span> <span class="n">the</span> <span class="n">image</span> <span class="n">to</span> <span class="n">the</span> <span class="n">first</span> <span class="n">slide</span>
-        <span class="n">Slide</span> <span class="n">slide</span> <span class="o">=</span> <span class="n">presentation</span><span class="o">.</span><span class="n">getSlideByIndex</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
-        <span class="n">Textbox</span> <span class="n">subtitleBox</span> <span class="o">=</span> <span class="n">slide</span><span class="o">.</span><span class="n">getTextboxByUsage</span><span class="p">(</span><span class="n">PresentationClass</span><span class="o">.</span><span class="n">SUBTITLE</span><span class="p">)</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="mi">0</span><span class="p">);</span>
-        <span class="n">FrameRectangle</span> <span class="n">subtitleRect</span> <span class="o">=</span> <span class="n">subtitleBox</span><span class="o">.</span><span class="n">getRectangle</span><span class="p">();</span>
-        <span class="n">Image</span> <span class="n">image</span> <span class="o">=</span> <span class="n">Image</span><span class="o">.</span><span class="n">newImage</span><span class="p">(</span><span class="n">slide</span><span class="p">,</span> <span class="k">new</span> <span class="n">URI</span><span class="p">(</span><span class="n">url</span><span class="p">));</span>
-        <span class="n">FrameRectangle</span> <span class="n">imageRect</span> <span class="o">=</span> <span class="n">image</span><span class="o">.</span><span class="n">getRectangle</span><span class="p">();</span>
-        <span class="n">imageRect</span><span class="o">.</span><span class="n">setX</span><span class="p">(</span><span class="n">subtitleRect</span><span class="o">.</span><span class="n">getX</span><span class="p">()</span><span class="o">+</span><span class="p">(</span><span class="n">subtitleRect</span><span class="o">.</span><span class="n">getWidth</span><span class="p">()</span><span class="o">-</span><span class="n">imageRect</span><span class="o">.</span><span class="n">getWidth</span><span class="p">())</span><span class="o">/</span><span class="mi">2</span><span class="p">);</span>
-        <span class="n">imageRect</span><span class="o">.</span><span class="n">setY</span><span class="p">(</span><span class="n">subtitleRect</span><span class="o">.</span><span class="n">getY</span><span class="p">()</span><span class="o">+</span><span class="n">subtitleRect</span><span class="o">.</span><span class="n">getHeight</span><span class="p">());</span>
-        <span class="n">image</span><span class="o">.</span><span class="n">setRectangle</span><span class="p">(</span><span class="n">imageRect</span><span class="p">);</span>
+<img alt="image2" src="image/demo8_slide.bmp" />   </p>
+<p><strong>Code Introduction</strong>  </p>
+<p>There code of this demo is very simple. First, we load the presentation document, and extract the metadata with Simple ODF API. Second, we invoke the web service to generate the bar code image and get the URI of this image.    </p>
+<p>Finally, we get the subtitle text box in the first slide, add an image just below of this subtitle text box. Please note how FrameRectangle is used to specify the image position.    </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">load</span> <span class="n">the</span> <span class="n">presentation</span>
+        <span class="n">PresentationDocument</span> <span class="n">presentation</span> <span class="p">=</span> <span class="n">PresentationDocument</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">odp</span>&quot;<span class="p">);</span>
+        <span class="o">//</span><span class="n">get</span> <span class="n">the</span> <span class="n">metadata</span>
+        <span class="n">Meta</span> <span class="n">metaData</span> <span class="p">=</span> <span class="n">new</span> <span class="n">Meta</span><span class="p">(</span><span class="n">presentation</span><span class="p">.</span><span class="n">getMetaDom</span><span class="p">());</span>
+        <span class="n">String</span> <span class="n">creator</span> <span class="p">=</span> <span class="n">metaData</span><span class="p">.</span><span class="n">getCreator</span><span class="p">();</span>
+        <span class="n">String</span> <span class="n">mailto</span> <span class="p">=</span> <span class="n">metaData</span><span class="p">.</span><span class="n">getUserDefinedDataValue</span><span class="p">(</span>&quot;<span class="n">Email</span>&quot;<span class="p">);</span>
+        <span class="n">String</span> <span class="n">phoneno</span> <span class="p">=</span> <span class="n">metaData</span><span class="p">.</span><span class="n">getUserDefinedDataValue</span><span class="p">(</span>&quot;<span class="n">Phone</span>&quot;<span class="p">);</span>
+
+        <span class="o">//</span><span class="n">invoke</span> <span class="n">the</span> 2<span class="n">D</span> <span class="n">barcode</span> <span class="n">service</span><span class="p">,</span> <span class="n">and</span> <span class="n">get</span> <span class="n">the</span> <span class="n">url</span>
+        <span class="n">BarcodeImageGeneration</span> <span class="n">demo</span> <span class="p">=</span> <span class="n">new</span> <span class="n">BarcodeImageGeneration</span><span class="p">();</span>
+        <span class="n">String</span> <span class="n">url</span> <span class="p">=</span> <span class="n">demo</span><span class="p">.</span><span class="n">invokepost</span><span class="p">(</span><span class="n">creator</span><span class="p">,</span><span class="n">mailto</span><span class="p">,</span><span class="n">phoneno</span><span class="p">);</span>
+
+        <span class="o">//</span><span class="n">Add</span> <span class="n">the</span> <span class="n">image</span> <span class="n">to</span> <span class="n">the</span> <span class="n">first</span> <span class="n">slide</span>
+        <span class="n">Slide</span> <span class="n">slide</span> <span class="p">=</span> <span class="n">presentation</span><span class="p">.</span><span class="n">getSlideByIndex</span><span class="p">(</span>0<span class="p">);</span>
+        <span class="n">Textbox</span> <span class="n">subtitleBox</span> <span class="p">=</span> <span class="n">slide</span><span class="p">.</span><span class="n">getTextboxByUsage</span><span class="p">(</span><span class="n">PresentationClass</span><span class="p">.</span><span class="n">SUBTITLE</span><span class="p">).</span><span class="n">get</span><span class="p">(</span>0<span class="p">);</span>
+        <span class="n">FrameRectangle</span> <span class="n">subtitleRect</span> <span class="p">=</span> <span class="n">subtitleBox</span><span class="p">.</span><span class="n">getRectangle</span><span class="p">();</span>
+        <span class="n">Image</span> <span class="n">image</span> <span class="p">=</span> <span class="n">Image</span><span class="p">.</span><span class="n">newImage</span><span class="p">(</span><span class="n">slide</span><span class="p">,</span> <span class="n">new</span> <span class="n">URI</span><span class="p">(</span><span class="n">url</span><span class="p">));</span>
+        <span class="n">FrameRectangle</span> <span class="n">imageRect</span> <span class="p">=</span> <span class="n">image</span><span class="p">.</span><span class="n">getRectangle</span><span class="p">();</span>
+        <span class="n">imageRect</span><span class="p">.</span><span class="n">setX</span><span class="p">(</span><span class="n">subtitleRect</span><span class="p">.</span><span class="n">getX</span><span class="p">()</span><span class="o">+</span><span class="p">(</span><span class="n">subtitleRect</span><span class="p">.</span><span class="n">getWidth</span><span class="p">()</span><span class="o">-</span><span class="n">imageRect</span><span class="p">.</span><span class="n">getWidth</span><span class="p">())</span><span class="o">/</span>2<span class="p">);</span>
+        <span class="n">imageRect</span><span class="p">.</span><span class="n">setY</span><span class="p">(</span><span class="n">subtitleRect</span><span class="p">.</span><span class="n">getY</span><span class="p">()</span><span class="o">+</span><span class="n">subtitleRect</span><span class="p">.</span><span class="n">getHeight</span><span class="p">());</span>
+        <span class="n">image</span><span class="p">.</span><span class="n">setRectangle</span><span class="p">(</span><span class="n">imageRect</span><span class="p">);</span>
 
-        <span class="n">presentation</span><span class="o">.</span><span class="n">save</span><span class="p">(</span><span class="s">&quot;output.odp&quot;</span><span class="p">);</span>
+        <span class="n">presentation</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">odp</span>&quot;<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><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.5</a>. <br />
 You can download the code of this demo from <a href="TwoDBarcodeDemo.zip">here</a>.<br />
 The dependent library jslib.zip can be downloaded from <a href="http://puzzle.dl.sourceforge.net/sourceforge/xulmaker/jslib.zip">here</a>.</p>