diff --git a/src/documentation/content/xdocs/book.xml b/src/documentation/content/xdocs/book.xml
index 9f7d262187..6972fd397c 100644
--- a/src/documentation/content/xdocs/book.xml
+++ b/src/documentation/content/xdocs/book.xml
@@ -14,7 +14,7 @@
This document describes the internal structure of a property set stream, - i.e. the Horrible Property Set Format (HDF). It does not + i.e. the Horrible Property Set Format (HWPF). It does not describe how a Microsoft Office document is organized internally and how to retrieve a stream from it. See the POIFS documentation for that kind of diff --git a/src/documentation/content/xdocs/hssf/record-generator.xml b/src/documentation/content/xdocs/hssf/record-generator.xml index 7b8f8eef07..d534de2625 100644 --- a/src/documentation/content/xdocs/hssf/record-generator.xml +++ b/src/documentation/content/xdocs/hssf/record-generator.xml @@ -170,8 +170,8 @@ RecordUtil.java, RecordGenerator.java
- 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.
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 Wotsit.org.
+The OLE file format is not discussed in this document. It is assumed that + the reader has a working knowledge of the POIFS API.
+ +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.
+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.
+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.
+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.
+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.
+Eventually, you have to chain back to the nil style which is an + imaginary style with certain implied values.
+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.
+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.
+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.
+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.
+HWPF is the name of OUR port of the Microsoft Word 97(-2002) file format to + pure Java.
+HWPF is still in early development. It is in the + scratchpad section of the + CVS. Source code in the org.apache.poi.hwpf.extractor tree is + legacy code. Source in the org.apache.poi.hwpf.model + tree is the old legacy code refactored into an object model. Check the How-To + page for detailed examples on using HWPF. +
++ 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 + getting involved
+HWPF Milestones
+| + Milestones + | ++ Target Date + | ++ Owner + | +
|---|---|---|
| + 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 + | ++ 07/11/2003 + | ++ Ryan + | +
| + Add support for Lists and +Tables + | ++ 8/15/2003 + | ++ + | +
| + HWPF 1.0-alpha release with +documentation and examples + | ++ 8/18/2003 + | ++ Praveen/Ryan + | +
| + Add support for Headers, +Footers, endnotes, and +footnotes + | ++ 8/31/2003 + | ++ ? + | +
| + Add support for forms and +mail merge + | ++ September/October 2003 + | ++ ? + | +
HWPF Task Lists
+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
+| + Task + | ++ Target Date + | ++ Owner + | +
|---|---|---|
| + Create classes to read and +write low level data +structures with test cases + | ++ 7/10/2003 + | ++ Ryan + | +
| + Create classes to read and +write FontTable and Font +names with test case + | ++ 7/10/2003 + | ++ Praveen + | +
| + Final test + | ++ 7/11/2003 + | ++ Ryan + | +
Develop user friendly API so it is fun and easy to read and write word documents +with java.
+| + Task + | ++ Target Date + | ++ Owner + | +
|---|---|---|
| + Develop a way for SPRMS to +be compressed and +uncompressed + | ++ + | ++ + | +
| + Override CHPAbstractType +with a concrete class that +exposes attributes with +human readable names + | ++ + | ++ + | +
| + Override PAPAbstractType +with a concrete class that +exposes attributes with +human readable names + | ++ + | ++ + | +
| + Override SEPAbstractType +with a concrete class that +exposes attributes with +human readable names + | ++ + | ++ + | +
| + Override DOPAbstractType +with a concrete class that +exposes attributes with +human readable names + | ++ + | ++ + | +
| + Override TAPAbstractType +with a concrete class that +exposes attributes with +human readable names + | ++ + | ++ + | +
| + Override TCAbstractType +with a concrete class that +exposes attributes with +human readable names + | ++ + | ++ + | +
| + Develop a VerifyIntegrity +class for testing so it is easy +to determine if a Word +Document is well-formed. + | ++ + | ++ + | +
| + Develop general intuitive +API to tie everything together + | ++ + | ++ + | +
Add support for lists and tables
+| + Task + | ++ Target Date + | ++ Owner + | +
|---|---|---|
| + Add data structures for +reading and writing list data +with test cases. + | ++ + | ++ + | +
| + Add data structures for +reading and writing tables +with test cases. + | ++ + | ++ + | +
HWPF 1.0-alpha release with documentation and examples
+| + Task + | ++ Target Date + | ++ Owner + | +
|---|---|---|
| + Document the user model +API + | ++ + | ++ + | +
| + Document the low level +classes + | ++ + | ++ + | +
| + Come up with detailed How-To’s + | ++ + | ++ + | +
HWPF is our port of the Microsoft Word 97 file format to pure Java. It supports read and write capability. - Please see the HWPF project page for more information. This component is + Please see the HWPF project page for more information. This component is in the early stages of design. Jump in!
- HDF is the set of APIs + HWPF is the set of APIs for reading and writing Microsoft Word 97(-XP) spreadsheet using (only) Java.
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.
- The HDF API will include: + The HWPF API will include:
- The minimum system requirements for the the HDF API are: + The minimum system requirements for the the HWPF API are:
- 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.
- 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 - HDF-Seite. + HWPF-Seite. Diese Komponente ist noch nicht sehr weit fortgeschritten. Wir suchen Entwickler, die mitmachen.
diff --git a/src/documentation/content/xdocs/trans/es/book.xml b/src/documentation/content/xdocs/trans/es/book.xml index 84c747103c..060e3f6d57 100644 --- a/src/documentation/content/xdocs/trans/es/book.xml +++ b/src/documentation/content/xdocs/trans/es/book.xml @@ -14,7 +14,7 @@- 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.
- 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.
- 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.
- 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.
- 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.
- En algún momento decidimos finalmente remitir el proyecto a + En alg momento decidimos finalmente remitir el proyecto a El Proyecto Cocoon - de Apache, 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, 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!
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.
- 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.
- 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.
- 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.
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!
HSSF es nuestra adaptaci del formato de fichero de Microsoft Excel 97(-2002) a Java puro. Soporta lectura y escritura. Por favor, vea la pina del proyecto HSSF para m informaci.
HDF es nuestra adaptaci del formato de fichero de Microsoft Word 97 a Java puro. Soporta lectura y escritura.
- Por favor, vea la pina del proyecto HDF para m informaci. Este
+ HWPF es nuestra adaptaci del formato de fichero de Microsoft Word 97 a Java puro. Soporta lectura y escritura.
+ Por favor, vea la pina del proyecto HWPF para m informaci. Este
componente esten la fase inicial de dise. alta dentro!
- HDF es el conjunto de APIs para la lectura y + HWPF es el conjunto de APIs para la lectura y escritura de documentos Word 97(-XP) de Microsoft utilizando (únicamente) Java.