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:
parent
952fdf889b
commit
7925e41b55
@ -14,7 +14,7 @@
|
||||
<menu-item label="Overview" href="overview.html"/>
|
||||
<menu-item label="POIFS" href="poifs/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="POI-Utils" href="utils/index.html"/>
|
||||
<menu-item label="Download" href="ext:download"/>
|
||||
|
@ -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 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="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">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">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="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">Patch applied to prevent sheet corruption after a template modification</action>
|
||||
<action dev="POI-DEVELOPERS" type="update">Shared Formulas now Supported</action>
|
||||
|
@ -129,7 +129,7 @@
|
||||
<tr>
|
||||
<td>generate-types</td>
|
||||
<td>Generate types from the XML type definitions (this is
|
||||
for HDF).</td>
|
||||
for HWPF).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>jar</td>
|
||||
|
@ -32,7 +32,7 @@
|
||||
<strong>property set stream</strong>.</p>
|
||||
|
||||
<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
|
||||
to retrieve a stream from it. See the <link
|
||||
href="../poifs/index.html">POIFS documentation</link> for that kind of
|
||||
|
@ -170,8 +170,8 @@
|
||||
RecordUtil.java, RecordGenerator.java
|
||||
</p>
|
||||
<p>
|
||||
There is a corresponding "type" generator for HDF.
|
||||
See the HDF documentation for details.
|
||||
There is a corresponding "type" generator for HWPF.
|
||||
See the HWPF documentation for details.
|
||||
</p>
|
||||
</section>
|
||||
<section><title>Limitations</title>
|
||||
|
12
src/documentation/content/xdocs/hwpf/book.xml
Normal file
12
src/documentation/content/xdocs/hwpf/book.xml
Normal 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>
|
94
src/documentation/content/xdocs/hwpf/docoverview.xml
Normal file
94
src/documentation/content/xdocs/hwpf/docoverview.xml
Normal 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>
|
||||
|
34
src/documentation/content/xdocs/hwpf/index.xml
Normal file
34
src/documentation/content/xdocs/hwpf/index.xml
Normal 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>
|
374
src/documentation/content/xdocs/hwpf/projectplan.xml
Normal file
374
src/documentation/content/xdocs/hwpf/projectplan.xml
Normal 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>
|
||||
 
|
||||
</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’s
|
||||
</td>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</document>
|
@ -74,7 +74,7 @@
|
||||
</section>
|
||||
<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.
|
||||
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>
|
||||
</section>
|
||||
<section><title>HPSF</title>
|
||||
|
@ -36,9 +36,9 @@
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section><title>HDF</title>
|
||||
<section><title>HWPF</title>
|
||||
<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.
|
||||
</p>
|
||||
</section>
|
||||
|
@ -65,7 +65,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<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>
|
||||
<ul>
|
||||
<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
|
||||
Apache Cocoon 2 project.
|
||||
</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
|
||||
Java.</li>
|
||||
</ul>
|
||||
@ -108,7 +108,7 @@
|
||||
as the HSSF Serializer.
|
||||
</li>
|
||||
<li>
|
||||
Create a new library (HDF) for reading and writing
|
||||
Create a new library (HWPF) for reading and writing
|
||||
Microsoft Word DOC format.
|
||||
</li>
|
||||
<li>
|
||||
@ -146,7 +146,7 @@
|
||||
</li>
|
||||
<li>
|
||||
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
|
||||
reading/writing other file formats utilizing the OLE 2 Compound
|
||||
Document Format in Java.
|
||||
@ -157,8 +157,8 @@
|
||||
XML in a non-proprietary environment.
|
||||
</li>
|
||||
<li>
|
||||
Our intended audience for the HDF
|
||||
library is ourselves, as we will be developing a HDF Serializer in a
|
||||
Our intended audience for the HWPF
|
||||
library is ourselves, as we will be developing a HWPF Serializer in a
|
||||
later release, and anyone wishing to add .DOC file processing and
|
||||
creation to their projects.
|
||||
</li>
|
||||
@ -342,7 +342,7 @@
|
||||
with the HSSF and POIFS APIs.
|
||||
</li>
|
||||
<li>
|
||||
The HDF API requires a Java 2
|
||||
The HWPF API requires a Java 2
|
||||
implementation and the POIFS API.
|
||||
</li>
|
||||
<li>
|
||||
@ -418,7 +418,7 @@
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
The HDF API will include:
|
||||
The HWPF API will include:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
@ -460,7 +460,7 @@
|
||||
<li>POIFS API</li>
|
||||
</ul>
|
||||
<p>
|
||||
The minimum system requirements for the the HDF API are:
|
||||
The minimum system requirements for the the HWPF API are:
|
||||
</p>
|
||||
<ul>
|
||||
<li>64 Mbytes memory</li>
|
||||
@ -537,12 +537,12 @@
|
||||
for the low level HSSF APIs.
|
||||
</p>
|
||||
</section>
|
||||
<section><title>6.5 HDF API</title>
|
||||
<section><title>6.5 HWPF API</title>
|
||||
<p>
|
||||
The HDF API will be documented by
|
||||
javadoc. A walkthrough of using the high level HDF API shall be
|
||||
The HWPF API will be documented by
|
||||
javadoc. A walkthrough of using the high level HWPF API shall be
|
||||
provided. No documentation outside of the Javadoc shall be provided
|
||||
for the low level HDF APIs.
|
||||
for the low level HWPF APIs.
|
||||
</p>
|
||||
</section>
|
||||
<section><title>6.6 HSSF Serializer</title>
|
||||
|
@ -14,7 +14,7 @@
|
||||
|
||||
<actions priority="high">
|
||||
<action context="code" dev="NKB">
|
||||
Finish HDF
|
||||
Finish HWPF
|
||||
</action>
|
||||
<action context="code" dev="GS">
|
||||
Finish Charts
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
<actions priority="high">
|
||||
<action context="code" dev="NKB">
|
||||
Finish HDF
|
||||
Finish HWPF
|
||||
</action>
|
||||
<action context="code" dev="GS">
|
||||
Finish Charts
|
||||
|
@ -14,7 +14,7 @@
|
||||
<menu-item label="Überblick" href="../../overview.html"/>
|
||||
<menu-item label="POIFS" href="../../poifs/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="POI-Utils" href="../../utils/index.html"/>
|
||||
<menu-item label="Download" href="http://jakarta.apache.org/builds/jakarta-poi/"/>
|
||||
|
@ -139,12 +139,12 @@
|
||||
<link href="../../hssf/index.html">HSSF-Seite</link>.
|
||||
</p>
|
||||
</section>
|
||||
<section><title>HDF (Horrible Document Format)</title>
|
||||
<section><title>HWPF (Horrible Document Format)</title>
|
||||
<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
|
||||
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
|
||||
Entwickler, die mitmachen.
|
||||
</p>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<menu-item label="Descripción General" href="overview.html"/>
|
||||
<menu-item label="POIFS" href="../../poifs/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="POI-Utils" href="../../utils/index.html"/>
|
||||
<menu-item label="Descargas" href="http://jakarta.apache.org/builds/jakarta-poi/"/>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<title>Historia del Proyecto</title>
|
||||
<authors>
|
||||
<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>
|
||||
</header>
|
||||
|
||||
@ -16,127 +16,127 @@
|
||||
<section><title>Breve Historia del Proyecto</title>
|
||||
|
||||
<p>
|
||||
El proyecto POI se gestó tiempo atrás, cerca de abril de 2001,
|
||||
cuando Andy Oliver obtuvo un contrato de corta duración para realizar
|
||||
informes Excel basados en Java. Ya había realizado este proyecto unas
|
||||
cuantas veces antes, y sabía exactamente dónde buscar las herramientas
|
||||
que necesitaría.
|
||||
Irónicamente, el API que solía utilizar se había disparado en precio
|
||||
desde unos $300 ($US) hasta unos $10K ($US). Calculó que a dos personas
|
||||
les llevaría unos seis meses el portar Excel así que le recomendó al
|
||||
El proyecto POI se gesttiempo atr, cerca de abril de 2001,
|
||||
cuando Andy Oliver obtuvo un contrato de corta duraci para realizar
|
||||
informes Excel basados en Java. Ya hab realizado este proyecto unas
|
||||
cuantas veces antes, y sab exactamente dde buscar las herramientas
|
||||
que necesitar.
|
||||
Iricamente, el API que sol utilizar se hab disparado en precio
|
||||
desde unos $300 ($US) hasta unos $10K ($US). Calculque a dos personas
|
||||
les llevar unos seis meses el portar Excel asque le recomendal
|
||||
cliente que pagase los $10K.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Cerca de junio de 2001, Andy empezó a pensar lo genial que sería
|
||||
tener una herramienta Java de código abierto para hacer esto y,
|
||||
mientras tuvo algo de tiempo libre, comenzó el proyecto y aprendió
|
||||
Cerca de junio de 2001, Andy empeza pensar lo genial que ser
|
||||
tener una herramienta Java de cigo abierto para hacer esto y,
|
||||
mientras tuvo algo de tiempo libre, comenzel proyecto y aprendi
|
||||
cosas sobre el Formato de Documento Compuesto OLE2. Tras chocarse
|
||||
con varios obstáculos insalvables, se dio cuenta de que necesitaría ayuda.
|
||||
Publicó un mensaje en su Grupo de Usuarios Java local (JUG) y
|
||||
preguntó si alguien estaba interesado. Tuvo mucha suerte y el
|
||||
programador Java de mayor talento que había conocido nunca,
|
||||
Marc Johnson, se unió al proyecto. A Marc le llevó unas pocas
|
||||
con varios obstulos insalvables, se dio cuenta de que necesitar ayuda.
|
||||
Publicun mensaje en su Grupo de Usuarios Java local (JUG) y
|
||||
preguntsi alguien estaba interesado. Tuvo mucha suerte y el
|
||||
programador Java de mayor talento que hab conocido nunca,
|
||||
Marc Johnson, se unial proyecto. A Marc le llevunas pocas
|
||||
iteraciones el obtener algo con lo que estaban contentos.
|
||||
</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
|
||||
para poder leer XLS (no sólo escribirlo como había sido planeado
|
||||
originalmente) y un usuario tenía peticiones especiales para
|
||||
para poder leer XLS (no so escribirlo como hab sido planeado
|
||||
originalmente) y un usuario ten peticiones especiales para
|
||||
un uso diferente de POIFS. Antes de que pasara mucho tiempo,
|
||||
el alcance del proyecto se había triplicado. POI 1.0 se distribuyó
|
||||
un mes más tarde de lo planeado, pero con muchas más características.
|
||||
Marc escribió rápidamente el marco del serializador y el
|
||||
Serializador HSSF en tiempo récord y Andy generó más documentación
|
||||
y trabajó en hacer que la gente conociera este proyecto.
|
||||
el alcance del proyecto se hab triplicado. POI 1.0 se distribuy
|
||||
un mes m tarde de lo planeado, pero con muchas m caracterticas.
|
||||
Marc escribiridamente el marco del serializador y el
|
||||
Serializador HSSF en tiempo rord y Andy generm documentaci
|
||||
y trabajen hacer que la gente conociera este proyecto.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Poco antes de la distribución, POI tuvo la fortuna de entrar
|
||||
en contacto con Nicola -Ken- Barrozzi quien proporcionó ejemplos
|
||||
para el Serializador HSSF y ayudó a descrubir sus desafortunados
|
||||
Poco antes de la distribuci, POI tuvo la fortuna de entrar
|
||||
en contacto con Nicola -Ken- Barrozzi quien proporcionejemplos
|
||||
para el Serializador HSSF y ayuda descrubir sus desafortunados
|
||||
fallos (que fueron arreglados de inmediato). Recientemente, Ken
|
||||
portó la mayoría de la documentación del proyecto POI a XML
|
||||
partiendo de los documentos HTML cutres que Andy había escrito
|
||||
portla mayor de la documentaci del proyecto POI a XML
|
||||
partiendo de los documentos HTML cutres que Andy hab escrito
|
||||
con Star Office.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Más o menos al mismo tiempo de la primera distribución, Glen Stampoultzis
|
||||
se unió al 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ó
|
||||
tanto que decidió coger un martillo y hacerlo él mismo. Glen ya se ha
|
||||
M o menos al mismo tiempo de la primera distribuci, Glen Stampoultzis
|
||||
se unial proyecto. A Glen le molestaba la actitud impertinente de Andy
|
||||
en lo que adir capacidades gricas a HSSF se refer. Glen se molest
|
||||
tanto que decidicoger un martillo y hacerlo mismo. Glen ya se ha
|
||||
convertido en parte integral de la comunidad de desarrollo de POI; sus
|
||||
contribuciones a HSSF ya han comenzado a producir olas.
|
||||
</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
|
||||
de Apache</link>, sólo para descubrir que el proyecto había
|
||||
crecido encajando perfectamente con Cocoon hacía tiempo.
|
||||
Lo que es más, Andy comenzó a ojear otros proyectos a los que
|
||||
le gustaría que se añadiera la funcionalidad de POI. Así que
|
||||
se decidió donar los Serializadores y Generadores a Cocoon, otros
|
||||
componentes de integración con POI a otros proyectos, y los APIs
|
||||
de POI pasarían a formar parte de Jakarta. Fue un camino con
|
||||
baches, ¡pero parece que todo salió bien puesto que ahora estás
|
||||
de Apache</link>, so para descubrir que el proyecto hab
|
||||
crecido encajando perfectamente con Cocoon hac tiempo.
|
||||
Lo que es m, Andy comenza ojear otros proyectos a los que
|
||||
le gustar que se adiera la funcionalidad de POI. Asque
|
||||
se decididonar los Serializadores y Generadores a Cocoon, otros
|
||||
componentes de integraci con POI a otros proyectos, y los APIs
|
||||
de POI pasarn a formar parte de Jakarta. Fue un camino con
|
||||
baches, ero parece que todo salibien puesto que ahora est
|
||||
leyendo esto!
|
||||
</p>
|
||||
|
||||
</section>
|
||||
|
||||
<section><title>¿Hacia dónde va POI?</title>
|
||||
<section><title>acia dde va POI?</title>
|
||||
<p>
|
||||
Primero abordaremos esto desde el punto de vista del proyecto:
|
||||
Bueno, les hicimos la oferta a Microsoft y Actuate (de coña
|
||||
... en su mayor parte) de que dejaríamos el proyecto y nos
|
||||
retiraríamos si simplemente nos firmaban a cada uno un cheque
|
||||
con muchos ceros. Todavía estoy esperando una llamada o correo
|
||||
electrónico, así que de momento asumo que no nos van a pagar
|
||||
Bueno, les hicimos la oferta a Microsoft y Actuate (de co
|
||||
... en su mayor parte) de que dejarmos el proyecto y nos
|
||||
retirarmos si simplemente nos firmaban a cada uno un cheque
|
||||
con muchos ceros. Todav estoy esperando una llamada o correo
|
||||
electrico, asque de momento asumo que no nos van a pagar
|
||||
para quitarnos de en medio.
|
||||
</p>
|
||||
<p>
|
||||
Después, tenemos algo de trabajo que hacer aquí en Jakarta
|
||||
para terminar de integrar POI en la comunidad. Lo que es más,
|
||||
todavía estamos realizando la transición del Serializador a
|
||||
Despu, tenemos algo de trabajo que hacer aquen Jakarta
|
||||
para terminar de integrar POI en la comunidad. Lo que es m,
|
||||
todav estamos realizando la transici del Serializador a
|
||||
Cocoon.
|
||||
</p>
|
||||
<p>
|
||||
HSSF, durante el ciclo 2.0, sufrirá varias optimizaciones.
|
||||
También añadiremos nuevas características como una implementación
|
||||
completa de Fórmulas y formatos de texto personalizados. Esperamos
|
||||
ser capaces de generar ficheros más pequeños añadiendo soporte de
|
||||
escritura para registros RK, MulRK y MulBlank. A día de hoy, la
|
||||
HSSF, durante el ciclo 2.0, sufrirvarias optimizaciones.
|
||||
Tambi adiremos nuevas caracterticas como una implementaci
|
||||
completa de Fmulas y formatos de texto personalizados. Esperamos
|
||||
ser capaces de generar ficheros m peques adiendo soporte de
|
||||
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
|
||||
para escribir o modificar, uno necesita ser capaz de actualizar
|
||||
punteros del flujo de subida (upstream pointers) a datos del flujo
|
||||
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
|
||||
procesaran eventos SAX. (Esto se basará en las estructuras de
|
||||
bajo nivel). Una de las mejores cosas sobre esto es que así no sólo
|
||||
tendremos una manera más eficiente de leer el fichero, también
|
||||
tendremos una magnífica forma de utilizar hojas de cálculo como
|
||||
medio en memoria. En vez de eso, un Generador permitir que se
|
||||
procesaran eventos SAX. (Esto se basaren las estructuras de
|
||||
bajo nivel). Una de las mejores cosas sobre esto es que asno so
|
||||
tendremos una manera m eficiente de leer el fichero, tambi
|
||||
tendremos una magnica forma de utilizar hojas de cculo como
|
||||
fuentes de datos XML.
|
||||
</p>
|
||||
<p>
|
||||
El Serializador HSSF, se separará más aún en un marco genérico
|
||||
para la creación de serializadores para otras plataformas y
|
||||
en la implementación específica del serializador HSSF. (Esto ya
|
||||
es cierto en gran medida). También añadiremos soporte para
|
||||
características ya soportadas por HSSF (estilos, fuentes, formatos
|
||||
de texto). Esperamos añadir soporte para fórmulas durante este ciclo.
|
||||
El Serializador HSSF, se separarm a en un marco genico
|
||||
para la creaci de serializadores para otras plataformas y
|
||||
en la implementaci especica del serializador HSSF. (Esto ya
|
||||
es cierto en gran medida). Tambi adiremos soporte para
|
||||
caracterticas ya soportadas por HSSF (estilos, fuentes, formatos
|
||||
de texto). Esperamos adir soporte para fmulas durante este ciclo.
|
||||
</p>
|
||||
<p>
|
||||
Estamos empezando a expandir nuestro alcance de nuevo. Si pudimos
|
||||
hacer todo esto para ficheros XLS, ¿qué hay de ficheros Doc o PPT?
|
||||
Pensamos que nuestro siguiente componente (HDF - Formato de
|
||||
Documento Horrible) debería seguir el mismo patrón. Esperamos
|
||||
hacer todo esto para ficheros XLS, uhay de ficheros Doc o PPT?
|
||||
Pensamos que nuestro siguiente componente (HWPF - Formato de
|
||||
Documento Horrible) deber seguir el mismo patr. Esperamos
|
||||
que se nos una sangre nueva al equipo y que nos permita abordar
|
||||
esto con mayor celeridad (en parte porque POIFS ya está terminado).
|
||||
¡Pero a lo mejor lo que más necesitamos es a ti!
|
||||
esto con mayor celeridad (en parte porque POIFS ya estterminado).
|
||||
ero a lo mejor lo que m necesitamos es a ti!
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
@ -108,9 +108,9 @@
|
||||
<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>
|
||||
</section>
|
||||
<section><title>HDF (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.
|
||||
Por favor, vea <link href="../../hdf/index.html">la pina del proyecto HDF para m informaci</link>. Este
|
||||
<section><title>HWPF (Formato de Documento Horrible)</title>
|
||||
<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="../../hwpf/index.html">la pina del proyecto HWPF para m informaci</link>. Este
|
||||
componente esten la fase inicial de dise. alta dentro!</p>
|
||||
</section>
|
||||
<section><title>HPSF (Formato de Conjunto de Propiedades Horrible)</title>
|
||||
|
@ -38,9 +38,9 @@
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section><title>HDF</title>
|
||||
<section><title>HWPF</title>
|
||||
<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.
|
||||
</p>
|
||||
</section>
|
||||
|
@ -15,7 +15,7 @@
|
||||
|
||||
<actions priority="high">
|
||||
<action context="code" dev="NKB">
|
||||
Terminar HDF
|
||||
Terminar HWPF
|
||||
</action>
|
||||
<action context="code" dev="NKB">
|
||||
Terminar Gráficas (Charts)
|
||||
|
@ -9,7 +9,8 @@ be used to configure the chosen Forrest skin.
|
||||
|
||||
<!ENTITY % links.att 'name 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?,
|
||||
host-url?, host-logo?, year?, vendor?, trail?, credits?)*>
|
||||
<!ELEMENT credits (credit*)>
|
||||
@ -18,7 +19,10 @@ be used to configure the chosen Forrest skin.
|
||||
<!ATTLIST credit id CDATA #IMPLIED
|
||||
role CDATA #IMPLIED>
|
||||
<!ELEMENT disable-search (#PCDATA)>
|
||||
<!ELEMENT disable-compliance-links (#PCDATA)>
|
||||
<!ELEMENT disable-print-link (#PCDATA)>
|
||||
<!ELEMENT disable-pdf-link (#PCDATA)>
|
||||
<!ELEMENT disable-xml-link (#PCDATA)>
|
||||
<!ELEMENT disable-compliance-links (#PCDATA)>
|
||||
<!ELEMENT searchsite-domain (#PCDATA)>
|
||||
<!ELEMENT searchsite-name (#PCDATA)>
|
||||
<!ELEMENT project-name (#PCDATA)>
|
||||
@ -49,7 +53,15 @@ be used to configure the chosen Forrest skin.
|
||||
<skinconfig>
|
||||
<!-- Do we want to disable the Google search box? -->
|
||||
<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>
|
||||
|
||||
<searchsite-domain>jakarta.apache.org</searchsite-domain>
|
||||
<searchsite-name>jakarta</searchsite-name>
|
||||
|
||||
@ -71,7 +83,7 @@ be used to configure the chosen Forrest skin.
|
||||
<host-logo></host-logo>
|
||||
|
||||
<!-- The following are used to construct a copyright statement -->
|
||||
<year>2003</year>
|
||||
<year>2002-2003</year>
|
||||
<vendor>The Apache Software Foundation.</vendor>
|
||||
|
||||
<!-- 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>
|
||||
<link1 name="Apache" href="http://www.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>
|
||||
|
||||
<!-- Credits are typically rendered as a set of small clickable images in the
|
||||
|
Loading…
Reference in New Issue
Block a user