HDF -> HWPF

git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353289 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Tetsuya Kitahata 2003-08-05 04:00:14 +00:00
parent 952fdf889b
commit 7925e41b55
22 changed files with 639 additions and 113 deletions

View File

@ -14,7 +14,7 @@
<menu-item label="Overview" href="overview.html"/> <menu-item label="Overview" href="overview.html"/>
<menu-item label="POIFS" href="poifs/index.html"/> <menu-item label="POIFS" href="poifs/index.html"/>
<menu-item label="HSSF" href="hssf/index.html"/> <menu-item label="HSSF" href="hssf/index.html"/>
<menu-item label="HDF" href="hdf/index.html"/> <menu-item label="HWPF" href="hwpf/index.html"/>
<menu-item label="HPSF" href="hpsf/index.html"/> <menu-item label="HPSF" href="hpsf/index.html"/>
<menu-item label="POI-Utils" href="utils/index.html"/> <menu-item label="POI-Utils" href="utils/index.html"/>
<menu-item label="Download" href="ext:download"/> <menu-item label="Download" href="ext:download"/>

View File

@ -17,13 +17,13 @@
<action dev="POI-DEVELOPERS" type="add">Patch applied for deep cloning of worksheets was provided</action> <action dev="POI-DEVELOPERS" type="add">Patch applied for deep cloning of worksheets was provided</action>
<action dev="POI-DEVELOPERS" type="add">Patch applied to allow sheet reordering</action> <action dev="POI-DEVELOPERS" type="add">Patch applied to allow sheet reordering</action>
<action dev="POI-DEVELOPERS" type="add">Added additional print area setting methods using row/column numbers</action> <action dev="POI-DEVELOPERS" type="add">Added additional print area setting methods using row/column numbers</action>
<action dev="POI-DEVELOPERS" type="fix">HDF: Negative Array size fix</action> <action dev="POI-DEVELOPERS" type="fix">HWPF: Negative Array size fix</action>
<action dev="POI-DEVELOPERS" type="update">Added argument pointers to support the IF formula</action> <action dev="POI-DEVELOPERS" type="update">Added argument pointers to support the IF formula</action>
<action dev="POI-DEVELOPERS" type="update">Formulas: Added special character support for string literals, specifically for SUMIF formula support and addresses a bug as well</action> <action dev="POI-DEVELOPERS" type="update">Formulas: Added special character support for string literals, specifically for SUMIF formula support and addresses a bug as well</action>
<action dev="POI-DEVELOPERS" type="fix">BlockingInputStream committed to help ensure reads</action> <action dev="POI-DEVELOPERS" type="fix">BlockingInputStream committed to help ensure reads</action>
<action dev="POI-DEVELOPERS" type="fix">Fixed problem with NaN values differing from the investigated value from file reads in FormulaRecords</action> <action dev="POI-DEVELOPERS" type="fix">Fixed problem with NaN values differing from the investigated value from file reads in FormulaRecords</action>
<action dev="POI-DEVELOPERS" type="fix">Patch for getColumnWidth in HSSF</action> <action dev="POI-DEVELOPERS" type="fix">Patch for getColumnWidth in HSSF</action>
<action dev="POI-DEVELOPERS" type="add">Patch for dealing with mult-level numbered lists in HDF</action> <action dev="POI-DEVELOPERS" type="add">Patch for dealing with mult-level numbered lists in HWPF</action>
<action dev="POI-DEVELOPERS" type="fix">Due to named reference work, several named-ranged bugs were closed</action> <action dev="POI-DEVELOPERS" type="fix">Due to named reference work, several named-ranged bugs were closed</action>
<action dev="POI-DEVELOPERS" type="fix">Patch applied to prevent sheet corruption after a template modification</action> <action dev="POI-DEVELOPERS" type="fix">Patch applied to prevent sheet corruption after a template modification</action>
<action dev="POI-DEVELOPERS" type="update">Shared Formulas now Supported</action> <action dev="POI-DEVELOPERS" type="update">Shared Formulas now Supported</action>

View File

@ -129,7 +129,7 @@
<tr> <tr>
<td>generate-types</td> <td>generate-types</td>
<td>Generate types from the XML type definitions (this is <td>Generate types from the XML type definitions (this is
for HDF).</td> for HWPF).</td>
</tr> </tr>
<tr> <tr>
<td>jar</td> <td>jar</td>

View File

@ -32,7 +32,7 @@
<strong>property set stream</strong>.</p> <strong>property set stream</strong>.</p>
<p>This document describes the internal structure of a property set stream, <p>This document describes the internal structure of a property set stream,
i.e. the <strong>Horrible Property Set Format (HDF)</strong>. It does not i.e. the <strong>Horrible Property Set Format (HWPF)</strong>. It does not
describe how a Microsoft Office document is organized internally and how describe how a Microsoft Office document is organized internally and how
to retrieve a stream from it. See the <link to retrieve a stream from it. See the <link
href="../poifs/index.html">POIFS documentation</link> for that kind of href="../poifs/index.html">POIFS documentation</link> for that kind of

View File

@ -170,8 +170,8 @@
RecordUtil.java, RecordGenerator.java RecordUtil.java, RecordGenerator.java
</p> </p>
<p> <p>
There is a corresponding &quot;type&quot; generator for HDF. There is a corresponding &quot;type&quot; generator for HWPF.
See the HDF documentation for details. See the HWPF documentation for details.
</p> </p>
</section> </section>
<section><title>Limitations</title> <section><title>Limitations</title>

View File

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<!DOCTYPE book PUBLIC "-//APACHE//DTD Cocoon Documentation Book V1.0//EN" "../dtd/book-cocoon-v10.dtd">
<book software="POI Project" title="HWPF" copyright="@year@ POI Project">
<menu label="Jakarta POI">
<menu-item label="Top" href="../index.html"/>
</menu>
<menu label="HWPF">
<menu-item label="Overview" href="index.html"/>
<menu-item label="HWPF Format" href="docoverview.html"/>
<menu-item label="HWPF Project plan" href="projectplan.html"/>
</menu>
</book>

View File

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">
<document>
<header>
<title>Jakarta POI - HWPF -Java APIs with XML manipulate MS-Word</title>
<subtitle>Word file format</subtitle>
<authors>
<person name="S. Ryan Ackley" email="sackley@cfl.rr.com"/>
</authors>
</header>
<body>
<section><title>The Word 97 File Format in semi-plain English</title>
<p>The purpose of this document is to give a brief high level overview of the
HWPF document format. This document does not go into in-depth technical
detail and is only meant as a supplement to the Microsoft Word 97 Binary
File Format freely available at <link href="http://wotsit.org">Wotsit.org</link>.</p>
<p>The OLE file format is not discussed in this document. It is assumed that
the reader has a working knowledge of the POIFS API. </p>
<section><title>Word file structure</title>
<p>A Word file is made up of the document text and data structures
containing formatting information about the text. Of course, this is a
very simplified illustration. There are fields and macros and other
things that have not been considered. At this stage, HWPF is mainly
concerned with formatted text.</p>
</section>
<section><title>Reading Word files</title>
<p>The entry point for HWPF's reading of a Word file is the File Information
Block (FIB). This structure is the entry point for the locations and size
of a document's text and data structures. The FIB is located at the
beginning of the main stream.</p>
<section><title>Text</title>
<p>The document's text is also located in the main stream. Its starting
location is given as FIB.fcMin and its length is given in bytes by
FIB.ccpText. These two values are not very useful in getting the text
because of unicode. There may be unicode text intermingled with ASCII
text. That brings us to the piece table.</p>
<p>The piece table is used to divide the text into non-unicode and unicode
pieces. The size and offset are given in FIB.fcClx and FIB.lcbClx
respectively. The piece table may contain Property Modifiers (prm).
These are for complex(fast-saved) files and are skipped. Each text piece
contains offsets in the main stream that contain text for that piece.
If the piece uses unicode, the file offset is masked with a certain bit.
Then you have to unmask the bit and divide by 2 to get the real file
offset. </p>
</section>
<section><title>Text Formatting</title>
<section><title>Stylesheet</title>
<p>All text formatting is based on styles contained in the StyleSheet.
The StyleSheet is a data structure containing among other things, style
descriptions. Each style description can contain a paragraph style and
a character style or simply a character style. Each style description
is stored in a compressed version on file. Basically these are deltas
from another style.</p>
<p>Eventually, you have to chain back to the nil style which is an
imaginary style with certain implied values.</p>
</section>
<section><title>Paragraph and Character styles</title>
<p>Paragraph and Character formatting properties for a document's text are
stored on file as deltas from some base style in the Stylesheet. The
deltas are used to create a complete uncompressed style in memory.</p>
<p>Uncompressed paragraph styles are represented by the Pargraph
Properties(PAP) data structure. Uncompressed character styles are
represented by the Character Properties(CHP) data structure. The styles
for the document text are stored in compressed format in the
corresponding Formatted Disk Pages (FKP). A compressed PAP is referred
to as a PAPX and a compressed CHP is a CHPX. The FKP locations are
stored in the bin table. There are seperate bin tables for CHPXs and
PAPXs. The bin tables' locations and sizes are stored in the FIB.</p>
<p>A FKP is a 512 byte OLE page. It contains the offsets of the beginning
and end of each paragraph/character run in the main stream and the
compressed properties for that interval. The compessed PAPX is based on
its base style in the StyleSheet. The compressed CHPX is based on the
enclosing paragraph's base style in the Stylesheet.</p>
</section>
<section><title>Uncompressing styles and other data structures</title>
<p>All compressed properties(CHPX, PAPX, SEPX) contain a grpprl. A grpprl
is an array of sprms. A sprm defines a delta from some base property.
There is a table of possible sprms in the Word 97 spec. Each sprm is a
two byte operand followed by a parameter. The parameter size depends on
the sprm. Each sprm describes an operation that should be performed on
the base style. After every sprm in the grpprl is performed on the base
style you will have the style for the paragraph, character run,
section, etc.</p>
</section>
</section>
</section>
</section>
</body>
</document>

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">
<document>
<header>
<title>Jakarta POI - HWPF -Java APIs with XML manipulate MS-Word</title>
<subtitle>Overview</subtitle>
<authors>
<person name="Nicola Ken Barozzi" email="barozzi@nicolaken.com"/>
<person name="Andrew C. Oliver" email="acoliver@apache.org"/>
<person name="Ryan Ackley" email="sackley@apache.org"/>
</authors>
</header>
<body>
<section><title>Overview</title>
<p>HWPF is the name of OUR port of the Microsoft Word 97(-2002) file format to
pure Java.</p>
<p>HWPF is still in early development. It is in the
<link href="http://cvs.apache.org/viewcvs/jakarta-poi/src/scratchpad/">scratchpad section of the
CVS.</link> Source code in the <em>org.apache.poi.hwpf.extractor</em> tree is
legacy code. Source in the <em>org.apache.poi.hwpf.model</em>
tree is the old legacy code refactored into an object model. Check the How-To
page for detailed examples on using HWPF.
</p>
<p>
We are looking for developers!!! If you are interested in helping with HWPF
familiarize yourself with the source code and just start coding. Make sure
you read the guidelines for <link href="http://jakarta.apache.org/poi/getinvolved/index.html">
getting involved</link></p>
</section>
</body>
</document>

View File

@ -0,0 +1,374 @@
<?xml version="1.0"?>
<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Ryan Ackley (Myself) -->
<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.1//EN" "../dtd/document-v11.dtd">
<document>
<header>
<title>Jakarta POI - HWPF -Java APIs with XML manipulate MS-Word</title>
<subtitle>Project Plan</subtitle>
<authors>
<person name="Ryan Ackley" email="sackley@apache.org"/>
</authors>
</header>
<body>
<p>HWPF Milestones</p>
<table>
<tr>
<th>
Milestones
</th>
<th>
Target Date
</th>
<th>
Owner
</th>
</tr>
<tr>
<td>
Read in a Word document
with minimum formatting
(no lists, tables, footnotes,
endnotes, headers, footers)
and write it back out with the
result viewable in Word
97/2000
</td>
<td>
07/11/2003
</td>
<td>
Ryan
</td>
</tr>
<tr>
<td>
Add support for Lists and
Tables
</td>
<td>
8/15/2003
</td>
<td>
&#160;
</td>
</tr>
<tr>
<td>
HWPF 1.0-alpha release with
documentation and examples
</td>
<td>
8/18/2003
</td>
<td>
Praveen/Ryan
</td>
</tr>
<tr>
<td>
Add support for Headers,
Footers, endnotes, and
footnotes
</td>
<td>
8/31/2003
</td>
<td>
?
</td>
</tr>
<tr>
<td>
Add support for forms and
mail merge
</td>
<td>
September/October 2003
</td>
<td>
?
</td>
</tr>
</table>
<p>HWPF Task Lists</p>
<p>Read in a Word document with minimum formatting (no lists, tables, footnotes,
endnotes, headers, footers) and write it back out with the result viewable in Word 97/2000</p>
<table>
<tr>
<th>
Task
</th>
<th>
Target Date
</th>
<th>
Owner
</th>
</tr>
<tr>
<td>
Create classes to read and
write low level data
structures with test cases
</td>
<td>
7/10/2003
</td>
<td>
Ryan
</td>
</tr>
<tr>
<td>
Create classes to read and
write FontTable and Font
names with test case
</td>
<td>
7/10/2003
</td>
<td>
Praveen
</td>
</tr>
<tr>
<td>
Final test
</td>
<td>
7/11/2003
</td>
<td>
Ryan
</td>
</tr>
</table>
<p>Develop user friendly API so it is fun and easy to read and write word documents
with java.</p>
<table>
<tr>
<th>
Task
</th>
<th>
Target Date
</th>
<th>
Owner
</th>
</tr>
<tr>
<td>
Develop a way for SPRMS to
be compressed and
uncompressed
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Override CHPAbstractType
with a concrete class that
exposes attributes with
human readable names
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Override PAPAbstractType
with a concrete class that
exposes attributes with
human readable names
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Override SEPAbstractType
with a concrete class that
exposes attributes with
human readable names
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Override DOPAbstractType
with a concrete class that
exposes attributes with
human readable names
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Override TAPAbstractType
with a concrete class that
exposes attributes with
human readable names
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Override TCAbstractType
with a concrete class that
exposes attributes with
human readable names
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Develop a VerifyIntegrity
class for testing so it is easy
to determine if a Word
Document is well-formed.
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Develop general intuitive
API to tie everything together
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
<p>Add support for lists and tables</p>
<table>
<tr>
<th>
Task
</th>
<th>
Target Date
</th>
<th>
Owner
</th>
</tr>
<tr>
<td>
Add data structures for
reading and writing list data
with test cases.
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Add data structures for
reading and writing tables
with test cases.
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
<p>HWPF 1.0-alpha release with documentation and examples</p>
<table>
<tr>
<th>
Task
</th>
<th>
Target Date
</th>
<th>
Owner
</th>
</tr>
<tr>
<td>
Document the user model
API
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Document the low level
classes
</td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
Come up with detailed How-To&#8217;s
</td>
<td>
</td>
<td>
</td>
</tr>
</table>
</body>
</document>

View File

@ -74,7 +74,7 @@
</section> </section>
<section><title>HWPF</title> <section><title>HWPF</title>
<p>HWPF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability. <p>HWPF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability.
Please see <link href="./hdf/index.html">the HWPF project page for more information</link>. This component is Please see <link href="./hwpf/index.html">the HWPF project page for more information</link>. This component is
in the early stages of design. Jump in!</p> in the early stages of design. Jump in!</p>
</section> </section>
<section><title>HPSF</title> <section><title>HPSF</title>

View File

@ -36,9 +36,9 @@
</p> </p>
</section> </section>
<section><title>HDF</title> <section><title>HWPF</title>
<p> <p>
<link href="hdf/index.html">HDF</link> is the set of APIs <link href="hwpf/index.html">HWPF</link> is the set of APIs
for reading and writing Microsoft Word 97(-XP) spreadsheet using (only) Java. for reading and writing Microsoft Word 97(-XP) spreadsheet using (only) Java.
</p> </p>
</section> </section>

View File

@ -65,7 +65,7 @@
</li> </li>
</ul> </ul>
<p>By the completion of this release cycle the POI project will also <p>By the completion of this release cycle the POI project will also
include the HSSF Generator and the HDF library. include the HSSF Generator and the HWPF library.
</p> </p>
<ul> <ul>
<li>The HSSF Generator will be responsible for using HSSF to read <li>The HSSF Generator will be responsible for using HSSF to read
@ -73,7 +73,7 @@
Generator will support the applicable interfaces specified by the Generator will support the applicable interfaces specified by the
Apache Cocoon 2 project. Apache Cocoon 2 project.
</li> </li>
<li>The HDF library will provide a set of high level interfaces <li>The HWPF library will provide a set of high level interfaces
for reading and writing Microsoft Word 97 file format using pure for reading and writing Microsoft Word 97 file format using pure
Java.</li> Java.</li>
</ul> </ul>
@ -108,7 +108,7 @@
as the HSSF Serializer. as the HSSF Serializer.
</li> </li>
<li> <li>
Create a new library (HDF) for reading and writing Create a new library (HWPF) for reading and writing
Microsoft Word DOC format. Microsoft Word DOC format.
</li> </li>
<li> <li>
@ -146,7 +146,7 @@
</li> </li>
<li> <li>
Our intended audience for the Our intended audience for the
POIFS library is ourselves as we are developing the HSSF and HDF POIFS library is ourselves as we are developing the HSSF and HWPF
libraries and anyone wishing to provide other libraries for libraries and anyone wishing to provide other libraries for
reading/writing other file formats utilizing the OLE 2 Compound reading/writing other file formats utilizing the OLE 2 Compound
Document Format in Java. Document Format in Java.
@ -157,8 +157,8 @@
XML in a non-proprietary environment. XML in a non-proprietary environment.
</li> </li>
<li> <li>
Our intended audience for the HDF Our intended audience for the HWPF
library is ourselves, as we will be developing a HDF Serializer in a library is ourselves, as we will be developing a HWPF Serializer in a
later release, and anyone wishing to add .DOC file processing and later release, and anyone wishing to add .DOC file processing and
creation to their projects. creation to their projects.
</li> </li>
@ -342,7 +342,7 @@
with the HSSF and POIFS APIs. with the HSSF and POIFS APIs.
</li> </li>
<li> <li>
The HDF API requires a Java 2 The HWPF API requires a Java 2
implementation and the POIFS API. implementation and the POIFS API.
</li> </li>
<li> <li>
@ -418,7 +418,7 @@
</li> </li>
</ul> </ul>
<p> <p>
The HDF API will include: The HWPF API will include:
</p> </p>
<ul> <ul>
<li> <li>
@ -460,7 +460,7 @@
<li>POIFS API</li> <li>POIFS API</li>
</ul> </ul>
<p> <p>
The minimum system requirements for the the HDF API are: The minimum system requirements for the the HWPF API are:
</p> </p>
<ul> <ul>
<li>64 Mbytes memory</li> <li>64 Mbytes memory</li>
@ -537,12 +537,12 @@
for the low level HSSF APIs. for the low level HSSF APIs.
</p> </p>
</section> </section>
<section><title>6.5 HDF API</title> <section><title>6.5 HWPF API</title>
<p> <p>
The HDF API will be documented by The HWPF API will be documented by
javadoc. A walkthrough of using the high level HDF API shall be javadoc. A walkthrough of using the high level HWPF API shall be
provided. No documentation outside of the Javadoc shall be provided provided. No documentation outside of the Javadoc shall be provided
for the low level HDF APIs. for the low level HWPF APIs.
</p> </p>
</section> </section>
<section><title>6.6 HSSF Serializer</title> <section><title>6.6 HSSF Serializer</title>

View File

@ -14,7 +14,7 @@
<actions priority="high"> <actions priority="high">
<action context="code" dev="NKB"> <action context="code" dev="NKB">
Finish HDF Finish HWPF
</action> </action>
<action context="code" dev="GS"> <action context="code" dev="GS">
Finish Charts Finish Charts

View File

@ -15,7 +15,7 @@
<actions priority="high"> <actions priority="high">
<action context="code" dev="NKB"> <action context="code" dev="NKB">
Finish HDF Finish HWPF
</action> </action>
<action context="code" dev="GS"> <action context="code" dev="GS">
Finish Charts Finish Charts

View File

@ -14,7 +14,7 @@
<menu-item label="Überblick" href="../../overview.html"/> <menu-item label="Überblick" href="../../overview.html"/>
<menu-item label="POIFS" href="../../poifs/index.html"/> <menu-item label="POIFS" href="../../poifs/index.html"/>
<menu-item label="HSSF" href="../../hssf/index.html"/> <menu-item label="HSSF" href="../../hssf/index.html"/>
<menu-item label="HDF" href="../../hdf/index.html"/> <menu-item label="HWPF" href="../../hwpf/index.html"/>
<menu-item label="HPSF" href="../../hpsf/index.html"/> <menu-item label="HPSF" href="../../hpsf/index.html"/>
<menu-item label="POI-Utils" href="../../utils/index.html"/> <menu-item label="POI-Utils" href="../../utils/index.html"/>
<menu-item label="Download" href="http://jakarta.apache.org/builds/jakarta-poi/"/> <menu-item label="Download" href="http://jakarta.apache.org/builds/jakarta-poi/"/>

View File

@ -139,12 +139,12 @@
<link href="../../hssf/index.html">HSSF-Seite</link>. <link href="../../hssf/index.html">HSSF-Seite</link>.
</p> </p>
</section> </section>
<section><title>HDF (Horrible Document Format)</title> <section><title>HWPF (Horrible Document Format)</title>
<p> <p>
HDF ist unsere Portierung des Microsoft Word 97 Datei-Formats HWPF ist unsere Portierung des Microsoft Word 97 Datei-Formats
in reinem Java. Es unterstützt Lesen und Schreiben. Mehr in reinem Java. Es unterstützt Lesen und Schreiben. Mehr
Informationen gibt es auf der Informationen gibt es auf der
<link href="../../hdf/index.html">HDF-Seite</link>. <link href="../../hwpf/index.html">HWPF-Seite</link>.
Diese Komponente ist noch nicht sehr weit fortgeschritten. Wir suchen Diese Komponente ist noch nicht sehr weit fortgeschritten. Wir suchen
Entwickler, die mitmachen. Entwickler, die mitmachen.
</p> </p>

View File

@ -14,7 +14,7 @@
<menu-item label="Descripción General" href="overview.html"/> <menu-item label="Descripción General" href="overview.html"/>
<menu-item label="POIFS" href="../../poifs/index.html"/> <menu-item label="POIFS" href="../../poifs/index.html"/>
<menu-item label="HSSF" href="../../hssf/index.html"/> <menu-item label="HSSF" href="../../hssf/index.html"/>
<menu-item label="HDF" href="../../hdf/index.html"/> <menu-item label="HWPF" href="../../hwpf/index.html"/>
<menu-item label="HPSF" href="../../hpsf/index.html"/> <menu-item label="HPSF" href="../../hpsf/index.html"/>
<menu-item label="POI-Utils" href="../../utils/index.html"/> <menu-item label="POI-Utils" href="../../utils/index.html"/>
<menu-item label="Descargas" href="http://jakarta.apache.org/builds/jakarta-poi/"/> <menu-item label="Descargas" href="http://jakarta.apache.org/builds/jakarta-poi/"/>

View File

@ -6,7 +6,7 @@
<title>Historia del Proyecto</title> <title>Historia del Proyecto</title>
<authors> <authors>
<person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/> <person id="AO" name="Andrew C. Oliver" email="acoliver@apache.org"/>
<person id="AMB" name="Agustín Martín Barbero" email="-"/> <person id="AMB" name="Agust Mart Barbero" email="-"/>
</authors> </authors>
</header> </header>
@ -16,127 +16,127 @@
<section><title>Breve Historia del Proyecto</title> <section><title>Breve Historia del Proyecto</title>
<p> <p>
El proyecto POI se gestó tiempo atrás, cerca de abril de 2001, El proyecto POI se gesttiempo atr, cerca de abril de 2001,
cuando Andy Oliver obtuvo un contrato de corta duración para realizar cuando Andy Oliver obtuvo un contrato de corta duraci para realizar
informes Excel basados en Java. Ya había realizado este proyecto unas informes Excel basados en Java. Ya hab realizado este proyecto unas
cuantas veces antes, y sabía exactamente dónde buscar las herramientas cuantas veces antes, y sab exactamente dde buscar las herramientas
que necesitaría. que necesitar.
Irónicamente, el API que solía utilizar se había disparado en precio Iricamente, el API que sol utilizar se hab disparado en precio
desde unos $300 ($US) hasta unos $10K ($US). Calculó que a dos personas desde unos $300 ($US) hasta unos $10K ($US). Calculque a dos personas
les llevaría unos seis meses el portar Excel así que le recomendó al les llevar unos seis meses el portar Excel asque le recomendal
cliente que pagase los $10K. cliente que pagase los $10K.
</p> </p>
<p> <p>
Cerca de junio de 2001, Andy empezó a pensar lo genial que sería Cerca de junio de 2001, Andy empeza pensar lo genial que ser
tener una herramienta Java de código abierto para hacer esto y, tener una herramienta Java de cigo abierto para hacer esto y,
mientras tuvo algo de tiempo libre, comenzó el proyecto y aprendió mientras tuvo algo de tiempo libre, comenzel proyecto y aprendi
cosas sobre el Formato de Documento Compuesto OLE2. Tras chocarse cosas sobre el Formato de Documento Compuesto OLE2. Tras chocarse
con varios obstáculos insalvables, se dio cuenta de que necesitaría ayuda. con varios obstulos insalvables, se dio cuenta de que necesitar ayuda.
Publicó un mensaje en su Grupo de Usuarios Java local (JUG) y Publicun mensaje en su Grupo de Usuarios Java local (JUG) y
preguntó si alguien estaba interesado. Tuvo mucha suerte y el preguntsi alguien estaba interesado. Tuvo mucha suerte y el
programador Java de mayor talento que había conocido nunca, programador Java de mayor talento que hab conocido nunca,
Marc Johnson, se unió al proyecto. A Marc le llevó unas pocas Marc Johnson, se unial proyecto. A Marc le llevunas pocas
iteraciones el obtener algo con lo que estaban contentos. iteraciones el obtener algo con lo que estaban contentos.
</p> </p>
<p> <p>
Mientras Marc trabajaba en eso, Andy portó XLS a Java, basándose Mientras Marc trabajaba en eso, Andy portXLS a Java, basdose
en la biblioteca de Marc. Varios usuarios escribieron peticiones en la biblioteca de Marc. Varios usuarios escribieron peticiones
para poder leer XLS (no sólo escribirlo como había sido planeado para poder leer XLS (no so escribirlo como hab sido planeado
originalmente) y un usuario tenía peticiones especiales para originalmente) y un usuario ten peticiones especiales para
un uso diferente de POIFS. Antes de que pasara mucho tiempo, un uso diferente de POIFS. Antes de que pasara mucho tiempo,
el alcance del proyecto se había triplicado. POI 1.0 se distribuyó el alcance del proyecto se hab triplicado. POI 1.0 se distribuy
un mes más tarde de lo planeado, pero con muchas más características. un mes m tarde de lo planeado, pero con muchas m caracterticas.
Marc escribió rápidamente el marco del serializador y el Marc escribiridamente el marco del serializador y el
Serializador HSSF en tiempo récord y Andy generó más documentación Serializador HSSF en tiempo rord y Andy generm documentaci
y trabajó en hacer que la gente conociera este proyecto. y trabajen hacer que la gente conociera este proyecto.
</p> </p>
<p> <p>
Poco antes de la distribución, POI tuvo la fortuna de entrar Poco antes de la distribuci, POI tuvo la fortuna de entrar
en contacto con Nicola -Ken- Barrozzi quien proporcionó ejemplos en contacto con Nicola -Ken- Barrozzi quien proporcionejemplos
para el Serializador HSSF y ayudó a descrubir sus desafortunados para el Serializador HSSF y ayuda descrubir sus desafortunados
fallos (que fueron arreglados de inmediato). Recientemente, Ken fallos (que fueron arreglados de inmediato). Recientemente, Ken
portó la mayoría de la documentación del proyecto POI a XML portla mayor de la documentaci del proyecto POI a XML
partiendo de los documentos HTML cutres que Andy había escrito partiendo de los documentos HTML cutres que Andy hab escrito
con Star Office. con Star Office.
</p> </p>
<p> <p>
Más o menos al mismo tiempo de la primera distribución, Glen Stampoultzis M o menos al mismo tiempo de la primera distribuci, Glen Stampoultzis
se unió al proyecto. A Glen le molestaba la actitud impertinente de Andy se unial proyecto. A Glen le molestaba la actitud impertinente de Andy
en lo que añadir capacidades gráficas a HSSF se refería. Glen se molestó en lo que adir capacidades gricas a HSSF se refer. Glen se molest
tanto que decidió coger un martillo y hacerlo él mismo. Glen ya se ha tanto que decidicoger un martillo y hacerlo mismo. Glen ya se ha
convertido en parte integral de la comunidad de desarrollo de POI; sus convertido en parte integral de la comunidad de desarrollo de POI; sus
contribuciones a HSSF ya han comenzado a producir olas. contribuciones a HSSF ya han comenzado a producir olas.
</p> </p>
<p> <p>
En algún momento decidimos finalmente remitir el proyecto a En alg momento decidimos finalmente remitir el proyecto a
<link href="http://xml.apache.org/cocoon">El Proyecto Cocoon <link href="http://xml.apache.org/cocoon">El Proyecto Cocoon
de Apache</link>, sólo para descubrir que el proyecto había de Apache</link>, so para descubrir que el proyecto hab
crecido encajando perfectamente con Cocoon hacía tiempo. crecido encajando perfectamente con Cocoon hac tiempo.
Lo que es más, Andy comenzó a ojear otros proyectos a los que Lo que es m, Andy comenza ojear otros proyectos a los que
le gustaría que se adiera la funcionalidad de POI. Así que le gustar que se adiera la funcionalidad de POI. Asque
se decidió donar los Serializadores y Generadores a Cocoon, otros se decididonar los Serializadores y Generadores a Cocoon, otros
componentes de integración con POI a otros proyectos, y los APIs componentes de integraci con POI a otros proyectos, y los APIs
de POI pasarían a formar parte de Jakarta. Fue un camino con de POI pasarn a formar parte de Jakarta. Fue un camino con
baches, ¡pero parece que todo salió bien puesto que ahora estás baches, ero parece que todo salibien puesto que ahora est
leyendo esto! leyendo esto!
</p> </p>
</section> </section>
<section><title>¿Hacia dónde va POI?</title> <section><title>acia dde va POI?</title>
<p> <p>
Primero abordaremos esto desde el punto de vista del proyecto: Primero abordaremos esto desde el punto de vista del proyecto:
Bueno, les hicimos la oferta a Microsoft y Actuate (de coña Bueno, les hicimos la oferta a Microsoft y Actuate (de co
... en su mayor parte) de que dejaríamos el proyecto y nos ... en su mayor parte) de que dejarmos el proyecto y nos
retiraríamos si simplemente nos firmaban a cada uno un cheque retirarmos si simplemente nos firmaban a cada uno un cheque
con muchos ceros. Todavía estoy esperando una llamada o correo con muchos ceros. Todav estoy esperando una llamada o correo
electrónico, así que de momento asumo que no nos van a pagar electrico, asque de momento asumo que no nos van a pagar
para quitarnos de en medio. para quitarnos de en medio.
</p> </p>
<p> <p>
Después, tenemos algo de trabajo que hacer aquí en Jakarta Despu, tenemos algo de trabajo que hacer aquen Jakarta
para terminar de integrar POI en la comunidad. Lo que es más, para terminar de integrar POI en la comunidad. Lo que es m,
todavía estamos realizando la transición del Serializador a todav estamos realizando la transici del Serializador a
Cocoon. Cocoon.
</p> </p>
<p> <p>
HSSF, durante el ciclo 2.0, sufrirá varias optimizaciones. HSSF, durante el ciclo 2.0, sufrirvarias optimizaciones.
También adiremos nuevas características como una implementación Tambi adiremos nuevas caracterticas como una implementaci
completa de Fórmulas y formatos de texto personalizados. Esperamos completa de Fmulas y formatos de texto personalizados. Esperamos
ser capaces de generar ficheros más pequeños adiendo soporte de ser capaces de generar ficheros m peques adiendo soporte de
escritura para registros RK, MulRK y MulBlank. A día de hoy, la escritura para registros RK, MulRK y MulBlank. A d de hoy, la
lectura en HSSF no es muy eficiente. Esto se debe sobre todo a que lectura en HSSF no es muy eficiente. Esto se debe sobre todo a que
para escribir o modificar, uno necesita ser capaz de actualizar para escribir o modificar, uno necesita ser capaz de actualizar
punteros del flujo de subida (upstream pointers) a datos del flujo punteros del flujo de subida (upstream pointers) a datos del flujo
de bajada. Para hacer esto hay que tener todo lo que haya en de bajada. Para hacer esto hay que tener todo lo que haya en
medio en memoria. En vez de eso, un Generador permitiría que se medio en memoria. En vez de eso, un Generador permitir que se
procesaran eventos SAX. (Esto se basará en las estructuras de procesaran eventos SAX. (Esto se basaren las estructuras de
bajo nivel). Una de las mejores cosas sobre esto es que así no sólo bajo nivel). Una de las mejores cosas sobre esto es que asno so
tendremos una manera más eficiente de leer el fichero, también tendremos una manera m eficiente de leer el fichero, tambi
tendremos una magnífica forma de utilizar hojas de cálculo como tendremos una magnica forma de utilizar hojas de cculo como
fuentes de datos XML. fuentes de datos XML.
</p> </p>
<p> <p>
El Serializador HSSF, se separará más aún en un marco genérico El Serializador HSSF, se separarm a en un marco genico
para la creación de serializadores para otras plataformas y para la creaci de serializadores para otras plataformas y
en la implementación específica del serializador HSSF. (Esto ya en la implementaci especica del serializador HSSF. (Esto ya
es cierto en gran medida). También adiremos soporte para es cierto en gran medida). Tambi adiremos soporte para
características ya soportadas por HSSF (estilos, fuentes, formatos caracterticas ya soportadas por HSSF (estilos, fuentes, formatos
de texto). Esperamos añadir soporte para fórmulas durante este ciclo. de texto). Esperamos adir soporte para fmulas durante este ciclo.
</p> </p>
<p> <p>
Estamos empezando a expandir nuestro alcance de nuevo. Si pudimos Estamos empezando a expandir nuestro alcance de nuevo. Si pudimos
hacer todo esto para ficheros XLS, ¿qué hay de ficheros Doc o PPT? hacer todo esto para ficheros XLS, uhay de ficheros Doc o PPT?
Pensamos que nuestro siguiente componente (HDF - Formato de Pensamos que nuestro siguiente componente (HWPF - Formato de
Documento Horrible) debería seguir el mismo patrón. Esperamos Documento Horrible) deber seguir el mismo patr. Esperamos
que se nos una sangre nueva al equipo y que nos permita abordar que se nos una sangre nueva al equipo y que nos permita abordar
esto con mayor celeridad (en parte porque POIFS ya está terminado). esto con mayor celeridad (en parte porque POIFS ya estterminado).
¡Pero a lo mejor lo que más necesitamos es a ti! ero a lo mejor lo que m necesitamos es a ti!
</p> </p>
</section> </section>

View File

@ -108,9 +108,9 @@
<p>HSSF es nuestra adaptaci del formato de fichero de Microsoft Excel 97(-2002) a Java puro. Soporta lectura y <p>HSSF es nuestra adaptaci del formato de fichero de Microsoft Excel 97(-2002) a Java puro. Soporta lectura y
escritura. Por favor, vea <link href="../../hssf/index.html">la pina del proyecto HSSF</link> para m informaci.</p> escritura. Por favor, vea <link href="../../hssf/index.html">la pina del proyecto HSSF</link> para m informaci.</p>
</section> </section>
<section><title>HDF (Formato de Documento Horrible)</title> <section><title>HWPF (Formato de Documento Horrible)</title>
<p>HDF es nuestra adaptaci del formato de fichero de Microsoft Word 97 a Java puro. Soporta lectura y escritura. <p>HWPF es nuestra adaptaci del formato de fichero de Microsoft Word 97 a Java puro. Soporta lectura y escritura.
Por favor, vea <link href="../../hdf/index.html">la pina del proyecto HDF para m informaci</link>. Este Por favor, vea <link href="../../hwpf/index.html">la pina del proyecto HWPF para m informaci</link>. Este
componente esten la fase inicial de dise. alta dentro!</p> componente esten la fase inicial de dise. alta dentro!</p>
</section> </section>
<section><title>HPSF (Formato de Conjunto de Propiedades Horrible)</title> <section><title>HPSF (Formato de Conjunto de Propiedades Horrible)</title>

View File

@ -38,9 +38,9 @@
</p> </p>
</section> </section>
<section><title>HDF</title> <section><title>HWPF</title>
<p> <p>
<link href="../../hdf/index.html">HDF</link> es el conjunto de APIs para la lectura y <link href="../../hwpf/index.html">HWPF</link> es el conjunto de APIs para la lectura y
escritura de documentos Word 97(-XP) de Microsoft utilizando (únicamente) Java. escritura de documentos Word 97(-XP) de Microsoft utilizando (únicamente) Java.
</p> </p>
</section> </section>

View File

@ -15,7 +15,7 @@
<actions priority="high"> <actions priority="high">
<action context="code" dev="NKB"> <action context="code" dev="NKB">
Terminar HDF Terminar HWPF
</action> </action>
<action context="code" dev="NKB"> <action context="code" dev="NKB">
Terminar Gráficas (Charts) Terminar Gráficas (Charts)

View File

@ -9,7 +9,8 @@ be used to configure the chosen Forrest skin.
<!ENTITY % links.att 'name CDATA #REQUIRED'> <!ENTITY % links.att 'name CDATA #REQUIRED'>
<!ENTITY % link.att 'name CDATA #REQUIRED href CDATA #REQUIRED'> <!ENTITY % link.att 'name CDATA #REQUIRED href CDATA #REQUIRED'>
<!ELEMENT skinconfig (disable-search?, disable-compliance-links?, searchsite-domain?, searchsite-name?, <!ELEMENT skinconfig (disable-search?, disable-print-link?, disable-pdf-link?,
disable-xml-link?, disable-compliance-links?, searchsite-domain?, searchsite-name?,
project-name, project-url, project-logo, group-name?, group-url?, group-logo?, project-name, project-url, project-logo, group-name?, group-url?, group-logo?,
host-url?, host-logo?, year?, vendor?, trail?, credits?)*> host-url?, host-logo?, year?, vendor?, trail?, credits?)*>
<!ELEMENT credits (credit*)> <!ELEMENT credits (credit*)>
@ -18,6 +19,9 @@ be used to configure the chosen Forrest skin.
<!ATTLIST credit id CDATA #IMPLIED <!ATTLIST credit id CDATA #IMPLIED
role CDATA #IMPLIED> role CDATA #IMPLIED>
<!ELEMENT disable-search (#PCDATA)> <!ELEMENT disable-search (#PCDATA)>
<!ELEMENT disable-print-link (#PCDATA)>
<!ELEMENT disable-pdf-link (#PCDATA)>
<!ELEMENT disable-xml-link (#PCDATA)>
<!ELEMENT disable-compliance-links (#PCDATA)> <!ELEMENT disable-compliance-links (#PCDATA)>
<!ELEMENT searchsite-domain (#PCDATA)> <!ELEMENT searchsite-domain (#PCDATA)>
<!ELEMENT searchsite-name (#PCDATA)> <!ELEMENT searchsite-name (#PCDATA)>
@ -49,7 +53,15 @@ be used to configure the chosen Forrest skin.
<skinconfig> <skinconfig>
<!-- Do we want to disable the Google search box? --> <!-- Do we want to disable the Google search box? -->
<disable-search>false</disable-search> <disable-search>false</disable-search>
<!-- Do we want to disable the print link? -->
<disable-print-link>false</disable-print-link>
<!-- Do we want to disable the PDF link? -->
<disable-pdf-link>false</disable-pdf-link>
<!-- Do we want to disable the xml source link? -->
<disable-xml-link>true</disable-xml-link>
<!-- Do we want to disable w3c compliance links? -->
<disable-compliance-links>false</disable-compliance-links> <disable-compliance-links>false</disable-compliance-links>
<searchsite-domain>jakarta.apache.org</searchsite-domain> <searchsite-domain>jakarta.apache.org</searchsite-domain>
<searchsite-name>jakarta</searchsite-name> <searchsite-name>jakarta</searchsite-name>
@ -71,7 +83,7 @@ be used to configure the chosen Forrest skin.
<host-logo></host-logo> <host-logo></host-logo>
<!-- The following are used to construct a copyright statement --> <!-- The following are used to construct a copyright statement -->
<year>2003</year> <year>2002-2003</year>
<vendor>The Apache Software Foundation.</vendor> <vendor>The Apache Software Foundation.</vendor>
<!-- Some skins use this to form a 'breadcrumb trail' of links. If you don't <!-- Some skins use this to form a 'breadcrumb trail' of links. If you don't
@ -80,7 +92,7 @@ be used to configure the chosen Forrest skin.
<trail> <trail>
<link1 name="Apache" href="http://www.apache.org/"/> <link1 name="Apache" href="http://www.apache.org/"/>
<link2 name="Jakarta" href="http://jakarta.apache.org/"/> <link2 name="Jakarta" href="http://jakarta.apache.org/"/>
<link3 name="POI" href="http://jakarta.apache.org/poi/"/> <!-- <link3 name="POI" href="http://jakarta.apache.org/poi/"/>-->
</trail> </trail>
<!-- Credits are typically rendered as a set of small clickable images in the <!-- Credits are typically rendered as a set of small clickable images in the