poi-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From n...@apache.org
Subject cvs commit: jakarta-poi/src/documentation/content/xdocs/hslf ppt-file-format.xml
Date Sun, 04 Sep 2005 20:09:11 GMT
nick        2005/09/04 13:09:11

  Modified:    src/documentation/content/xdocs/hslf ppt-file-format.xml
  Log:
  NCB: Updated documentation on StyleTextPropAtom
  
  Revision  Changes    Path
  1.3       +76 -41    jakarta-poi/src/documentation/content/xdocs/hslf/ppt-file-format.xml
  
  Index: ppt-file-format.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-poi/src/documentation/content/xdocs/hslf/ppt-file-format.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ppt-file-format.xml	7 Aug 2005 15:04:46 -0000	1.2
  +++ ppt-file-format.xml	4 Sep 2005 20:09:11 -0000	1.3
  @@ -219,57 +219,92 @@
   			be one of these records.
   		</p>
   		<p>
  -			Firstly, this contains the number of characters it applies to,
  -			stored in a 2 byte little endian number.
  -			Normally, this will be the same as the number of characters
  -			in the text record. Then there are two values which encode
  -			paragraph properties (alignment, text spacing etc), both 4
  -			byte little endian numbers.
  +			This record is made up of two lists of lists. Firstly, 
  +			there's a list of paragraph stylings - each made up of the
  +			number of characters it applies two, followed by the matching
  +			styling elements. Following that is the equivalent for 
  +			character stylings.
   		</p>
   		<p>
  -			Following this is one block of information for each subsequent
  -			bit of text with a different styling. (If your text was
  -			10 characters in blue, then 10 in red, you would have two blocks).
  -			Firstly is the number of characters it applies to, or 0 if it
  -			applies to all remaining text. (This is a 2 byte little endian
  -			number). Then there is a number (4 byte little endian) that
  -			encodes if the text is bold/italic/underlined. If that number
  -			was non zero, it is followed by another 4 byte number, that
  -			encodes further text styling information. If it was zero,
  -			then it's followed by a 2 byte number.
  +			Each styling list (in either list) starts with the number 
  +			of characters it applies to, stored in a 2 byte little 
  +			endian number. If it is a paragraph styling, it will be
  +			followed by a 2 byte number (of unknown use). After this is
  +			a four byte number, which is a mask indicating which stylings
  +			will follow. You then have an entry for each of the stylings
  +			indicated in the mask. Finally, you move onto the next set
  +			of stylings. 
   		</p>
   		<p>
  -			In the character styling block, the first number after the
  -			character count indicated the bold/italic/underlined status
  -			of the text. If you binary AND it with 0x00010000 (65536) and
  -			get that value back, it is in bold. If you binary AND it with
  -			0x00020000 (131072) and get that value back, it is in italic.
  -			If you binary AND it with 0x00040000 (262144) and get that
  -			value back, it is underlined.
  +			Each styling has a specific mask flag to indicate its
  +			presence. (The list may be found towards the top of
  +			org.apache.poi.hslf.record.StyleTextPropAtom.java, and is
  +			too long to sensibly include here). For each styling entry
  +			will occur in the order of its mask value (so one with mask
  +			1 will come first, followed by the next higest mask value).
  +			Depending on the styling, it is either made up of a 2 byte
  +			or 4 byte numeric value. The meaning of the value will
  +			depend on the styling (eg for font.size, it is the font
  +			size in points).
  +		</p>
  +		<p>
  +			Some stylings are actually mask stylings. For these, the
  +			value will be a 4 byte number. This is then processed as 
  +			mask, to indicate a number of different sub-stylings. 
  +			The styling for bold/italic/underline is one such example.
   		</p>
   <source>
   hex on disk      decimal        description
   -----------      -------        -----------
  +
   0000             0              No options
   A10F             4001           Record type is 4001
  -2E00 0000        46             Length of data is 46 bytes
  -5300             83             The paragraph stylings apply to 83 characters
  -0000 0000        0              Paragraph stylings 1 - as per the master
  -0000 0000        0              Paragraph stylings 2 - as per the master
  -
  -1E00             30             These character properties apply to 30 characters
  -0000 0100        65536          Bold
  -0000 0100        65536          ??
  -1C00             28             These character properties apply to 28 characters
  -0000 0200        131072         Italic
  -0400 0200        131076         ??
  -0000             0              These character properties apply to the remaining characters
  -0005 1900        1639680        Bold
  -0000 0000        0              ??
  -
  -0400             4              ??
  -FF33             13311          ??
  -00FE             65024          ??
  +8000 0000        128            Length of data is 128 bytes
  +1E00 0000        30             The paragraph styling applies to 30 characters
  +0000             0              Paragraph options are 0
  +0018 0000        6144           0x0800=Text Alignment, 0x1000=Line Spacing
  +0000             0              Text Alignment = Left
  +5000             80             Line Spacing = 80
  +
  +1C00 0000        28             The paragraph styling applies to 28 characters
  +0000             0              Paragraph options are 0
  +0010 0000        4096           0x1000=Line Spacing
  +5000             80             Line Spacing = 80
  +
  +1900 0000        25             The paragraph styling applies to 25 characters
  +0000             0              Paragraph options are 0
  +0018 0000        6144           0x0800=Text Alignment, 0x1000=Line Spacing
  +0200             0              Text Alignment = Right
  +5000             80             Line Spacing = 80
  +
  +6100 0000        61             The paragraph styling applies to 61 characters
  +                                (includes final CR)
  +0000             0              Paragraph options are 0
  +0018 0000        6144           0x0800=Text Alignment, 0x1000=Line Spacing
  +0000             0              Text Alignment = Left
  +5000             80             Line Spacing = 80
  +
  +1E00 0000        30             The character styling applies to 30 characters
  +0100 0200        131073         0x0001=Char Props Mask, 0x20000=Font Size
  +0100             1              Char Props 0x0001=Bold
  +1400             20             Font Size = 20
  +
  +1C00 0000        28             The character styling applies to 28 characters
  +0200 0600        393218         0x0002=Char Props Mask, 0x20000=Font Size,  0x40000=Font
Color
  +0200             2              Char Props 0x0002=Italic
  +1400             20             Font Size = 20
  +0000 0005        83886080       Blue
  + 
  +1900 0000        25             The character styling applies to 25 characters
  +0000 0600        393216         0x20000=Font Size,  0x40000=Font Color
  +1400             20             Font Size = 20
  +FF33 00FE        4261426175     Red
  +
  +6000 0000        96             The character styling applies to 96 characters
  +0400 0300        196612         0x0004=Char Props Mask, 0x10000=Font Index, 0x20000=Font
Size
  +0400             4              Char Props 0x0004=Underlined
  +0100             1              Font Index = 1 (2nd Font in table)
  +1800             24             Font Size = 24
   </source>
   		</section>
   	</body>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: poi-dev-unsubscribe@jakarta.apache.org
Mailing List:    http://jakarta.apache.org/site/mail2.html#poi
The Apache Jakarta POI Project: http://jakarta.apache.org/poi/


Mime
View raw message