poi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew C. Oliver" <acoli...@apache.org>
Subject Re: Comments are part of Escher!
Date Fri, 23 Jan 2004 02:10:51 GMT
It should be committed in a matter days.  Once that happens, I really would
like to see you get more involved and perhaps become a committer.  It seems
like you know what you're doing so it only makes sense.  You're certainly
welcome in man.

-Andy
-- 
Andrew C. Oliver
http://www.superlinksoftware.com/poi.jsp
Custom enhancements and Commercial Implementation for Jakarta POI

http://jakarta.apache.org/poi
For Java and Excel, Got POI?

The views expressed in this email are those of the author and are almost
definitely not shared by the Apache Software Foundation, its board or its
general membership.  In fact they probably most definitively disagree with
everything espoused in the above email.

> From: Michael Zalewski <zalewski@optonline.net>
> Reply-To: "POI Developers List" <poi-dev@jakarta.apache.org>
> Date: Thu, 22 Jan 2004 20:06:07 -0500
> To: POI Developers List <poi-dev@jakarta.apache.org>
> Subject: Comments are part of Escher!
> 
> I was surprised when you said that Comments are a form of picture. So I
> created a simple spreadsheet with a single column, then ran it through the
> Escher enhanced BiffViewer that I started work on some time ago.
> 
> Sure enough, one comment came out as two groups of Escher objects, and a
> bunch of record types not yet supported by BiffViewer.
> 
> I would post this code if the community were interested, but consider this:
> 
> 1) A committer promises Escher support "real soon now". (I am not a
> committer)
> 2) My Escher dump program runs on 1.5. Something broke on 2.0.
> 3) It's larger than a patch. There are 45 classes in a new package which I
> called org.apache.poi.hdwgf (Horrible Drawing Format). There are 3 new
> classes in org.apache.poi.hssf.record, and a couple modified. There are also
> about 30 Junit test cases. So the 'patch' would contain about 100 source
> files.
> 4) I put the classes in a separate package so that I could work with drawing
> objects in Microsoft Project. This works well.
> 5) My patch does not alter HSSFSheet in any significant way. Just
> BiffViewer. Mostly, it's good for examining the low level structures created
> in Excel when you use the drawing layer.
> 
> If I were to submit my work, someone (of the implementers) would have to
> commit 100 files. That's a lot of work. And it may not make sense if the
> implementers have their own design for Escher support, which is likely
> incompatible.
> 
> In view of the fact that the actual implementers of HSSF have their own
> Escher support, I don't think it's appropriate to include my work at this
> point. However, once Escher support is in, I am pretty sure I will be able
> to submit smaller patches to enhance the support.
> 
> Here is part of the output of my Escher parser (enhanced version of
> BiffViewer), on a workbook with a single comment in Cell A1.
> ...
> ============================================
> Offset 0x726 (1830)
> rectype = 0xec, recsize = 0xc8
> -BEGIN DUMP---------------------------------
> 00000000 0F 00 02 F0 C8 00 00 00 10 00 08 F0 08 00 00 00 ................
> 00000010 02 00 00 00 01 04 00 00 0F 00 03 F0 B0 00 00 00 ................
> 00000020 0F 00 04 F0 28 00 00 00 01 00 09 F0 10 00 00 00 ....(...........
> 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
> 00000040 02 00 0A F0 08 00 00 00 00 04 00 00 05 00 00 00 ................
> 00000050 0F 00 04 F0 78 00 00 00 A2 0C 0A F0 08 00 00 00 ....x...........
> 00000060 01 04 00 00 00 0A 00 00 93 00 0B F0 36 00 00 00 ............6...
> 00000070 80 00 A8 3E 9F 01 BF 00 08 00 08 00 58 01 00 00 ...>........X...
> 00000080 00 00 81 01 50 00 00 08 83 01 50 00 00 08 BF 01 ....P.....P.....
> 00000090 10 00 11 00 01 02 00 00 00 00 3F 02 03 00 03 00 ..........?.....
> 000000A0 BF 03 00 00 08 00 00 00 10 F0 12 00 00 00 03 00 ................
> 000000B0 01 00 F0 00 00 00 1E 00 03 00 F0 00 04 00 78 00 ..............x.
> 000000C0 00 00 11 F0 00 00 00 00                         ........
> -END DUMP-----------------------------------
> recordid = 0xec, size =200
> [MSODRAWING]
> Drawing Container n=0
> Client Anchor Atom v=0 (f008) n=1
>   Number of Shapes: 2
>   Last Assigned Shape ID: 1:1
> Shape Group Container (f003) n=0
>   Shape Container n=0
>     DrawingShapeGroup Atom v=1 n=0
>       Boundary: (0,0)-(0,0)
>     Shape v=2 (f00a) Primitive
>       ShapeId: 1:0
>       Flags: Group, Patriarch
>   Shape Container n=0
>     Shape v=2 (f00a) Unknown Type 202
>       ShapeId: 1:1
>       Flags: Anchored, Has Property
>     Property Table Atom (f00b) v=3, 9 properties
>       Property Table
>         Unknown Property (128): 27213480
>         [f]Size Text to Fit Shape (191): 524296
>         Unknown Property (344): 0
>         [color]Background Color (385): 134217808
>         Unknown Property (387): 134217808
>         [f]Fill Flags (447): 1114128
>         Unknown Property (513): 0
>         Unknown Property (575): 196611
>         Unknown Property (959): 524288
>     Client Anchor Atom v=0 (f010) Drawing ID=0
>       Binary Data
>         03 00 01 00 F0 00 00 00 1E 00 03 00 F0 00 04 00
>         78 00
> [/MSODRAWING]
> 
> ============================================
> Offset 0x7f2 (2034)
> rectype = 0x5d, recsize = 0x34
> -BEGIN DUMP---------------------------------
> 00000000 15 00 12 00 19 00 01 00 11 40 A8 3E 9F 01 B0 09 .........@.>....
> 00000010 DF 00 00 00 00 00 0D 00 16 00 C0 28 84 0E D1 AE ...........(....
> 00000020 F4 4A BD 11 4D 2F B0 8C D7 D5 00 00 10 00 00 00 .J..M/..........
> 00000030 00 00 00 00                                     ....
> -END DUMP-----------------------------------
> recordid = 0x5d, size =52
> [UNKNOWN RECORD:5d]
>   .id        = 5d
> [/UNKNOWN RECORD]
> 
> ============================================
> Offset 0x82a (2090)
> rectype = 0xec, recsize = 0x8
> -BEGIN DUMP---------------------------------
> 00000000 00 00 0D F0 00 00 00 00                         ........
> -END DUMP-----------------------------------
> recordid = 0xec, size =8
> [MSODRAWING]
> Atom (f00d) v=0 n=0
> Binary Data
> [/MSODRAWING]
> 
> ============================================
> Offset 0x836 (2102)
> rectype = 0x1b6, recsize = 0x12
> -BEGIN DUMP---------------------------------
> 00000000 12 02 00 00 00 00 00 00 00 00 20 00 18 00 00 00 .......... .....
> 00000010 00 00                                           ..
> -END DUMP-----------------------------------
> recordid = 0x1b6, size =18
> [UNKNOWN RECORD:1b6]
>   .id        = 1b6
> [/UNKNOWN RECORD]
> 
> ============================================
> Offset 0x84c (2124)
> rectype = 0x3c, recsize = 0x21
> -BEGIN DUMP---------------------------------
> 00000000 00 4D 69 63 68 61 65 6C 20 5A 61 6C 65 77 73 6B .Michael Zalewsk
> 00000010 69 3A 0A 41 20 63 6F 6D 6D 65 6E 74 20 68 65 72 i:.A comment her
> 00000020 65                                              e
> -END DUMP-----------------------------------
> recordid = 0x3c, size =33
> [CONTINUE RECORD]
>   .id        = 3c
> [/CONTINUE RECORD]
> 
> -----PRECONTINUED LAST RECORD WOULD SERIALIZE LIKE:
> 00000000 B6 01 12 00 12 02 00 00 00 00 00 00 00 00 20 00 .............. .
> 00000010 18 00 00 00 00 00                               ......
> 
> -----PRECONTINUED----------------------------------
> -----CONTINUED LAST RECORD WOULD SERIALIZE LIKE:
> 00000000 B6 01 12 00 12 02 00 00 00 00 00 00 00 00 20 00 .............. .
> 00000010 18 00 00 00 00 00                               ......
> 
> -----CONTINUED----------------------------------
> ============================================
> Offset 0x871 (2161)
> rectype = 0x3c, recsize = 0x18
> -BEGIN DUMP---------------------------------
> 00000000 00 00 06 00 62 00 0E 00 11 00 05 00 59 00 0E 00 ....b.......Y...
> 00000010 20 00 00 00 00 00 00 00                          .......
> -END DUMP-----------------------------------
> recordid = 0x3c, size =24
> [CONTINUE RECORD]
>   .id        = 3c
> [/CONTINUE RECORD]
> 
> -----PRECONTINUED LAST RECORD WOULD SERIALIZE LIKE:
> 00000000 B6 01 12 00 12 02 00 00 00 00 00 00 00 00 20 00 .............. .
> 00000010 18 00 00 00 00 00                               ......
> 
> -----PRECONTINUED----------------------------------
> -----CONTINUED LAST RECORD WOULD SERIALIZE LIKE:
> 00000000 B6 01 12 00 12 02 00 00 00 00 00 00 00 00 20 00 .............. .
> 00000010 18 00 00 00 00 00                               ......
> 
> -----CONTINUED----------------------------------
> ============================================
> Offset 0x88d (2189)
> rectype = 0xed, recsize = 0x18
> -BEGIN DUMP---------------------------------
> 00000000 00 00 19 F1 10 00 00 00 01 00 00 00 00 00 00 00 ................
> 00000010 01 04 00 00 01 04 00 00                         ........
> -END DUMP-----------------------------------
> recordid = 0xed, size =24
> [MSODRAWINGSELECTION]
> Selection Atom v=0 (f119) n=0
> Number of Shapes Selected: 1
> Selection Kind: 0
> Focus SPID: 1:1
> SPID List
>   01 00 00 00
> [/MSODRAWINGSELECTION]
> 
> ============================================
> Offset 0x8a9 (2217)
> rectype = 0x1c, recsize = 0x1c
> -BEGIN DUMP---------------------------------
> 00000000 00 00 00 00 02 00 01 00 10 00 00 4D 69 63 68 61 ...........Micha
> 00000010 65 6C 20 5A 61 6C 65 77 73 6B 69 74             el Zalewskit
> -END DUMP-----------------------------------
> recordid = 0x1c, size =28
> [UNKNOWN RECORD:1c]
>   .id        = 1c
> [/UNKNOWN RECORD]
> 
> ============================================
> ...
> 
> The first drawing record, which shows in my dump as 'Unknown Type 202', is
> the comment cell. Actually, Type 202 is a text box. The '5d' record which
> follows the first MSODRAWING is a OBJ record, which seems to correspond to
> every Shape object added to the worksheet. Record 1b6 is called TXO (Text
> Object).  It is followed by two CONTINUE records, the first of which
> contains the text of the comment. Record type 1c is called COMMENT. But it
> actually contains only the author of the comment, and a reference to the OBJ
> record that corresponds to the shape for the comment box.
> 
> Curiously, even though comments are part of Escher, you cannot create groups
> of objects that contain comments. (You can group shapes with other objects
> such as charts).
> 
> 
> -----Original Message-----
> From: Height, Jason [mailto:jheight@subcorp.com.au]
> Sent: Thursday, January 22, 2004 3:52 PM
> To: 'POI Developers List'
> Subject: RE: Support for Images and charting
> 
> Michael
> 
> Clearly you have a good idea of the way ahead, so why don't you and Kais
> start submitting patches based on the work that you have done thus far.
> 
> I too seen the thread that mentioned to hold off, but I think that if some
> code starts to drift in then it may start to bring the issue to the front of
> everyones minds and we can start to move on this. I have been waiting for
> hyperlinks and Comments (which I believe are a form of picture) FOR EVER!
> 
> Thanks
> 
> Jason Height
> 
> [snip]
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: poi-dev-help@jakarta.apache.org
> 


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


Mime
View raw message