poi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ye...@apache.org
Subject svn commit: r1423805 [4/18] - in /poi/site/publish: ./ hdgf/ hmef/ hpbf/ hpsf/ hsmf/ hwpf/ images/ oxml4j/ poifs/ poifs/images/ resources/ resources/images/ skin/ skin/css/ skin/images/ slideshow/ spreadsheet/ spreadsheet/images/
Date Wed, 19 Dec 2012 09:27:39 GMT
Added: poi/site/publish/hdgf/index.html
URL: http://svn.apache.org/viewvc/poi/site/publish/hdgf/index.html?rev=1423805&view=auto
==============================================================================
--- poi/site/publish/hdgf/index.html (added)
+++ poi/site/publish/hdgf/index.html Wed Dec 19 09:27:20 2012
@@ -0,0 +1,263 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<!--*** This is a generated file.  Do not edit.  ***-->
+<link rel="stylesheet" href="../skin/tigris.css" type="text/css">
+<link rel="stylesheet" href="../skin/mysite.css" type="text/css">
+<link rel="stylesheet" href="../skin/site.css" type="text/css">
+<link media="print" rel="stylesheet" href="../skin/print.css" type="text/css">
+<title>POI-HDGF - Java API To Access Microsoft Visio Format Files</title>
+</head>
+<body bgcolor="white" class="composite">
+<!--================= start Banner ==================-->
+<div id="banner">
+<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0">
+<tbody>
+<tr>
+<!--================= start Group Logo ==================-->
+<td width="50%" align="left">
+<div class="groupLogo">
+<a href="http://poi.apache.org"><img border="0" class="logoImage" alt="Apache POI" src="../resources/images/group-logo.jpg"></a>
+</div>
+</td>
+<!--================= end Group Logo ==================-->
+<!--================= start Project Logo ==================--><td width="50%" align="right">
+<div align="right" class="projectLogo">
+<a href="http://poi.apache.org/"><img border="0" class="logoImage" alt="POI" src="../resources/images/project-logo.jpg"></a>
+</div>
+</td>
+<!--================= end Project Logo ==================-->
+</tr>
+</tbody>
+</table>
+</div>
+<!--================= end Banner ==================-->
+<!--================= start Main ==================-->
+<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs">
+<tbody>
+<!--================= start Status ==================-->
+<tr class="status">
+<td>
+<!--================= start BreadCrumb ==================--><a href="http://www.apache.org/">Apache</a> | <a href="http://poi.apache.org/">POI</a><a href=""></a>
+<!--================= end BreadCrumb ==================--></td><td id="tabs">
+<!--================= start Tabs ==================-->
+<div class="tab">
+<span class="selectedTab"><a class="base-selected" href="../index.html">Home</a></span> | <script language="Javascript" type="text/javascript">
+function printit() {  
+if (window.print) {
+    window.print() ;  
+} else {
+    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
+document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
+    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
+}
+}
+</script><script language="Javascript" type="text/javascript">
+var NS = (navigator.appName == "Netscape");
+var VERSION = parseInt(navigator.appVersion);
+if (VERSION > 3) {
+    document.write('  <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>');
+}
+</script>
+</div>
+<!--================= end Tabs ==================-->
+</td>
+</tr>
+</tbody>
+</table>
+<!--================= end Status ==================-->
+<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0">
+<tbody>
+<tr valign="top">
+<!--================= start Menu ==================-->
+<td id="leftcol">
+<div id="navcolumn">
+<div class="menuBar">
+<div class="menu">
+<span class="menuLabel">Apache POI</span>
+<div class="menuItem">
+<a href="../index.html">Top</a>
+</div>
+</div>
+<div class="menu">
+<span class="menuLabel">HDGF</span>
+<div class="menuItem">
+<span class="menuSelected">Overview</span>
+</div>
+</div>
+</div>
+</div>
+<form target="_blank" action="http://www.google.com/search" method="get">
+<table summary="search" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap">
+                          Search Apache POI<br>
+<input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td colspan="3"><img height="7" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td>
+</tr>
+</table>
+</form>
+</td>
+<!--================= end Menu ==================-->
+<!--================= start Content ==================--><td>
+<div id="bodycol">
+<div class="app">
+<div align="center">
+<h1>POI-HDGF - Java API To Access Microsoft Visio Format Files</h1>
+</div>
+<div class="h3">
+    
+
+    
+        
+<a name="Overview"></a>
+<div class="h3">
+<h3>Overview</h3>
+</div>
+            
+
+            
+<p>HDGF is the POI Project's pure Java implementation of the Visio file format.</p>
+            
+<p>Currently, HDGF provides a low-level, read-only api for 
+              accessing Visio documents. It also provides a 
+              <a href="http://svn.apache.org/repos/asf/poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/extractor/">way</a>
+              to extract the textual content from a file.
+            </p>
+			
+<p>At this time, there is no <em>usermodel</em> api or similar,
+			 only low level access to the streams, chunks and chunk commands.
+			 Users are advised to check the unit tests to see how everything
+			 works. They are also well advised to read the documentation
+			 supplied with 
+			 <a href="http://web.archive.org/web/20071212220759/http://www.gnome.ru/projects/vsdump_en.html">vsdump</a>
+			 to get a feel for how Visio files are structured.</p>
+			
+<p>To get a feel for the contents of a file, and to track down
+			 where data of interest is stored, HDGF comes with
+			 <a href="http://svn.apache.org/repos/asf/poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/dev/">VSDDumper</a>
+			 to print out the contents of the file. Users should also make
+			 use of 
+			 <a href="http://web.archive.org/web/20071212220759/http://www.gnome.ru/projects/vsdump_en.html">vsdump</a>
+			 to probe the structure of files.</p>
+            
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content"> 
+                This code currently lives the 
+                <a href="http://svn.apache.org/viewcvs.cgi/poi/trunk/src/scratchpad/">scratchpad area</a> 
+                of the POI SVN repository. 
+				Ensure that you have the scratchpad jar or the scratchpad 
+                build area in your
+				classpath before experimenting with this code.
+			</div>
+</div>
+
+			
+<a name="Steps+required+for+write+support"></a>
+<div class="h4">
+<h4>Steps required for write support</h4>
+</div>
+				
+				
+<p>Currently, HDGF is only able to read visio files, it is
+				 not able to write them back out again. We believe the
+				 following are the steps that would need to be taken to
+				 implement it.</p>
+				
+<ol>
+				 
+<li>Re-write the decompression support in LZW4HDGF as
+				  HDGFLZW, which will be much better documented, and also 
+				  under the ASL. <strong>Completed October 2007</strong>
+</li>
+				 
+<li>Add compression support to HDGFLZW. 
+				  <strong>In progress - works for small streams but encoding
+               goes wrong on larger ones</strong>
+</li>
+				 
+<li>Have HDGF just write back the raw bytes it read in, and
+				  have a test to ensure the file is un-changed.</li>
+				 
+<li>Have HDGF generate the bytes to write out from the
+				  Stream stores, using the compressed data as appropriate,
+				  without re-compressing. Plus test to ensure file is
+				  un-changed.</li>
+				 
+<li>Have HDGF generate the bytes to write out from the
+				  Stream stores, re-compressing any streams that were 
+                  decompressed. Plus test to ensure file is un-changed.</li>
+				 
+<li>Have HDGF re-generate the offsets in pointers for the
+				  locations of the streams. Plus test to ensure file is
+				  un-changed.</li>
+				 
+<li>Have HDGF re-generate the bytes for all the chunks, from
+				  the chunk commands. Tests to ensure the chunks are 
+				  serialized properly, and then that the file is un-changed</li>
+				 
+<li>Alter the data of one command, but keep it the same
+				  length, and check visio can open the file when written 
+				  out.</li>
+				 
+<li>Alter the data of one command, to a new length, and
+				  check that visio can open the file when written out.</li>
+				
+</ol>
+			
+        
+    
+
+<div id="authors" align="right">by&nbsp;Nick Burch</div>
+</div>
+</div>
+</div>
+</td>
+<!--================= end Content ==================-->
+</tr>
+</tbody>
+</table>
+<!--================= end Main ==================-->
+<!--================= start Footer ==================-->
+<div id="footer">
+<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
+<tbody>
+<tr>
+<!--================= start Copyright ==================-->
+<td colspan="2">
+<div align="center">
+<div class="copyright">
+              Copyright &copy; 2002-2012&nbsp;The Apache Software Foundation. All rights reserved.<br>
+              Apache POI, POI, Apache, the Apache feather logo, and the Apache 
+              POI project logo are trademarks of The Apache Software Foundation.
+            </div>
+</div>
+</td>
+<!--================= end Copyright ==================-->
+</tr>
+<tr>
+<td align="left">
+<!--================= start Host ==================-->
+<!--================= end Host ==================--></td><td align="right">
+<!--================= start Credits ==================-->
+<div align="right">
+<div class="credit">
+<a href="http://validator.w3.org/check/referer"><img width="88" height="31" alt="Valid HTML 4.01!" src="../skin/images/valid-html401.png" class="logoImage"></a><a href="http://jigsaw.w3.org/css-validator/"><img width="88" height="31" alt="Valid CSS!" src="../skin/images/vcss.png" class="logoImage"></a><a href="http://forrest.apache.org/"><img border="0" class="logoImage" alt="Built with Apache Forrest" src="../skin/images/built-with-forrest-button.png" width="88" height="31"></a>
+</div>
+</div>
+<!--================= end Credits ==================-->
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!--================= end Footer ==================-->
+</body>
+</html>

Propchange: poi/site/publish/hdgf/index.html
------------------------------------------------------------------------------
    svn:executable = *

Added: poi/site/publish/hmef/index.html
URL: http://svn.apache.org/viewvc/poi/site/publish/hmef/index.html?rev=1423805&view=auto
==============================================================================
--- poi/site/publish/hmef/index.html (added)
+++ poi/site/publish/hmef/index.html Wed Dec 19 09:27:20 2012
@@ -0,0 +1,430 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<!--*** This is a generated file.  Do not edit.  ***-->
+<link rel="stylesheet" href="../skin/tigris.css" type="text/css">
+<link rel="stylesheet" href="../skin/mysite.css" type="text/css">
+<link rel="stylesheet" href="../skin/site.css" type="text/css">
+<link media="print" rel="stylesheet" href="../skin/print.css" type="text/css">
+<title>POI-HMEF - Java API To Access Microsoft Transport Neutral Encoding Files (TNEF)</title>
+</head>
+<body bgcolor="white" class="composite">
+<!--================= start Banner ==================-->
+<div id="banner">
+<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0">
+<tbody>
+<tr>
+<!--================= start Group Logo ==================-->
+<td width="50%" align="left">
+<div class="groupLogo">
+<a href="http://poi.apache.org"><img border="0" class="logoImage" alt="Apache POI" src="../resources/images/group-logo.jpg"></a>
+</div>
+</td>
+<!--================= end Group Logo ==================-->
+<!--================= start Project Logo ==================--><td width="50%" align="right">
+<div align="right" class="projectLogo">
+<a href="http://poi.apache.org/"><img border="0" class="logoImage" alt="POI" src="../resources/images/project-logo.jpg"></a>
+</div>
+</td>
+<!--================= end Project Logo ==================-->
+</tr>
+</tbody>
+</table>
+</div>
+<!--================= end Banner ==================-->
+<!--================= start Main ==================-->
+<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs">
+<tbody>
+<!--================= start Status ==================-->
+<tr class="status">
+<td>
+<!--================= start BreadCrumb ==================--><a href="http://www.apache.org/">Apache</a> | <a href="http://poi.apache.org/">POI</a><a href=""></a>
+<!--================= end BreadCrumb ==================--></td><td id="tabs">
+<!--================= start Tabs ==================-->
+<div class="tab">
+<span class="selectedTab"><a class="base-selected" href="../index.html">Home</a></span> | <script language="Javascript" type="text/javascript">
+function printit() {  
+if (window.print) {
+    window.print() ;  
+} else {
+    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
+document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
+    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
+}
+}
+</script><script language="Javascript" type="text/javascript">
+var NS = (navigator.appName == "Netscape");
+var VERSION = parseInt(navigator.appVersion);
+if (VERSION > 3) {
+    document.write('  <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>');
+}
+</script>
+</div>
+<!--================= end Tabs ==================-->
+</td>
+</tr>
+</tbody>
+</table>
+<!--================= end Status ==================-->
+<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0">
+<tbody>
+<tr valign="top">
+<!--================= start Menu ==================-->
+<td id="leftcol">
+<div id="navcolumn">
+<div class="menuBar">
+<div class="menu">
+<span class="menuLabel">Apache POI</span>
+<div class="menuItem">
+<a href="../index.html">Top</a>
+</div>
+</div>
+<div class="menu">
+<span class="menuLabel">HMEF</span>
+<div class="menuItem">
+<span class="menuSelected">Overview</span>
+</div>
+</div>
+</div>
+</div>
+<form target="_blank" action="http://www.google.com/search" method="get">
+<table summary="search" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap">
+                          Search Apache POI<br>
+<input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td colspan="3"><img height="7" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td>
+</tr>
+</table>
+</form>
+</td>
+<!--================= end Menu ==================-->
+<!--================= start Content ==================--><td>
+<div id="bodycol">
+<div class="app">
+<div align="center">
+<h1>POI-HMEF - Java API To Access Microsoft Transport Neutral Encoding Files (TNEF)</h1>
+</div>
+<div class="h3">
+    
+
+    
+       
+<a name="Overview"></a>
+<div class="h3">
+<h3>Overview</h3>
+</div>
+         
+
+         
+<p>HMEF is the POI Project's pure Java implementation of Microsoft's
+            TNEF (Transport Neurtral Encoding Format), aka winmail.dat,
+            which is used by Outlook and Exchange in some situations.</p>
+          
+<p>Currently, HMEF provides a read-only api for accessing common
+            message and attachment attributes, including the message body
+            and attachment files. In addition, it's possible to have 
+            read-only access to all of the underlying TNEF and MAPI 
+            attributes of the message and attachments.</p>
+          
+<p>HMEF also provides a command line tool for extracting out
+            the message body and attachment files from a TNEF (winmail.dat)
+            file.</p>
+
+        
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content"> 
+          This code currently lives the 
+          <a href="http://svn.apache.org/viewcvs.cgi/poi/trunk/src/scratchpad/">scratchpad area</a> 
+          of the POI SVN repository. 
+          Ensure that you have the scratchpad jar or the scratchpad 
+          build area in your classpath before experimenting with this code.
+        </div>
+</div>
+        
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content"> 
+          This code is a new POI feature, and the first release that will
+          contain it will be POI 3.8 beta 2. Until then, you will need to
+          build your own jars from a <a href="../subversion.html">svn
+          checkout</a>.
+        </div>
+</div>
+       
+
+       
+<a name="Using+HMEF+to+access+TNEF+%28winmail.dat%29+files"></a>
+<div class="h3">
+<h3>Using HMEF to access TNEF (winmail.dat) files</h3>
+</div>
+         
+
+         
+<a name="Easy+extraction+of+message+body+and+attachment+files"></a>
+<div class="h4">
+<h4>Easy extraction of message body and attachment files</h4>
+</div>
+           
+  
+           
+<p>The class <em>org.apache.poi.hmef.extractor.HMEFContentsExtractor</em>
+             provides both command line and Java extraction. It allows the
+             saving of the message body (an RTF file), and all of the 
+             attachment files, to a single directory as specified.</p>
+
+           
+<p>From the command line, simply call the class specifying the
+             TNEF file to extract, and the directory to place the extracted
+             files into, eg:</p>
+           
+<pre class="code">
+              java -classpath poi-3.8-FINAL.jar:poi-scratchpad-3.8-FINAL.jar org.apache.poi.hmef.extractor.HMEFContentsExtractor winmail.dat /tmp/extracted/
+           </pre>
+
+           
+<p>From Java, there are two method calls on the class, one to
+             extract the message body RTF to a file, and the other to extract
+             all the attachments to a directory. A typical use would be:</p>
+           
+<pre class="code">
+public void extract(String winmailFilename, String directoryName) throws Exception {
+   HMEFContentsExtractor ext = new HMEFContentsExtractor(new File(winmailFilename));
+      
+   File dir = new File(directoryName);
+   File rtf = new File(dir, "message.rtf");
+   if(! dir.exists()) {
+       throw new FileNotFoundException("Output directory " + dir.getName() + " not found");
+   }
+      
+   System.out.println("Extracting...");
+   ext.extractMessageBody(rtf);
+   ext.extractAttachments(dir);
+   System.out.println("Extraction completed");
+}
+           </pre>
+         
+  
+         
+<a name="Attachment+attributes+and+contents"></a>
+<div class="h4">
+<h4>Attachment attributes and contents</h4>
+</div>
+           
+  
+           
+<p>To get at your attachments, simply call the
+             <em>getAttachments()</em> method on a <em>HMEFMessage</em>
+             instance, and you'll receive a list of all the attachments.</p>
+           
+<p>When you have a <em>org.apache.poi.hmef.Attachment</em> object, 
+             there are several helper methods available. These will all
+             return the value of the appropriate underlying attachment
+             attributes, or null if for some reason the attribute isn't
+             present in your file.</p>
+           
+<ul>
+            
+<li>
+<em>getFilename()</em> - returns the name of the attachment
+              file, possibly in 8.3 format</li>
+            
+<li>
+<em>getLongFilename()</em> - returns the full name of the 
+              attachment file</li>
+            
+<li>
+<em>getExtension()</em> - returns the extension of the
+              attachment file, including the "."</li>
+            
+<li>
+<em>getModifiedDate()</em> - returns the date that the 
+              attachment file was last edited on</li>
+            
+<li>
+<em>getContents()</em> - returns a byte array of the contents
+              of the attached file</li>
+            
+<li>
+<em>getRenderedMetaFile()</em> - returns a byte array of 
+              a windows meta file representation of the attached file</li>
+           
+</ul>
+         
+  
+         
+<a name="Message+attributes+and+message+body"></a>
+<div class="h4">
+<h4>Message attributes and message body</h4>
+</div>
+           
+  
+           
+<p>A <em>org.apache.poi.hmef.HMEFMessage</em> instance is created
+             from an <em>InputStream</em> of the underlying TNEF (winmail.dat)
+             file.</p>
+           
+<p>From a <em>HMEFMessage</em>, there are three main methods of
+            interest to call:</p>
+           
+<ul>
+             
+<li>
+<em>getBody()</em> - returns a String containing the RTF
+               contents of the message body. </li>
+             
+<li>
+<em>getSubject()</em> - returns the message subject</li>
+             
+<li>
+<em>getAttachments()</em> - returns the list of 
+               <em>Attachment</em> objects for the message</li>
+           
+</ul>
+         
+  
+         
+<a name="Low+level+attribute+access"></a>
+<div class="h4">
+<h4>Low level attribute access</h4>
+</div>
+           
+  
+           
+<p>Both Messages and Attachments contain two kinds of attributes.
+             These are <em>TNEFAttribute</em> and <em>MAPIAttribute</em>.</p>
+           
+<p>TNEFAttribute is specific to TNEF files in terms of the 
+             available types and properties. In general, Attachments have a
+             few more useful ones of these then Messages.</p>
+           
+<p>MAPIAttributes hold standard MAPI properties and values, and
+             work in a similar way to <a href="../hsmf/">HSMF 
+             (Outlook)</a> does. There are typically many of these on both
+             Messages and Attachments. <em>Note - see limitations</em>
+</p>
+           
+<p>Both <em>HMEFMessage</em> and <em>Attachment</em> supports
+             support two different ways of getting to attributes of interest.
+             Firstly, they support list getters, to return all attributes
+             (either TNEF or MAPI). Secondly, they support specific getters by
+             TNEF or MAPI property.</p>
+           
+<pre class="code">
+HMEFMessage msg = new HMEFMessage(new FileInputStream(file));
+for(TNEFAttribute attr : msg.getMessageAttributes) {
+   System.out.println("TNEF : " + attr);
+}
+for(MAPIAttribute attr : msg.getMessageMAPIAttributes) {
+   System.out.println("MAPI : " + attr);
+}
+System.out.println("Subject is " + msg.getMessageMAPIAttribute(MAPIProperty.CONVERSATION_TOPIC));
+
+for(Attachment attach : msg.getAttachments()) {
+   for(TNEFAttribute attr : attach.getAttributes) {
+      System.out.println("A.TNEF : " + attr);
+   }
+   for(MAPIAttribute attr : attach.getMAPIAttributes) {
+      System.out.println("A.MAPI : " + attr);
+   }
+   System.out.println("Filename is " + attach.getAttribute(TNEFProperty.CID_ATTACHTITLE));
+   System.out.println("Extension is " + attach.getMAPIAttribute(MAPIProperty.ATTACH_EXTENSION));
+}
+           </pre>
+         
+       
+
+       
+<a name="Investigating+a+TNEF+file"></a>
+<div class="h3">
+<h3>Investigating a TNEF file</h3>
+</div>
+         
+
+			
+<p>To get a feel for the contents of a file, and to track down
+			 where data of interest is stored, HMEF comes with
+			 <a href="http://svn.apache.org/repos/asf/poi/trunk/src/scratchpad/src/org/apache/poi/hmef/dev/">HMEFDumper</a>
+			 to print out the contents of the file.</p>
+       
+
+       
+<a name="Limitations"></a>
+<div class="h3">
+<h3>Limitations</h3>
+</div>
+         
+
+          
+<p>HMEF is currently a work-in-progress, and not everything
+            works yet. The current limitations are:</p>
+          
+<ul>
+            
+<li>Non-standard MAPI properties from the range 0x8000 to 0x8fff
+              may not be being quite correctly turned into attributes. 
+              The values show up, but the name and type may not always
+              be correct.</li>
+            
+<li>All testing so far has been performed on a small number of
+              English documents. We think we're correctly turning bytes into
+              Java unicode strings, but we need a few non-English sample
+              files in the test suite to verify this!</li>
+          
+</ul>
+       
+    
+
+<div id="authors" align="right">by&nbsp;Nick Burch</div>
+</div>
+</div>
+</div>
+</td>
+<!--================= end Content ==================-->
+</tr>
+</tbody>
+</table>
+<!--================= end Main ==================-->
+<!--================= start Footer ==================-->
+<div id="footer">
+<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
+<tbody>
+<tr>
+<!--================= start Copyright ==================-->
+<td colspan="2">
+<div align="center">
+<div class="copyright">
+              Copyright &copy; 2002-2012&nbsp;The Apache Software Foundation. All rights reserved.<br>
+              Apache POI, POI, Apache, the Apache feather logo, and the Apache 
+              POI project logo are trademarks of The Apache Software Foundation.
+            </div>
+</div>
+</td>
+<!--================= end Copyright ==================-->
+</tr>
+<tr>
+<td align="left">
+<!--================= start Host ==================-->
+<!--================= end Host ==================--></td><td align="right">
+<!--================= start Credits ==================-->
+<div align="right">
+<div class="credit">
+<a href="http://validator.w3.org/check/referer"><img width="88" height="31" alt="Valid HTML 4.01!" src="../skin/images/valid-html401.png" class="logoImage"></a><a href="http://jigsaw.w3.org/css-validator/"><img width="88" height="31" alt="Valid CSS!" src="../skin/images/vcss.png" class="logoImage"></a><a href="http://forrest.apache.org/"><img border="0" class="logoImage" alt="Built with Apache Forrest" src="../skin/images/built-with-forrest-button.png" width="88" height="31"></a>
+</div>
+</div>
+<!--================= end Credits ==================-->
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!--================= end Footer ==================-->
+</body>
+</html>

Propchange: poi/site/publish/hmef/index.html
------------------------------------------------------------------------------
    svn:executable = *

Added: poi/site/publish/howtobuild.html
URL: http://svn.apache.org/viewvc/poi/site/publish/howtobuild.html?rev=1423805&view=auto
==============================================================================
--- poi/site/publish/howtobuild.html (added)
+++ poi/site/publish/howtobuild.html Wed Dec 19 09:27:20 2012
@@ -0,0 +1,431 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<!--*** This is a generated file.  Do not edit.  ***-->
+<link rel="stylesheet" href="skin/tigris.css" type="text/css">
+<link rel="stylesheet" href="skin/mysite.css" type="text/css">
+<link rel="stylesheet" href="skin/site.css" type="text/css">
+<link media="print" rel="stylesheet" href="skin/print.css" type="text/css">
+<title>Apache POI - How To Build</title>
+</head>
+<body bgcolor="white" class="composite">
+<!--================= start Banner ==================-->
+<div id="banner">
+<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0">
+<tbody>
+<tr>
+<!--================= start Group Logo ==================-->
+<td width="50%" align="left">
+<div class="groupLogo">
+<a href="http://poi.apache.org"><img border="0" class="logoImage" alt="Apache POI" src="resources/images/group-logo.jpg"></a>
+</div>
+</td>
+<!--================= end Group Logo ==================-->
+<!--================= start Project Logo ==================--><td width="50%" align="right">
+<div align="right" class="projectLogo">
+<a href="http://poi.apache.org/"><img border="0" class="logoImage" alt="POI" src="resources/images/project-logo.jpg"></a>
+</div>
+</td>
+<!--================= end Project Logo ==================-->
+</tr>
+</tbody>
+</table>
+</div>
+<!--================= end Banner ==================-->
+<!--================= start Main ==================-->
+<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs">
+<tbody>
+<!--================= start Status ==================-->
+<tr class="status">
+<td>
+<!--================= start BreadCrumb ==================--><a href="http://www.apache.org/">Apache</a> | <a href="http://poi.apache.org/">POI</a><a href=""></a>
+<!--================= end BreadCrumb ==================--></td><td id="tabs">
+<!--================= start Tabs ==================-->
+<div class="tab">
+<span class="selectedTab"><a class="base-selected" href="index.html">Home</a></span> | <script language="Javascript" type="text/javascript">
+function printit() {  
+if (window.print) {
+    window.print() ;  
+} else {
+    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
+document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
+    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
+}
+}
+</script><script language="Javascript" type="text/javascript">
+var NS = (navigator.appName == "Netscape");
+var VERSION = parseInt(navigator.appVersion);
+if (VERSION > 3) {
+    document.write('  <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>');
+}
+</script>
+</div>
+<!--================= end Tabs ==================-->
+</td>
+</tr>
+</tbody>
+</table>
+<!--================= end Status ==================-->
+<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0">
+<tbody>
+<tr valign="top">
+<!--================= start Menu ==================-->
+<td id="leftcol">
+<div id="navcolumn">
+<div class="menuBar">
+<div class="menu">
+<span class="menuLabel">Overview</span>
+        
+<div class="menuItem">
+<a href="index.html">Home</a>
+</div>
+        
+<div class="menuItem">
+<a href="download.html">Download</a>
+</div>
+        
+<div class="menuItem">
+<a href="overview.html">Components</a>
+</div>
+        
+<div class="menuItem">
+<a href="text-extraction.html">Text Extraction</a>
+</div>
+        
+<div class="menuItem">
+<a href="encryption.html">Encryption support</a>
+</div>
+        
+<div class="menuItem">
+<a href="casestudies.html">Case Studies</a>
+</div>
+        
+<div class="menuItem">
+<a href="legal.html">Legal</a>
+</div>
+    
+</div>
+<div class="menu">
+<span class="menuLabel">Help</span>
+        
+<div class="menuItem">
+<a href="apidocs/index.html">Javadocs</a>
+</div>
+        
+<div class="menuItem">
+<a href="faq.html">FAQ</a>
+</div>
+        
+<div class="menuItem">
+<a href="mailinglists.html">Mailing Lists</a>
+</div>
+        
+<div class="menuItem">
+<a href="http://issues.apache.org/bugzilla/buglist.cgi?product=POI">Bug Database</a>
+</div>
+        
+<div class="menuItem">
+<a href="changes.html">Changes Log</a>
+</div>
+    
+</div>
+<div class="menu">
+<span class="menuLabel">Getting Involved</span>
+        
+<div class="menuItem">
+<a href="subversion.html">Subversion Repository</a>
+</div>
+        
+<div class="menuItem">
+<span class="menuSelected">How To Build</span>
+</div>
+        
+<div class="menuItem">
+<a href="guidelines.html">Contribution Guidelines</a>
+</div>
+        
+<div class="menuItem">
+<a href="who.html">Who We Are</a>
+</div>
+    
+</div>
+<div class="menu">
+<span class="menuLabel">Component APIs</span>
+        
+<div class="menuItem">
+<a href="spreadsheet/index.html">Excel (SS=HSSF+XSSF)</a>
+</div>
+        
+<div class="menuItem">
+<a href="hwpf/index.html">Word (HWPF+XWPF)</a>
+</div>
+        
+<div class="menuItem">
+<a href="slideshow/index.html">PowerPoint (HSLF+XSLF)</a>
+</div>
+        
+<div class="menuItem">
+<a href="oxml4j/index.html">OpenXML4J (OOXML)</a>
+</div>
+        
+<div class="menuItem">
+<a href="poifs/index.html">OLE2 Filesystem (POIFS)</a>
+</div>
+        
+<div class="menuItem">
+<a href="hpsf/index.html">OLE2 Document Props (HPSF)</a>
+</div>
+        
+<div class="menuItem">
+<a href="hsmf/index.html">Outlook (HSMF)</a>
+</div>
+        
+<div class="menuItem">
+<a href="hdgf/index.html">Visio (HDGF)</a>
+</div>
+        
+<div class="menuItem">
+<a href="hmef/index.html">TNEF (HMEF)</a>
+</div>
+        
+<div class="menuItem">
+<a href="hpbf/index.html">Publisher (HPBF)</a>
+</div>
+    
+</div>
+<div class="menu">
+<span class="menuLabel">Apache Wide</span>
+        
+<div class="menuItem">
+<a href="http://www.apache.org/">Apache Software Foundation</a>
+</div>
+        
+<div class="menuItem">
+<a href="http://www.apache.org/licenses/">License</a>
+</div>
+        
+<div class="menuItem">
+<a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
+</div>
+        
+<div class="menuItem">
+<a href="http://www.apache.org/foundation/thanks.html">Thanks</a>
+</div>
+        
+<div class="menuItem">
+<a href="http://www.apache.org/security/">Security</a>
+</div>
+    
+</div>
+</div>
+</div>
+<form target="_blank" action="http://www.google.com/search" method="get">
+<table summary="search" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<td><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap">
+                          Search Apache POI<br>
+<input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"></td><td><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td colspan="3"><img height="7" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td>
+</tr>
+</table>
+</form>
+</td>
+<!--================= end Menu ==================-->
+<!--================= start Content ==================--><td>
+<div id="bodycol">
+<div class="app">
+<div align="center">
+<h1>Apache POI - How To Build</h1>
+</div>
+<div class="h3">
+    
+    
+        
+<a name="JDK+Version"></a>
+<div class="h3">
+<h3>JDK Version</h3>
+</div>
+          
+          
+<p>
+            POI 3.5 and later requires the JDK version 1.5 or later.
+            Versions prior to 3.5 require JDK 1.4+
+          </p>
+        
+        
+<a name="Install+Apache+Ant"></a>
+<div class="h3">
+<h3>Install Apache Ant</h3>
+</div>
+            
+            
+<p>
+                The POI build system requires <a href="http://ant.apache.org/bindownload.cgi">Apache Ant</a>
+            
+</p>
+            
+<p>
+                Specifically the build has been tested to work with Ant version
+                1.7.1.  To install the product download the distribution and follow the instructions.
+	    </p>
+	    
+<p>
+	        Remember to set the ANT_HOME environment variable and add ANT_HOME/bin
+                to your shell's PATH.
+            </p>
+        
+        
+<a name="Install+JUnit"></a>
+<div class="h3">
+<h3>Install JUnit</h3>
+</div>
+            
+            
+<p>
+                Running unit tests and building a distribution requires <a href="http://www.junit.org/">JUnit</a>.
+            </p>
+            
+<p>
+                Just pick the latest versions of the jars from 
+		<a href="http://sourceforge.net/projects/junit/files/junit/">SourceForge</a> and place
+                them in ANT_HOME/lib. Make sure that optional.jar is in ANT_HOME/lib.
+            </p>
+        
+        
+<a name="Install+Apache+Forrest"></a>
+<div class="h3">
+<h3>Install Apache Forrest</h3>
+</div>
+            
+            
+<p>
+                The POI build system requires <a href="http://forrest.apache.org/">Apache Forrest</a> to build the documentation.
+            </p>
+            
+<p>
+                Specifically the build has been tested to work with Forrest 0.5. This is an old release which is available
+		<a href="http://archive.apache.org/dist/forrest/pre-0.6/">here</a>.
+	    </p>
+	    
+<p>
+	        Remember to set the FORREST_HOME environment variable.
+            </p>
+        
+        
+<a name="Building+Targets+with+Ant"></a>
+<div class="h3">
+<h3>Building Targets with Ant</h3>
+</div>
+            
+            
+<p>
+                The main targets of interest to our users are:
+            </p>
+            
+<table class="ForrestTable" cellspacing="1" cellpadding="4">
+                
+<tr class="b">
+                    
+<th colspan="1" rowspan="1">Ant Target</th>
+                    <th colspan="1" rowspan="1">Description</th>
+                
+</tr>
+                
+<tr class="a">
+                    
+<td colspan="1" rowspan="1">clean</td>
+                    <td colspan="1" rowspan="1">Erase all build work products (ie. everything in the
+                        build directory</td>
+                
+</tr>
+                
+<tr class="b">
+                    
+<td colspan="1" rowspan="1">compile</td>
+                    <td colspan="1" rowspan="1">Compiles all files from main, ooxml and scratchpad</td>
+                
+</tr>
+                
+<tr class="a">
+                    
+<td colspan="1" rowspan="1">test</td>
+                    <td colspan="1" rowspan="1">Run all unit tests from main, ooxml and scratchpad</td>
+                
+</tr>
+                
+<tr class="b">
+                    
+<td colspan="1" rowspan="1">jar</td>
+                    <td colspan="1" rowspan="1">Produce jar files</td>
+                
+</tr>
+                
+<tr class="a">
+                    
+<td colspan="1" rowspan="1">assemble</td>
+                    <td colspan="1" rowspan="1">Produce .zip and tar.gz distribution packages</td>
+                
+</tr>
+                
+<tr class="b">
+                    
+<td colspan="1" rowspan="1">docs</td>
+                    <td colspan="1" rowspan="1">Generate all documentation (Requires Apache Forrest)</td>
+                
+</tr>
+            
+</table>
+        
+    
+  
+
+<div id="authors" align="right">by&nbsp;Glen Stampoultzis,&nbsp;Tetsuya Kitahata,&nbsp;David Fisher</div>
+</div>
+</div>
+</div>
+</td>
+<!--================= end Content ==================-->
+</tr>
+</tbody>
+</table>
+<!--================= end Main ==================-->
+<!--================= start Footer ==================-->
+<div id="footer">
+<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
+<tbody>
+<tr>
+<!--================= start Copyright ==================-->
+<td colspan="2">
+<div align="center">
+<div class="copyright">
+              Copyright &copy; 2002-2012&nbsp;The Apache Software Foundation. All rights reserved.<br>
+              Apache POI, POI, Apache, the Apache feather logo, and the Apache 
+              POI project logo are trademarks of The Apache Software Foundation.
+            </div>
+</div>
+</td>
+<!--================= end Copyright ==================-->
+</tr>
+<tr>
+<td align="left">
+<!--================= start Host ==================-->
+<!--================= end Host ==================--></td><td align="right">
+<!--================= start Credits ==================-->
+<div align="right">
+<div class="credit"></div>
+</div>
+<!--================= end Credits ==================-->
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!--================= end Footer ==================-->
+</body>
+</html>

Propchange: poi/site/publish/howtobuild.html
------------------------------------------------------------------------------
    svn:executable = *

Added: poi/site/publish/hpbf/file-format.html
URL: http://svn.apache.org/viewvc/poi/site/publish/hpbf/file-format.html?rev=1423805&view=auto
==============================================================================
--- poi/site/publish/hpbf/file-format.html (added)
+++ poi/site/publish/hpbf/file-format.html Wed Dec 19 09:27:20 2012
@@ -0,0 +1,374 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<!--*** This is a generated file.  Do not edit.  ***-->
+<link rel="stylesheet" href="../skin/tigris.css" type="text/css">
+<link rel="stylesheet" href="../skin/mysite.css" type="text/css">
+<link rel="stylesheet" href="../skin/site.css" type="text/css">
+<link media="print" rel="stylesheet" href="../skin/print.css" type="text/css">
+<title>POI-HPBF - A Guide to the Publisher File Format</title>
+</head>
+<body bgcolor="white" class="composite">
+<!--================= start Banner ==================-->
+<div id="banner">
+<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0">
+<tbody>
+<tr>
+<!--================= start Group Logo ==================-->
+<td width="50%" align="left">
+<div class="groupLogo">
+<a href="http://poi.apache.org"><img border="0" class="logoImage" alt="Apache POI" src="../resources/images/group-logo.jpg"></a>
+</div>
+</td>
+<!--================= end Group Logo ==================-->
+<!--================= start Project Logo ==================--><td width="50%" align="right">
+<div align="right" class="projectLogo">
+<a href="http://poi.apache.org/"><img border="0" class="logoImage" alt="POI" src="../resources/images/project-logo.jpg"></a>
+</div>
+</td>
+<!--================= end Project Logo ==================-->
+</tr>
+</tbody>
+</table>
+</div>
+<!--================= end Banner ==================-->
+<!--================= start Main ==================-->
+<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs">
+<tbody>
+<!--================= start Status ==================-->
+<tr class="status">
+<td>
+<!--================= start BreadCrumb ==================--><a href="http://www.apache.org/">Apache</a> | <a href="http://poi.apache.org/">POI</a><a href=""></a>
+<!--================= end BreadCrumb ==================--></td><td id="tabs">
+<!--================= start Tabs ==================-->
+<div class="tab">
+<span class="selectedTab"><a class="base-selected" href="../index.html">Home</a></span> | <script language="Javascript" type="text/javascript">
+function printit() {  
+if (window.print) {
+    window.print() ;  
+} else {
+    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
+document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
+    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
+}
+}
+</script><script language="Javascript" type="text/javascript">
+var NS = (navigator.appName == "Netscape");
+var VERSION = parseInt(navigator.appVersion);
+if (VERSION > 3) {
+    document.write('  <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>');
+}
+</script>
+</div>
+<!--================= end Tabs ==================-->
+</td>
+</tr>
+</tbody>
+</table>
+<!--================= end Status ==================-->
+<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0">
+<tbody>
+<tr valign="top">
+<!--================= start Menu ==================-->
+<td id="leftcol">
+<div id="navcolumn">
+<div class="menuBar">
+<div class="menu">
+<span class="menuLabel">Apache POI</span>
+<div class="menuItem">
+<a href="../index.html">Top</a>
+</div>
+</div>
+<div class="menu">
+<span class="menuLabel">HPBF</span>
+<div class="menuItem">
+<a href="index.html">Overview</a>
+</div>
+<div class="menuItem">
+<a href="file-format.xml">File Format</a>
+</div>
+</div>
+</div>
+</div>
+<form target="_blank" action="http://www.google.com/search" method="get">
+<table summary="search" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap">
+                          Search Apache POI<br>
+<input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td colspan="3"><img height="7" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td>
+</tr>
+</table>
+</form>
+</td>
+<!--================= end Menu ==================-->
+<!--================= start Content ==================--><td>
+<div id="bodycol">
+<div class="app">
+<div align="center">
+<h1>POI-HPBF - A Guide to the Publisher File Format</h1>
+</div>
+<div class="h3">
+    
+
+    
+        
+<a name="Document+Streams"></a>
+<div class="h3">
+<h3>Document Streams</h3>
+</div>
+		
+<p>
+		The file is made up of a number of POIFS streams. A typical
+        file will be made up as follows:
+		</p>
+
+<pre class="code">
+Root Entry -
+  Objects -
+    (no children)
+  SummaryInformation &lt;(0x05)SummaryInformation&gt;
+  DocumentSummaryInformation &lt;(0x05)DocumentSummaryInformation&gt;
+  Escher -
+    EscherStm
+    EscherDelayStm
+  Quill -
+    QuillSub -
+      CONTENTS
+      CompObj &lt;(0x01)CompObj&gt;
+  Envelope
+  Contents
+  Internal &lt;(0x03)Internal&gt;
+  CompObj &lt;(0x01)CompObj&gt;
+  VBA -
+    (no children)
+</pre>
+		
+        
+<a name="Changing+Text"></a>
+<div class="h3">
+<h3>Changing Text</h3>
+</div>
+		
+<p>If you make a change to the text of a file, but not change
+          how much text there is, then the <em>CONTENTS</em> stream
+          will undergo a small change, and the <em>Contents</em> stream
+          will undergo a large change.</p>
+        
+<p>If you make a change to the text of a file, and change the
+          amount of text there is, then both the <em>Contents</em> and
+          the <em>CONTENTS</em> streams change.</p>
+		
+        
+<a name="Changing+Shapes"></a>
+<div class="h3">
+<h3>Changing Shapes</h3>
+</div>
+        
+<p>If you alter the size of a textbox, but make no text changes,
+          then both <em>Contents</em> and <em>CONTENTS</em> streams
+          change. There are no changes to the Escher streams.</p>
+        
+<p>If you set the background colour of a textbox, but make
+          no changes to the text, (to finish off)</p>
+		
+        
+<a name="Structure+of+CONTENTS"></a>
+<div class="h3">
+<h3>Structure of CONTENTS</h3>
+</div>
+        
+<p>First we have "CHNKINK ", followed by 24 bytes.</p>
+        
+<p>Next we have 20 sequences of 24 bytes each. If the first two bytes
+         at 0x1800, then that sequence entry exists, but if it's 0x0000 then
+         the entry doesn't exist. If it does exist, we then have 4 bytes of
+         upper case ASCII text, followed by three little endian shorts.
+         The first of these seems to be the count of that type, the second is
+         usually 1, the third is usually zero. The we have another 4 bytes of
+         upper case ASCII text, normally but not always the same as the first
+         text. Finally, we have an unsigned little endian 32 bit offset to
+         the start of the data for this, then an unsigned little endian
+         32 bit offset of the length of this section.</p>
+        
+<p>Normally, the first sequence entry is for TEXT, and the text data
+         will start at 0x200. After that is normally two or three STSH entries
+         (so the first short has values 0, then 1, then 2). After that it
+         seems to vary.</p>
+        
+<p>At 0x200 we have the text, stored as little endian 16 bit unicode.</p>
+        
+<p>After the text comes all sorts of other stuff, presumably as 
+         described by the sequences.</p>
+        
+<p>For a contents stream of length 7168 / 0x1c00 bytes, the start 
+         looks something like:</p>
+
+<pre class="code">
+CHNKINK       // "CHNKINK "
+04 00 07 00   // Normally 04 00 07 00
+13 00 00 03   // Normally ## 00 00 03
+00 02 00 00   // Normally 00 ## 00 00
+00 1c 00 00   // Normally length of the stream
+f8 01 13 00   // Normally f8 01 11/13 00
+ff ff ff ff   // Normally seems to be ffffffff
+
+18 00 
+TEXT 00 00 01 00 00 00       // TEXT 0 1 0
+TEXT 00 02 00 00 d0 03 00 00 // TEXT from: 200 (512), len: 3d0 (976)
+18 00 
+STSH 00 00 01 00 00 00       // STSH 0 1 0
+STSH d0 05 00 00 1e 00 00 00 // STSH from: 5d0 (1488), len: 1e (30)
+18 00 
+STSH 01 00 01 00 00 00       // STSH 1 1 0
+STSH ee 05 00 00 b8 01 00 00 // STSH from: 5ee (1518), len: 1b8 (440)
+18 00 
+STSH 02 00 01 00 00 00       // STSH 2 1 0
+STSH a6 07 00 00 3c 00 00 00 // STSH from: 7a6 (1958), len: 3c (60)
+18 00 
+FDPP 00 00 01 00 00 00       // FDPP 0 1 0
+FDPP 00 08 00 00 00 02 00 00 // FDPP from: 800 (2048), len: 200 (512)
+18 00 
+FDPC 00 00 01 00 00 00       // FDPC 0 1 0
+FDPC 00 0a 00 00 00 02 00 00 // FDPC from: a00 (2560), len: 200 (512)
+18 00 
+FDPC 01 00 01 00 00 00       // FDPC 1 1 0
+FDPC 00 0c 00 00 00 02 00 00 // FDPC from: c00 (3072), len: 200 (512)
+18 00 
+SYID 00 00 01 00 00 00       // SYID 0 1 0
+SYID 00 0e 00 00 20 00 00 00 // SYID from: e00 (3584), len: 20 (32)
+18 00 
+SGP  00 00 01 00 00 00       // SGP  0 1 0
+SGP  20 0e 00 00 0a 00 00 00 // SGP  from: e20 (3616), len: a (10)
+18 00 
+INK  00 00 01 00 00 00       // INK  0 1 0
+INK  2a 0e 00 00 04 00 00 00 // INK  from: e2a (3626), len: 4 (4)
+18 00 
+BTEP 00 00 01 00 00 00       // BTEP 0 1 0
+PLC  2e 0e 00 00 18 00 00 00 // PLC  from: e2e (3630), len: 18 (24)
+18 00 
+BTEC 00 00 01 00 00 00       // BTEC 0 1 0
+PLC  46 0e 00 00 20 00 00 00 // PLC  from: e46 (3654), len: 20 (32)
+18 00 
+FONT 00 00 01 00 00 00       // FONT 0 1 0
+FONT 66 0e 00 00 48 03 00 00 // FONT from: e66 (3686), len: 348 (840)
+18 00 
+TCD  03 00 01 00 00 00       // TCD  3 1 0
+PLC  ae 11 00 00 24 00 00 00 // PLC  from: 11ae (4526), len: 24 (36)
+18 00 
+TOKN 04 00 01 00 00 00       // TOKN 4 1 0
+PLC  d2 11 00 00 0a 01 00 00 // PLC  from: 11d2 (4562), len: 10a (266)
+18 00 
+TOKN 05 00 01 00 00 00       // TOKN 5 1 0
+PLC  dc 12 00 00 2a 01 00 00 // PLC  from: 12dc (4828), len: 12a (298)
+18 00 
+STRS 00 00 01 00 00 00       // STRS 0 1 0
+PLC  06 14 00 00 46 00 00 00 // PLC  from: 1406 (5126), len: 46 (70)
+18 00 
+MCLD 00 00 01 00 00 00       // MCLD 0 1 0
+MCLD 4c 14 00 00 16 06 00 00 // MCLD from: 144c (5196), len: 616 (1558)
+18 00 
+PL   00 00 01 00 00 00       // PL   0 1 0
+PL   62 1a 00 00 48 00 00 00 // PL   from: 1a62 (6754), len: 48 (72)
+00 00                        // Blank entry follows
+00 00 00 00 00 00
+00 00 00 00 00 00 00 00 
+00 00 00 00 00 00 00 00
+
+(the text will then start)
+</pre>
+		
+<p>We think that the first 4 bytes of text describes the
+		 the function of the data at the offset. The first short is
+		 then the count of that type, eg the 2nd will have 1. We
+		 think that the second 4 bytes of text describes the format
+		 of data block at the offset. The format of the text block
+		 is easy, but we're still trying to figure out the others.</p>
+
+           
+<a name="Structure+of+TEXT+bit"></a>
+<div class="h4">
+<h4>Structure of TEXT bit</h4>
+</div>
+           
+<p>This is very simple. All the text for the document is
+            stored in a single bit of the Quill CONTENTS. The text
+            is stored as little endian 16 bit unicode strings.</p>
+           
+           
+<a name="Structure+of+PLC+bit"></a>
+<div class="h4">
+<h4>Structure of PLC bit</h4>
+</div>
+           
+<p>The first four bytes seem to hold the count of the 
+            entries in the bit, and the second four bytes seem to hold
+            the type. There is then some pre-data, and then data for
+            each of the entries, the exact format dependant on the type.</p>
+           
+<p>Type 0 has 4 2 byte unsigned ints, then a pair of 2 byte
+            unsigned ints for each entry.</p>
+           
+<p>Type 4 has 4 2 byte unsigned ints, then a pair of 4 byte
+            unsigned ints for each entry.</p>
+           
+<p>Type 8 has 7 2 byte unsigned ints, then a pair of 4 byte
+            unsigned ints for each entry.</p>
+           
+<p>Type 12 holds hyperlinks, and is very much more complex.
+            See <span class="codefrag">org.apache.poi.hpbf.model.qcbits.QCPLCBit</span>
+            for our best guess as to how the contents match up.</p>
+           
+		
+	
+
+<div id="authors" align="right">by&nbsp;Nick Burch</div>
+</div>
+</div>
+</div>
+</td>
+<!--================= end Content ==================-->
+</tr>
+</tbody>
+</table>
+<!--================= end Main ==================-->
+<!--================= start Footer ==================-->
+<div id="footer">
+<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
+<tbody>
+<tr>
+<!--================= start Copyright ==================-->
+<td colspan="2">
+<div align="center">
+<div class="copyright">
+              Copyright &copy; 2002-2012&nbsp;The Apache Software Foundation. All rights reserved.<br>
+              Apache POI, POI, Apache, the Apache feather logo, and the Apache 
+              POI project logo are trademarks of The Apache Software Foundation.
+            </div>
+</div>
+</td>
+<!--================= end Copyright ==================-->
+</tr>
+<tr>
+<td align="left">
+<!--================= start Host ==================-->
+<!--================= end Host ==================--></td><td align="right">
+<!--================= start Credits ==================-->
+<div align="right">
+<div class="credit"></div>
+</div>
+<!--================= end Credits ==================-->
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!--================= end Footer ==================-->
+</body>
+</html>

Propchange: poi/site/publish/hpbf/file-format.html
------------------------------------------------------------------------------
    svn:executable = *

Added: poi/site/publish/hpbf/file-format.xml
URL: http://svn.apache.org/viewvc/poi/site/publish/hpbf/file-format.xml?rev=1423805&view=auto
==============================================================================
Binary file - no diff available.

Propchange: poi/site/publish/hpbf/file-format.xml
------------------------------------------------------------------------------
    svn:executable = *

Propchange: poi/site/publish/hpbf/file-format.xml
------------------------------------------------------------------------------
    svn:mime-type = application/xml

Added: poi/site/publish/hpbf/index.html
URL: http://svn.apache.org/viewvc/poi/site/publish/hpbf/index.html?rev=1423805&view=auto
==============================================================================
--- poi/site/publish/hpbf/index.html (added)
+++ poi/site/publish/hpbf/index.html Wed Dec 19 09:27:20 2012
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<!--*** This is a generated file.  Do not edit.  ***-->
+<link rel="stylesheet" href="../skin/tigris.css" type="text/css">
+<link rel="stylesheet" href="../skin/mysite.css" type="text/css">
+<link rel="stylesheet" href="../skin/site.css" type="text/css">
+<link media="print" rel="stylesheet" href="../skin/print.css" type="text/css">
+<title>POI-HPBF - Java API To Access Microsoft Publisher Format Files</title>
+</head>
+<body bgcolor="white" class="composite">
+<!--================= start Banner ==================-->
+<div id="banner">
+<table width="100%" cellpadding="8" cellspacing="0" summary="banner" border="0">
+<tbody>
+<tr>
+<!--================= start Group Logo ==================-->
+<td width="50%" align="left">
+<div class="groupLogo">
+<a href="http://poi.apache.org"><img border="0" class="logoImage" alt="Apache POI" src="../resources/images/group-logo.jpg"></a>
+</div>
+</td>
+<!--================= end Group Logo ==================-->
+<!--================= start Project Logo ==================--><td width="50%" align="right">
+<div align="right" class="projectLogo">
+<a href="http://poi.apache.org/"><img border="0" class="logoImage" alt="POI" src="../resources/images/project-logo.jpg"></a>
+</div>
+</td>
+<!--================= end Project Logo ==================-->
+</tr>
+</tbody>
+</table>
+</div>
+<!--================= end Banner ==================-->
+<!--================= start Main ==================-->
+<table width="100%" cellpadding="0" cellspacing="0" border="0" summary="nav" id="breadcrumbs">
+<tbody>
+<!--================= start Status ==================-->
+<tr class="status">
+<td>
+<!--================= start BreadCrumb ==================--><a href="http://www.apache.org/">Apache</a> | <a href="http://poi.apache.org/">POI</a><a href=""></a>
+<!--================= end BreadCrumb ==================--></td><td id="tabs">
+<!--================= start Tabs ==================-->
+<div class="tab">
+<span class="selectedTab"><a class="base-selected" href="../index.html">Home</a></span> | <script language="Javascript" type="text/javascript">
+function printit() {  
+if (window.print) {
+    window.print() ;  
+} else {
+    var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH="0" HEIGHT="0" CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
+document.body.insertAdjacentHTML('beforeEnd', WebBrowser);
+    WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box    WebBrowser1.outerHTML = "";  
+}
+}
+</script><script language="Javascript" type="text/javascript">
+var NS = (navigator.appName == "Netscape");
+var VERSION = parseInt(navigator.appVersion);
+if (VERSION > 3) {
+    document.write('  <a title="PRINT this page OUT" href="javascript:printit()">PRINT</a>');
+}
+</script>
+</div>
+<!--================= end Tabs ==================-->
+</td>
+</tr>
+</tbody>
+</table>
+<!--================= end Status ==================-->
+<table id="main" width="100%" cellpadding="8" cellspacing="0" summary="" border="0">
+<tbody>
+<tr valign="top">
+<!--================= start Menu ==================-->
+<td id="leftcol">
+<div id="navcolumn">
+<div class="menuBar">
+<div class="menu">
+<span class="menuLabel">Apache POI</span>
+<div class="menuItem">
+<a href="../index.html">Top</a>
+</div>
+</div>
+<div class="menu">
+<span class="menuLabel">HPBF</span>
+<div class="menuItem">
+<span class="menuSelected">Overview</span>
+</div>
+<div class="menuItem">
+<a href="file-format.xml">File Format</a>
+</div>
+</div>
+</div>
+</div>
+<form target="_blank" action="http://www.google.com/search" method="get">
+<table summary="search" border="0" cellspacing="0" cellpadding="0">
+<tr>
+<td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td nowrap="nowrap">
+                          Search Apache POI<br>
+<input value="poi.apache.org" name="sitesearch" type="hidden"><input size="10" name="q" id="query" type="text"><img height="1" width="5" alt="" src="../skin/images/spacer.gif" class="spacer"><input name="Search" value="GO" type="submit"></td><td><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td colspan="3"><img height="7" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td>
+</tr>
+<tr>
+<td class="bottom-left-thick"></td><td bgcolor="#a5b6c6"><img height="1" width="1" alt="" src="../skin/images/spacer.gif" class="spacer"></td><td class="bottom-right-thick"></td>
+</tr>
+</table>
+</form>
+</td>
+<!--================= end Menu ==================-->
+<!--================= start Content ==================--><td>
+<div id="bodycol">
+<div class="app">
+<div align="center">
+<h1>POI-HPBF - Java API To Access Microsoft Publisher Format Files</h1>
+</div>
+<div class="h3">
+    
+
+    
+        
+<a name="Overview"></a>
+<div class="h3">
+<h3>Overview</h3>
+</div>
+            
+
+            
+<p>HPBF is the POI Project's pure Java implementation of the 
+			  Publisher file format.</p>
+            
+<p>Currently, HPBF is in an early stage, whilst we try to
+              figure out the file format. So far, we have basic text
+              extraction support, and are able to read some parts within
+              the file. Writing is not yet supported, as we are unable
+              to make sense of the Contents stream, which we think has
+              lots of offsets to other parts of the file.</p>
+            
+<p>Our initial aim is to provude a text extractor for the format
+              (now done), and be able to extract hyperlinks from within
+              the document (partly supported). Additional low level
+              code to process the file format may follow, if there
+              is demand and developer interest warrant it.</p>
+            
+<p>Text Extraction is available via the 
+              <em>org.apache.poi.hpbf.extractor.PublisherTextExtractor</em>
+              class.</p>
+            
+<p>At this time, there is no <em>usermodel</em> api or similar.
+              There is only low level support for certain parts of
+              the file, but by no means all of it.</p>
+            
+<p>Our current understanding of the file format is documented
+              <a href="file-format.html">here</a>.</p>
+            
+<div class="frame note">
+<div class="label">Note</div>
+<div class="content"> 
+                This code currently lives the 
+                <a href="http://svn.apache.org/viewcvs.cgi/poi/trunk/src/scratchpad/">scratchpad area</a> 
+                of the POI SVN repository. 
+				Ensure that you have the scratchpad jar or the scratchpad 
+                build area in your
+				classpath before experimenting with this code.
+			</div>
+</div>
+        
+    
+
+<div id="authors" align="right">by&nbsp;Nick Burch</div>
+</div>
+</div>
+</div>
+</td>
+<!--================= end Content ==================-->
+</tr>
+</tbody>
+</table>
+<!--================= end Main ==================-->
+<!--================= start Footer ==================-->
+<div id="footer">
+<table summary="footer" cellspacing="0" cellpadding="4" width="100%" border="0">
+<tbody>
+<tr>
+<!--================= start Copyright ==================-->
+<td colspan="2">
+<div align="center">
+<div class="copyright">
+              Copyright &copy; 2002-2012&nbsp;The Apache Software Foundation. All rights reserved.<br>
+              Apache POI, POI, Apache, the Apache feather logo, and the Apache 
+              POI project logo are trademarks of The Apache Software Foundation.
+            </div>
+</div>
+</td>
+<!--================= end Copyright ==================-->
+</tr>
+<tr>
+<td align="left">
+<!--================= start Host ==================-->
+<!--================= end Host ==================--></td><td align="right">
+<!--================= start Credits ==================-->
+<div align="right">
+<div class="credit">
+<a href="http://validator.w3.org/check/referer"><img width="88" height="31" alt="Valid HTML 4.01!" src="../skin/images/valid-html401.png" class="logoImage"></a><a href="http://jigsaw.w3.org/css-validator/"><img width="88" height="31" alt="Valid CSS!" src="../skin/images/vcss.png" class="logoImage"></a><a href="http://forrest.apache.org/"><img border="0" class="logoImage" alt="Built with Apache Forrest" src="../skin/images/built-with-forrest-button.png" width="88" height="31"></a>
+</div>
+</div>
+<!--================= end Credits ==================-->
+</td>
+</tr>
+</tbody>
+</table>
+</div>
+<!--================= end Footer ==================-->
+</body>
+</html>

Propchange: poi/site/publish/hpbf/index.html
------------------------------------------------------------------------------
    svn:executable = *



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org


Mime
View raw message