You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2019/10/12 16:32:53 UTC
svn commit: r1868352 [2/6] - in /poi/trunk/src: java/org/apache/poi/ddf/
java/org/apache/poi/hssf/model/ java/org/apache/poi/hssf/usermodel/
java/org/apache/poi/sl/usermodel/ scratchpad/src/org/apache/poi/hslf/model/
scratchpad/src/org/apache/poi/hslf/...
Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherDump.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherDump.java?rev=1868352&r1=1868351&r2=1868352&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherDump.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherDump.java Sat Oct 12 16:32:53 2019
@@ -17,25 +17,13 @@
package org.apache.poi.ddf;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
import java.io.PrintStream;
-import java.util.zip.InflaterInputStream;
-
-import org.apache.poi.util.HexDump;
-import org.apache.poi.util.HexRead;
-import org.apache.poi.util.LittleEndian;
/**
* Used to dump the contents of escher records to a PrintStream.
*/
public final class EscherDump {
- public EscherDump() {
- //
- }
-
/**
* Decodes the escher stream from a byte array and dumps the results to
* a print stream.
@@ -58,869 +46,6 @@ public final class EscherDump {
}
}
- /**
- * This version of dump is a translation from the open office escher dump routine.
- *
- * @param maxLength The number of bytes to read
- * @param in An input stream to read from.
- * @param out An output stream to write to.
- *
- * @throws IOException if the data can't be read or written
- * @throws LittleEndian.BufferUnderrunException if an buffer underrun occurs
- */
- public void dumpOld(long maxLength, InputStream in, PrintStream out)
- throws IOException, LittleEndian.BufferUnderrunException {
- long remainingBytes = maxLength;
- short options; // 4 bits for the version and 12 bits for the instance
- short recordId;
- int recordBytesRemaining; // including enclosing records
- short nDumpSize;
- String recordName;
-
- boolean atEOF = false;
-
- while (!atEOF && (remainingBytes > 0)) {
- options = LittleEndian.readShort( in );
- recordId = LittleEndian.readShort( in );
- recordBytesRemaining = LittleEndian.readInt( in );
-
- remainingBytes -= 2 + 2 + 4;
-
- switch ( recordId )
- {
- case (short) 0xF000:
- recordName = "MsofbtDggContainer";
- break;
- case (short) 0xF006:
- recordName = "MsofbtDgg";
- break;
- case (short) 0xF016:
- recordName = "MsofbtCLSID";
- break;
- case (short) 0xF00B:
- recordName = "MsofbtOPT";
- break;
- case (short) 0xF11A:
- recordName = "MsofbtColorMRU";
- break;
- case (short) 0xF11E:
- recordName = "MsofbtSplitMenuColors";
- break;
- case (short) 0xF001:
- recordName = "MsofbtBstoreContainer";
- break;
- case (short) 0xF007:
- recordName = "MsofbtBSE";
- break;
- case (short) 0xF002:
- recordName = "MsofbtDgContainer";
- break;
- case (short) 0xF008:
- recordName = "MsofbtDg";
- break;
- case (short) 0xF118:
- recordName = "MsofbtRegroupItem";
- break;
- case (short) 0xF120:
- recordName = "MsofbtColorScheme";
- break;
- case (short) 0xF003:
- recordName = "MsofbtSpgrContainer";
- break;
- case (short) 0xF004:
- recordName = "MsofbtSpContainer";
- break;
- case (short) 0xF009:
- recordName = "MsofbtSpgr";
- break;
- case (short) 0xF00A:
- recordName = "MsofbtSp";
- break;
- case (short) 0xF00C:
- recordName = "MsofbtTextbox";
- break;
- case (short) 0xF00D:
- recordName = "MsofbtClientTextbox";
- break;
- case (short) 0xF00E:
- recordName = "MsofbtAnchor";
- break;
- case (short) 0xF00F:
- recordName = "MsofbtChildAnchor";
- break;
- case (short) 0xF010:
- recordName = "MsofbtClientAnchor";
- break;
- case (short) 0xF011:
- recordName = "MsofbtClientData";
- break;
- case (short) 0xF11F:
- recordName = "MsofbtOleObject";
- break;
- case (short) 0xF11D:
- recordName = "MsofbtDeletedPspl";
- break;
- case (short) 0xF005:
- recordName = "MsofbtSolverContainer";
- break;
- case (short) 0xF012:
- recordName = "MsofbtConnectorRule";
- break;
- case (short) 0xF013:
- recordName = "MsofbtAlignRule";
- break;
- case (short) 0xF014:
- recordName = "MsofbtArcRule";
- break;
- case (short) 0xF015:
- recordName = "MsofbtClientRule";
- break;
- case (short) 0xF017:
- recordName = "MsofbtCalloutRule";
- break;
- case (short) 0xF119:
- recordName = "MsofbtSelection";
- break;
- case (short) 0xF122:
- recordName = "MsofbtUDefProp";
- break;
- default:
- if ( recordId >= (short) 0xF018 && recordId <= (short) 0xF117 ) {
- recordName = "MsofbtBLIP";
- } else if ( ( options & (short) 0x000F ) == (short) 0x000F ) {
- recordName = "UNKNOWN container";
- } else {
- recordName = "UNKNOWN ID";
- }
- }
-
- StringBuilder stringBuf = new StringBuilder();
- stringBuf.append( " " );
- stringBuf.append( HexDump.toHex( recordId ) );
- stringBuf.append( " " ).append( recordName ).append( " [" );
- stringBuf.append( HexDump.toHex( options ) );
- stringBuf.append( ',' );
- stringBuf.append( HexDump.toHex( recordBytesRemaining ) );
- stringBuf.append( "] instance: " );
- stringBuf.append( HexDump.toHex( ( (short) ( options >> 4 ) ) ) );
- out.println(stringBuf);
- stringBuf.setLength(0);
-
-
- if ( recordId == (short) 0xF007 && 36 <= remainingBytes && 36 <= recordBytesRemaining )
- { // BSE, FBSE
- // ULONG nP = pIn->GetRecPos();
-
- byte n8;
- // short n16;
- // int n32;
-
- stringBuf = stringBuf.append( " btWin32: " );
- n8 = (byte) in.read();
- stringBuf.append( HexDump.toHex( n8 ) );
- stringBuf.append( getBlipType( n8 ) );
- stringBuf.append( " btMacOS: " );
- n8 = (byte) in.read();
- stringBuf.append( HexDump.toHex( n8 ) );
- stringBuf.append( getBlipType( n8 ) );
- out.println(stringBuf);
-
- out.println( " rgbUid:" );
- HexDump.dump( in, out, 0, 16 );
-
- out.print( " tag: " );
- outHex( 2, in, out );
- out.println();
- out.print( " size: " );
- outHex( 4, in, out );
- out.println();
- out.print( " cRef: " );
- outHex( 4, in, out );
- out.println();
- out.print( " offs: " );
- outHex( 4, in, out );
- out.println();
- out.print( " usage: " );
- outHex( 1, in, out );
- out.println();
- out.print( " cbName: " );
- outHex( 1, in, out );
- out.println();
- out.print( " unused2: " );
- outHex( 1, in, out );
- out.println();
- out.print( " unused3: " );
- outHex( 1, in, out );
- out.println();
-
- // subtract the number of bytes we've read
- remainingBytes -= 36;
- //n -= pIn->GetRecPos() - nP;
- recordBytesRemaining = 0; // loop to MsofbtBLIP
- }
- else if ( recordId == (short) 0xF010 && 0x12 <= remainingBytes && 0x12 <= recordBytesRemaining )
- { // ClientAnchor
- //ULONG nP = pIn->GetRecPos();
- // short n16;
-
- out.print( " Flag: " );
- outHex( 2, in, out );
- out.println();
- out.print( " Col1: " );
- outHex( 2, in, out );
- out.print( " dX1: " );
- outHex( 2, in, out );
- out.print( " Row1: " );
- outHex( 2, in, out );
- out.print( " dY1: " );
- outHex( 2, in, out );
- out.println();
- out.print( " Col2: " );
- outHex( 2, in, out );
- out.print( " dX2: " );
- outHex( 2, in, out );
- out.print( " Row2: " );
- outHex( 2, in, out );
- out.print( " dY2: " );
- outHex( 2, in, out );
- out.println();
-
- remainingBytes -= 18;
- recordBytesRemaining -= 18;
-
- }
- else if ( recordId == (short) 0xF00B || recordId == (short) 0xF122 )
- { // OPT
- int nComplex = 0;
- out.println( " PROPID VALUE" );
- while ( recordBytesRemaining >= 6 + nComplex && remainingBytes >= 6 + nComplex )
- {
- short n16;
- int n32;
- n16 = LittleEndian.readShort( in );
- n32 = LittleEndian.readInt( in );
-
- recordBytesRemaining -= 6;
- remainingBytes -= 6;
- out.print( " " );
- out.print( HexDump.toHex( n16 ) );
- out.print( " (" );
- int propertyId = n16 & (short) 0x3FFF;
- out.print( " " + propertyId );
- if ( ( n16 & (short) 0x8000 ) == 0 )
- {
- if ( ( n16 & (short) 0x4000 ) != 0 ) {
- out.print( ", fBlipID" );
- }
- out.print( ") " );
-
- out.print( HexDump.toHex( n32 ) );
-
- if ( ( n16 & (short) 0x4000 ) == 0 )
- {
- out.print( " (" );
- out.print( dec1616( n32 ) );
- out.print( ')' );
- out.print( " {" + propName( (short)propertyId ) + "}" );
- }
- out.println();
- }
- else
- {
- out.print( ", fComplex) " );
- out.print( HexDump.toHex( n32 ) );
- out.print( " - Complex prop len" );
- out.println( " {" + propName( (short)propertyId ) + "}" );
-
- nComplex += n32;
- }
-
- }
- // complex property data
- while ( ( nComplex & remainingBytes ) > 0 )
- {
- nDumpSize = ( nComplex > (int) remainingBytes ) ? (short) remainingBytes : (short) nComplex;
- HexDump.dump( in, out, 0, nDumpSize );
- nComplex -= nDumpSize;
- recordBytesRemaining -= nDumpSize;
- remainingBytes -= nDumpSize;
- }
- }
- else if ( recordId == (short) 0xF012 )
- {
- out.print( " Connector rule: " );
- out.print( LittleEndian.readInt( in ) );
- out.print( " ShapeID A: " );
- out.print( LittleEndian.readInt( in ) );
- out.print( " ShapeID B: " );
- out.print( LittleEndian.readInt( in ) );
- out.print( " ShapeID connector: " );
- out.print( LittleEndian.readInt( in ) );
- out.print( " Connect pt A: " );
- out.print( LittleEndian.readInt( in ) );
- out.print( " Connect pt B: " );
- out.println( LittleEndian.readInt( in ) );
-
- recordBytesRemaining -= 24;
- remainingBytes -= 24;
- }
- else if ( recordId >= (short) 0xF018 && recordId < (short) 0xF117 )
- {
- out.println( " Secondary UID: " );
- HexDump.dump( in, out, 0, 16 );
- out.println( " Cache of size: " + HexDump.toHex( LittleEndian.readInt( in ) ) );
- out.println( " Boundary top: " + HexDump.toHex( LittleEndian.readInt( in ) ) );
- out.println( " Boundary left: " + HexDump.toHex( LittleEndian.readInt( in ) ) );
- out.println( " Boundary width: " + HexDump.toHex( LittleEndian.readInt( in ) ) );
- out.println( " Boundary height: " + HexDump.toHex( LittleEndian.readInt( in ) ) );
- out.println( " X: " + HexDump.toHex( LittleEndian.readInt( in ) ) );
- out.println( " Y: " + HexDump.toHex( LittleEndian.readInt( in ) ) );
- out.println( " Cache of saved size: " + HexDump.toHex( LittleEndian.readInt( in ) ) );
- out.println( " Compression Flag: " + HexDump.toHex( (byte) in.read() ) );
- out.println( " Filter: " + HexDump.toHex( (byte) in.read() ) );
- out.println( " Data (after decompression): " );
-
- recordBytesRemaining -= 34 + 16;
- remainingBytes -= 34 + 16;
-
- nDumpSize = ( recordBytesRemaining > (int) remainingBytes ) ? (short) remainingBytes : (short) recordBytesRemaining;
-
-
- byte[] buf = new byte[nDumpSize];
- int read = in.read( buf );
- while ( read != -1 && read < nDumpSize ) {
- read += in.read( buf, read, buf.length );
- }
- ByteArrayInputStream bin = new ByteArrayInputStream( buf );
-
- InputStream in1 = new InflaterInputStream( bin );
- int bytesToDump = -1;
- HexDump.dump( in1, out, 0, bytesToDump );
-
- recordBytesRemaining -= nDumpSize;
- remainingBytes -= nDumpSize;
-
- }
-
- boolean isContainer = ( options & (short) 0x000F ) == (short) 0x000F;
- if ( isContainer && remainingBytes >= 0 )
- { // Container
- if ( recordBytesRemaining <= (int) remainingBytes ) {
- out.println( " completed within" );
- } else {
- out.println( " continued elsewhere" );
- }
- }
- else if ( remainingBytes >= 0 )
- // -> 0x0000 ... 0x0FFF
- {
- nDumpSize = ( recordBytesRemaining > (int) remainingBytes ) ? (short) remainingBytes : (short) recordBytesRemaining;
-
- if ( nDumpSize != 0 )
- {
- HexDump.dump( in, out, 0, nDumpSize );
- remainingBytes -= nDumpSize;
- }
- } else {
- out.println( " >> OVERRUN <<" );
- }
- }
-
- }
-
- /**
- * Returns a property name given a property id. This is used only by the
- * old escher dump routine.
- *
- * @param propertyId The property number for the name
- * @return A descriptive name.
- */
- private String propName(short propertyId) {
- final class PropName {
- final int _id;
- final String _name;
- public PropName(int id, String name) {
- _id = id;
- _name = name;
- }
- }
-
- final PropName[] props = new PropName[] {
- new PropName(4, "transform.rotation"),
- new PropName(119, "protection.lockrotation"),
- new PropName(120, "protection.lockaspectratio"),
- new PropName(121, "protection.lockposition"),
- new PropName(122, "protection.lockagainstselect"),
- new PropName(123, "protection.lockcropping"),
- new PropName(124, "protection.lockvertices"),
- new PropName(125, "protection.locktext"),
- new PropName(126, "protection.lockadjusthandles"),
- new PropName(127, "protection.lockagainstgrouping"),
- new PropName(128, "text.textid"),
- new PropName(129, "text.textleft"),
- new PropName(130, "text.texttop"),
- new PropName(131, "text.textright"),
- new PropName(132, "text.textbottom"),
- new PropName(133, "text.wraptext"),
- new PropName(134, "text.scaletext"),
- new PropName(135, "text.anchortext"),
- new PropName(136, "text.textflow"),
- new PropName(137, "text.fontrotation"),
- new PropName(138, "text.idofnextshape"),
- new PropName(139, "text.bidir"),
- new PropName(187, "text.singleclickselects"),
- new PropName(188, "text.usehostmargins"),
- new PropName(189, "text.rotatetextwithshape"),
- new PropName(190, "text.sizeshapetofittext"),
- new PropName(191, "text.sizetexttofitshape"),
- new PropName(192, "geotext.unicode"),
- new PropName(193, "geotext.rtftext"),
- new PropName(194, "geotext.alignmentoncurve"),
- new PropName(195, "geotext.defaultpointsize"),
- new PropName(196, "geotext.textspacing"),
- new PropName(197, "geotext.fontfamilyname"),
- new PropName(240, "geotext.reverseroworder"),
- new PropName(241, "geotext.hastexteffect"),
- new PropName(242, "geotext.rotatecharacters"),
- new PropName(243, "geotext.kerncharacters"),
- new PropName(244, "geotext.tightortrack"),
- new PropName(245, "geotext.stretchtofitshape"),
- new PropName(246, "geotext.charboundingbox"),
- new PropName(247, "geotext.scaletextonpath"),
- new PropName(248, "geotext.stretchcharheight"),
- new PropName(249, "geotext.nomeasurealongpath"),
- new PropName(250, "geotext.boldfont"),
- new PropName(251, "geotext.italicfont"),
- new PropName(252, "geotext.underlinefont"),
- new PropName(253, "geotext.shadowfont"),
- new PropName(254, "geotext.smallcapsfont"),
- new PropName(255, "geotext.strikethroughfont"),
- new PropName(256, "blip.cropfromtop"),
- new PropName(257, "blip.cropfrombottom"),
- new PropName(258, "blip.cropfromleft"),
- new PropName(259, "blip.cropfromright"),
- new PropName(260, "blip.bliptodisplay"),
- new PropName(261, "blip.blipfilename"),
- new PropName(262, "blip.blipflags"),
- new PropName(263, "blip.transparentcolor"),
- new PropName(264, "blip.contrastsetting"),
- new PropName(265, "blip.brightnesssetting"),
- new PropName(266, "blip.gamma"),
- new PropName(267, "blip.pictureid"),
- new PropName(268, "blip.doublemod"),
- new PropName(269, "blip.picturefillmod"),
- new PropName(270, "blip.pictureline"),
- new PropName(271, "blip.printblip"),
- new PropName(272, "blip.printblipfilename"),
- new PropName(273, "blip.printflags"),
- new PropName(316, "blip.nohittestpicture"),
- new PropName(317, "blip.picturegray"),
- new PropName(318, "blip.picturebilevel"),
- new PropName(319, "blip.pictureactive"),
- new PropName(320, "geometry.left"),
- new PropName(321, "geometry.top"),
- new PropName(322, "geometry.right"),
- new PropName(323, "geometry.bottom"),
- new PropName(324, "geometry.shapepath"),
- new PropName(325, "geometry.vertices"),
- new PropName(326, "geometry.segmentinfo"),
- new PropName(327, "geometry.adjustvalue"),
- new PropName(328, "geometry.adjust2value"),
- new PropName(329, "geometry.adjust3value"),
- new PropName(330, "geometry.adjust4value"),
- new PropName(331, "geometry.adjust5value"),
- new PropName(332, "geometry.adjust6value"),
- new PropName(333, "geometry.adjust7value"),
- new PropName(334, "geometry.adjust8value"),
- new PropName(335, "geometry.adjust9value"),
- new PropName(336, "geometry.adjust10value"),
- new PropName(378, "geometry.shadowOK"),
- new PropName(379, "geometry.3dok"),
- new PropName(380, "geometry.lineok"),
- new PropName(381, "geometry.geotextok"),
- new PropName(382, "geometry.fillshadeshapeok"),
- new PropName(383, "geometry.fillok"),
- new PropName(384, "fill.filltype"),
- new PropName(385, "fill.fillcolor"),
- new PropName(386, "fill.fillopacity"),
- new PropName(387, "fill.fillbackcolor"),
- new PropName(388, "fill.backopacity"),
- new PropName(389, "fill.crmod"),
- new PropName(390, "fill.patterntexture"),
- new PropName(391, "fill.blipfilename"),
- new PropName(392, "fill.blipflags"),
- new PropName(393, "fill.width"),
- new PropName(394, "fill.height"),
- new PropName(395, "fill.angle"),
- new PropName(396, "fill.focus"),
- new PropName(397, "fill.toleft"),
- new PropName(398, "fill.totop"),
- new PropName(399, "fill.toright"),
- new PropName(400, "fill.tobottom"),
- new PropName(401, "fill.rectleft"),
- new PropName(402, "fill.recttop"),
- new PropName(403, "fill.rectright"),
- new PropName(404, "fill.rectbottom"),
- new PropName(405, "fill.dztype"),
- new PropName(406, "fill.shadepreset"),
- new PropName(407, "fill.shadecolors"),
- new PropName(408, "fill.originx"),
- new PropName(409, "fill.originy"),
- new PropName(410, "fill.shapeoriginx"),
- new PropName(411, "fill.shapeoriginy"),
- new PropName(412, "fill.shadetype"),
- new PropName(443, "fill.filled"),
- new PropName(444, "fill.hittestfill"),
- new PropName(445, "fill.shape"),
- new PropName(446, "fill.userect"),
- new PropName(447, "fill.nofillhittest"),
- new PropName(448, "linestyle.color"),
- new PropName(449, "linestyle.opacity"),
- new PropName(450, "linestyle.backcolor"),
- new PropName(451, "linestyle.crmod"),
- new PropName(452, "linestyle.linetype"),
- new PropName(453, "linestyle.fillblip"),
- new PropName(454, "linestyle.fillblipname"),
- new PropName(455, "linestyle.fillblipflags"),
- new PropName(456, "linestyle.fillwidth"),
- new PropName(457, "linestyle.fillheight"),
- new PropName(458, "linestyle.filldztype"),
- new PropName(459, "linestyle.linewidth"),
- new PropName(460, "linestyle.linemiterlimit"),
- new PropName(461, "linestyle.linestyle"),
- new PropName(462, "linestyle.linedashing"),
- new PropName(463, "linestyle.linedashstyle"),
- new PropName(464, "linestyle.linestartarrowhead"),
- new PropName(465, "linestyle.lineendarrowhead"),
- new PropName(466, "linestyle.linestartarrowwidth"),
- new PropName(467, "linestyle.lineestartarrowlength"),
- new PropName(468, "linestyle.lineendarrowwidth"),
- new PropName(469, "linestyle.lineendarrowlength"),
- new PropName(470, "linestyle.linejoinstyle"),
- new PropName(471, "linestyle.lineendcapstyle"),
- new PropName(507, "linestyle.arrowheadsok"),
- new PropName(508, "linestyle.anyline"),
- new PropName(509, "linestyle.hitlinetest"),
- new PropName(510, "linestyle.linefillshape"),
- new PropName(511, "linestyle.nolinedrawdash"),
- new PropName(512, "shadowstyle.type"),
- new PropName(513, "shadowstyle.color"),
- new PropName(514, "shadowstyle.highlight"),
- new PropName(515, "shadowstyle.crmod"),
- new PropName(516, "shadowstyle.opacity"),
- new PropName(517, "shadowstyle.offsetx"),
- new PropName(518, "shadowstyle.offsety"),
- new PropName(519, "shadowstyle.secondoffsetx"),
- new PropName(520, "shadowstyle.secondoffsety"),
- new PropName(521, "shadowstyle.scalextox"),
- new PropName(522, "shadowstyle.scaleytox"),
- new PropName(523, "shadowstyle.scalextoy"),
- new PropName(524, "shadowstyle.scaleytoy"),
- new PropName(525, "shadowstyle.perspectivex"),
- new PropName(526, "shadowstyle.perspectivey"),
- new PropName(527, "shadowstyle.weight"),
- new PropName(528, "shadowstyle.originx"),
- new PropName(529, "shadowstyle.originy"),
- new PropName(574, "shadowstyle.shadow"),
- new PropName(575, "shadowstyle.shadowobsured"),
- new PropName(576, "perspective.type"),
- new PropName(577, "perspective.offsetx"),
- new PropName(578, "perspective.offsety"),
- new PropName(579, "perspective.scalextox"),
- new PropName(580, "perspective.scaleytox"),
- new PropName(581, "perspective.scalextoy"),
- new PropName(582, "perspective.scaleytox"),
- new PropName(583, "perspective.perspectivex"),
- new PropName(584, "perspective.perspectivey"),
- new PropName(585, "perspective.weight"),
- new PropName(586, "perspective.originx"),
- new PropName(587, "perspective.originy"),
- new PropName(639, "perspective.perspectiveon"),
- new PropName(640, "3d.specularamount"),
- new PropName(661, "3d.diffuseamount"),
- new PropName(662, "3d.shininess"),
- new PropName(663, "3d.edgethickness"),
- new PropName(664, "3d.extrudeforward"),
- new PropName(665, "3d.extrudebackward"),
- new PropName(666, "3d.extrudeplane"),
- new PropName(667, "3d.extrusioncolor"),
- new PropName(648, "3d.crmod"),
- new PropName(700, "3d.3deffect"),
- new PropName(701, "3d.metallic"),
- new PropName(702, "3d.useextrusioncolor"),
- new PropName(703, "3d.lightface"),
- new PropName(704, "3dstyle.yrotationangle"),
- new PropName(705, "3dstyle.xrotationangle"),
- new PropName(706, "3dstyle.rotationaxisx"),
- new PropName(707, "3dstyle.rotationaxisy"),
- new PropName(708, "3dstyle.rotationaxisz"),
- new PropName(709, "3dstyle.rotationangle"),
- new PropName(710, "3dstyle.rotationcenterx"),
- new PropName(711, "3dstyle.rotationcentery"),
- new PropName(712, "3dstyle.rotationcenterz"),
- new PropName(713, "3dstyle.rendermode"),
- new PropName(714, "3dstyle.tolerance"),
- new PropName(715, "3dstyle.xviewpoint"),
- new PropName(716, "3dstyle.yviewpoint"),
- new PropName(717, "3dstyle.zviewpoint"),
- new PropName(718, "3dstyle.originx"),
- new PropName(719, "3dstyle.originy"),
- new PropName(720, "3dstyle.skewangle"),
- new PropName(721, "3dstyle.skewamount"),
- new PropName(722, "3dstyle.ambientintensity"),
- new PropName(723, "3dstyle.keyx"),
- new PropName(724, "3dstyle.keyy"),
- new PropName(725, "3dstyle.keyz"),
- new PropName(726, "3dstyle.keyintensity"),
- new PropName(727, "3dstyle.fillx"),
- new PropName(728, "3dstyle.filly"),
- new PropName(729, "3dstyle.fillz"),
- new PropName(730, "3dstyle.fillintensity"),
- new PropName(763, "3dstyle.constrainrotation"),
- new PropName(764, "3dstyle.rotationcenterauto"),
- new PropName(765, "3dstyle.parallel"),
- new PropName(766, "3dstyle.keyharsh"),
- new PropName(767, "3dstyle.fillharsh"),
- new PropName(769, "shape.master"),
- new PropName(771, "shape.connectorstyle"),
- new PropName(772, "shape.blackandwhitesettings"),
- new PropName(773, "shape.wmodepurebw"),
- new PropName(774, "shape.wmodebw"),
- new PropName(826, "shape.oleicon"),
- new PropName(827, "shape.preferrelativeresize"),
- new PropName(828, "shape.lockshapetype"),
- new PropName(830, "shape.deleteattachedobject"),
- new PropName(831, "shape.backgroundshape"),
- new PropName(832, "callout.callouttype"),
- new PropName(833, "callout.xycalloutgap"),
- new PropName(834, "callout.calloutangle"),
- new PropName(835, "callout.calloutdroptype"),
- new PropName(836, "callout.calloutdropspecified"),
- new PropName(837, "callout.calloutlengthspecified"),
- new PropName(889, "callout.iscallout"),
- new PropName(890, "callout.calloutaccentbar"),
- new PropName(891, "callout.callouttextborder"),
- new PropName(892, "callout.calloutminusx"),
- new PropName(893, "callout.calloutminusy"),
- new PropName(894, "callout.dropauto"),
- new PropName(895, "callout.lengthspecified"),
- new PropName(896, "groupshape.shapename"),
- new PropName(897, "groupshape.description"),
- new PropName(898, "groupshape.hyperlink"),
- new PropName(899, "groupshape.wrappolygonvertices"),
- new PropName(900, "groupshape.wrapdistleft"),
- new PropName(901, "groupshape.wrapdisttop"),
- new PropName(902, "groupshape.wrapdistright"),
- new PropName(903, "groupshape.wrapdistbottom"),
- new PropName(904, "groupshape.regroupid"),
- new PropName(953, "groupshape.editedwrap"),
- new PropName(954, "groupshape.behinddocument"),
- new PropName(955, "groupshape.ondblclicknotify"),
- new PropName(956, "groupshape.isbutton"),
- new PropName(957, "groupshape.1dadjustment"),
- new PropName(958, "groupshape.hidden"),
- new PropName(959, "groupshape.print"),
- };
-
- for (int i = 0; i < props.length; i++) {
- if (props[i]._id == propertyId) {
- return props[i]._name;
- }
- }
-
- return "unknown property";
- }
-
- /**
- * Returns the blip description given a blip id.
- *
- * @param b blip id
- * @return A description.
- */
- private static String getBlipType(byte b) {
- return EscherBSERecord.getBlipType(b);
- }
-
- /**
- * Straight conversion from OO. Converts a type of float.
- */
- private String dec1616( int n32 )
- {
- String result = "";
- result += (short) ( n32 >> 16 );
- result += '.';
- result += (short) ( n32 & 0xFFFF );
- return result;
- }
-
- /**
- * Dumps out a hex value by reading from a input stream.
- *
- * @param bytes How many bytes this hex value consists of.
- * @param in The stream to read the hex value from.
- * @param out The stream to write the nicely formatted hex value to.
- */
- private void outHex( int bytes, InputStream in, PrintStream out ) throws IOException, LittleEndian.BufferUnderrunException
- {
- switch ( bytes )
- {
- case 1:
- out.print( HexDump.toHex( (byte) in.read() ) );
- break;
- case 2:
- out.print( HexDump.toHex( LittleEndian.readShort( in ) ) );
- break;
- case 4:
- out.print( HexDump.toHex( LittleEndian.readInt( in ) ) );
- break;
- default:
- throw new IOException( "Unable to output variable of that width" );
- }
- }
-
- /**
- * A simple test stub.
- *
- * @param args the args
- */
- public static void main( String[] args ) {
- main(args, System.out);
- }
-
- public static void main( String[] args, PrintStream out ) {
- String dump =
- "0F 00 00 F0 89 07 00 00 00 00 06 F0 18 00 00 00 " +
- "05 04 00 00 02 00 00 00 05 00 00 00 01 00 00 00 " +
- "01 00 00 00 05 00 00 00 4F 00 01 F0 2F 07 00 00 " +
- "42 00 07 F0 B7 01 00 00 03 04 3F 14 AE 6B 0F 65 " +
- "B0 48 BF 5E 94 63 80 E8 91 73 FF 00 93 01 00 00 " +
- "01 00 00 00 00 00 00 00 00 00 FF FF 20 54 1C F0 " +
- "8B 01 00 00 3F 14 AE 6B 0F 65 B0 48 BF 5E 94 63 " +
- "80 E8 91 73 92 0E 00 00 00 00 00 00 00 00 00 00 " +
- "D1 07 00 00 DD 05 00 00 4A AD 6F 00 8A C5 53 00 " +
- "59 01 00 00 00 FE 78 9C E3 9B C4 00 04 AC 77 D9 " +
- "2F 32 08 32 FD E7 61 F8 FF 0F C8 FD 05 C5 30 19 " +
- "10 90 63 90 FA 0F 06 0C 8C 0C 5C 70 19 43 30 EB " +
- "0E FB 05 86 85 0C DB 18 58 80 72 8C 70 16 0B 83 " +
- "05 56 51 29 88 C9 60 D9 69 0C 6C 20 26 23 03 C8 " +
- "74 B0 A8 0E 03 07 FB 45 56 C7 A2 CC C4 1C 06 66 " +
- "A0 0D 2C 40 39 5E 86 4C 06 3D A0 4E 10 D0 60 D9 " +
- "C8 58 CC E8 CF B0 80 61 3A 8A 7E 0D C6 23 AC 4F " +
- "E0 E2 98 B6 12 2B 06 73 9D 12 E3 52 56 59 F6 08 " +
- "8A CC 52 66 A3 50 FF 96 2B 94 E9 DF 4C A1 FE 2D " +
- "3A 03 AB 9F 81 C2 F0 A3 54 BF 0F 85 EE A7 54 FF " +
- "40 FB 7F A0 E3 9F D2 F4 4F 71 FE 19 58 FF 2B 31 " +
- "7F 67 36 3B 25 4F 99 1B 4E 53 A6 5F 89 25 95 E9 " +
- "C4 00 C7 83 12 F3 1F 26 35 4A D3 D2 47 0E 0A C3 " +
- "41 8E C9 8A 52 37 DC 15 A1 D0 0D BC 4C 06 0C 2B " +
- "28 2C 13 28 D4 EF 43 61 5A A0 58 3F 85 71 E0 4B " +
- "69 9E 64 65 FE 39 C0 E5 22 30 1D 30 27 0E 74 3A " +
- "18 60 FD 4A CC B1 2C 13 7D 07 36 2D 2A 31 85 B2 " +
- "6A 0D 74 1D 1D 22 4D 99 FE 60 0A F5 9B EC 1C 58 " +
- "FD 67 06 56 3F 38 0D 84 3C A5 30 0E 28 D3 AF C4 " +
- "A4 CA FA 44 7A 0D 65 6E 60 7F 4D A1 1B 24 58 F7 " +
- "49 AF A5 CC 0D CC DF 19 FE 03 00 F0 B1 25 4D 42 " +
- "00 07 F0 E1 01 00 00 03 04 39 50 BE 98 B0 6F 57 " +
- "24 31 70 5D 23 2F 9F 10 66 FF 00 BD 01 00 00 01 " +
- "00 00 00 00 00 00 00 00 00 FF FF 20 54 1C F0 B5 " +
- "01 00 00 39 50 BE 98 B0 6F 57 24 31 70 5D 23 2F " +
- "9F 10 66 DA 03 00 00 00 00 00 00 00 00 00 00 D1 " +
- "07 00 00 DD 05 00 00 4A AD 6F 00 8A C5 53 00 83 " +
- "01 00 00 00 FE 78 9C A5 52 BF 4B 42 51 14 3E F7 " +
- "DC 77 7A 16 45 48 8B 3C 48 A8 16 15 0D 6C 88 D0 " +
- "04 C3 40 A3 32 1C 84 96 08 21 04 A1 C5 5C A2 35 " +
- "82 C0 35 6A AB 1C 6A 6B A8 24 5A 83 68 08 84 84 " +
- "96 A2 86 A0 7F C2 86 5E E7 5E F5 41 E4 10 BC 03 " +
- "1F E7 FB F1 CE B9 F7 F1 9E 7C 05 2E 7A 37 9B E0 " +
- "45 7B 10 EC 6F 96 5F 1D 74 13 55 7E B0 6C 5D 20 " +
- "60 C0 49 A2 9A BD 99 4F 50 83 1B 30 38 13 0E 33 " +
- "60 A6 A7 6B B5 37 EB F4 10 FA 14 15 A0 B6 6B 37 " +
- "0C 1E B3 49 73 5B A5 C2 26 48 3E C1 E0 6C 08 4A " +
- "30 C9 93 AA 02 B8 20 13 62 05 4E E1 E8 D7 7C C0 " +
- "B8 14 95 5E BE B8 A7 CF 1E BE 55 2C 56 B9 78 DF " +
- "08 7E 88 4C 27 FF 7B DB FF 7A DD B7 1A 17 67 34 " +
- "6A AE BA DA 35 D1 E7 72 BE FE EC 6E FE DA E5 7C " +
- "3D EC 7A DE 03 FD 50 06 0B 23 F2 0E F3 B2 A5 11 " +
- "91 0D 4C B5 B5 F3 BF 94 C1 8F 24 F7 D9 6F 60 94 " +
- "3B C9 9A F3 1C 6B E7 BB F0 2E 49 B2 25 2B C6 B1 " +
- "EE 69 EE 15 63 4F 71 7D CE 85 CC C8 35 B9 C3 28 " +
- "28 CE D0 5C 67 79 F2 4A A2 14 23 A4 38 43 73 9D " +
- "2D 69 2F C1 08 31 9F C5 5C 9B EB 7B C5 69 19 B3 " +
- "B4 81 F3 DC E3 B4 8E 8B CC B3 94 53 5A E7 41 2A " +
- "63 9A AA 38 C5 3D 48 BB EC 57 59 6F 2B AD 73 1F " +
- "1D 60 92 AE 70 8C BB 8F CE 31 C1 3C 49 27 4A EB " +
- "DC A4 5B 8C D1 0B 0E 73 37 E9 11 A7 99 C7 E8 41 " +
- "69 B0 7F 00 96 F2 A7 E8 42 00 07 F0 B4 01 00 00 " +
- "03 04 1A BA F9 D6 A9 B9 3A 03 08 61 E9 90 FF 7B " +
- "9E E6 FF 00 90 01 00 00 01 00 00 00 00 00 00 00 " +
- "00 00 FF FF 20 54 1C F0 88 01 00 00 1A BA F9 D6 " +
- "A9 B9 3A 03 08 61 E9 90 FF 7B 9E E6 12 0E 00 00 " +
- "00 00 00 00 00 00 00 00 D1 07 00 00 DD 05 00 00 " +
- "4A AD 6F 00 8A C5 53 00 56 01 00 00 00 FE 78 9C " +
- "E3 13 62 00 02 D6 BB EC 17 19 04 99 FE F3 30 FC " +
- "FF 07 E4 FE 82 62 98 0C 08 C8 31 48 FD 07 03 06 " +
- "46 06 2E B8 8C 21 98 75 87 FD 02 C3 42 86 6D 0C " +
- "2C 40 39 46 38 8B 85 C1 02 AB A8 14 C4 64 B0 EC " +
- "34 06 36 10 93 91 01 64 3A 58 54 87 81 83 FD 22 " +
- "AB 63 51 66 62 0E 03 33 D0 06 16 A0 1C 2F 43 26 " +
- "83 1E 50 27 08 68 B0 6C 64 2C 66 F4 67 58 C0 30 " +
- "1D 45 BF 06 E3 11 D6 27 70 71 4C 5B 89 15 83 B9 " +
- "4E 89 71 29 AB 2C 7B 04 45 66 29 B3 51 A8 7F CB " +
- "15 CA F4 6F A6 50 FF 16 9D 81 D5 CF 40 61 F8 51 " +
- "AA DF 87 42 F7 53 AA 7F A0 FD 3F D0 F1 4F 69 FA " +
- "A7 38 FF 0C AC FF 95 98 BF 33 9B 9D 92 A7 CC 0D " +
- "A7 29 D3 AF C4 92 CA 74 62 80 E3 41 89 F9 0F 93 " +
- "1A A5 69 E9 23 07 85 E1 20 C7 64 45 A9 1B EE 8A " +
- "50 E8 06 5E 26 03 86 15 14 96 09 14 EA F7 A1 30 " +
- "2D 50 AC 9F C2 38 F0 A5 34 4F B2 32 FF 1C E0 72 " +
- "11 98 0E 98 13 07 38 1D 28 31 C7 B2 4C F4 1D D8 " +
- "B4 A0 C4 14 CA AA 35 D0 75 64 88 34 65 FA 83 29 " +
- "D4 6F B2 73 60 F5 9F A1 54 FF 0E CA D3 40 C8 53 " +
- "0A E3 E0 09 85 6E 50 65 7D 22 BD 86 32 37 B0 BF " +
- "A6 D0 0D 12 AC FB A4 D7 52 E6 06 E6 EF 0C FF 01 " +
- "97 1D 12 C7 42 00 07 F0 C3 01 00 00 03 04 BA 4C " +
- "B6 23 BA 8B 27 BE C8 55 59 86 24 9F 89 D4 FF 00 " +
- "9F 01 00 00 01 00 00 00 00 00 00 00 00 00 FF FF " +
- "20 54 1C F0 97 01 00 00 BA 4C B6 23 BA 8B 27 BE " +
- "C8 55 59 86 24 9F 89 D4 AE 0E 00 00 00 00 00 00 " +
- "00 00 00 00 D1 07 00 00 DD 05 00 00 4A AD 6F 00 " +
- "8A C5 53 00 65 01 00 00 00 FE 78 9C E3 5B C7 00 " +
- "04 AC 77 D9 2F 32 08 32 FD E7 61 F8 FF 0F C8 FD " +
- "05 C5 30 19 10 90 63 90 FA 0F 06 0C 8C 0C 5C 70 " +
- "19 43 30 EB 0E FB 05 86 85 0C DB 18 58 80 72 8C " +
- "70 16 0B 83 05 56 51 29 88 C9 60 D9 69 0C 6C 20 " +
- "26 23 03 C8 74 B0 A8 0E 03 07 FB 45 56 C7 A2 CC " +
- "C4 1C 06 66 A0 0D 2C 40 39 5E 86 4C 06 3D A0 4E " +
- "10 D0 60 99 C6 B8 98 D1 9F 61 01 C3 74 14 FD 1A " +
- "8C 2B D8 84 B1 88 4B A5 A5 75 03 01 50 DF 59 46 " +
- "77 46 0F A8 3C A6 AB 88 15 83 B9 5E 89 B1 8B D5 " +
- "97 2D 82 22 B3 94 29 D5 BF E5 CA C0 EA DF AC 43 " +
- "A1 FD 14 EA 67 A0 30 FC 28 D5 EF 43 A1 FB 7D 87 " +
- "B8 FF 07 3A FE 07 3A FD 53 EA 7E 0A C3 4F 89 F9 " +
- "0E 73 EA 69 79 CA DC 70 8A 32 FD 4A 2C 5E 4C DF " +
- "87 7A 3C BC E0 A5 30 1E 3E 31 C5 33 AC A0 30 2F " +
- "52 A8 DF 87 C2 30 A4 54 3F A5 65 19 85 65 A9 12 " +
- "D3 2B 16 0D 8A CB 13 4A F3 E3 27 E6 09 03 9D 0E " +
- "06 58 BF 12 B3 13 CB C1 01 4E 8B 4A 4C 56 AC 91 " +
- "03 5D 37 86 48 53 A6 3F 98 42 FD 26 3B 07 56 FF " +
- "99 1D 14 EA A7 CC 7E 70 1A 08 79 42 61 1C 3C A5 " +
- "D0 0D 9C 6C C2 32 6B 29 73 03 DB 6B CA DC C0 F8 " +
- "97 F5 AD CC 1A CA DC C0 F4 83 32 37 B0 A4 30 CE " +
- "FC C7 48 99 1B FE 33 32 FC 07 00 6C CC 2E 23 33 " +
- "00 0B F0 12 00 00 00 BF 00 08 00 08 00 81 01 09 " +
- "00 00 08 C0 01 40 00 00 08 40 00 1E F1 10 00 00 " +
- "00 0D 00 00 08 0C 00 00 08 17 00 00 08 F7 00 00 " +
- "10 ";
-
- // Decode the stream to bytes
- byte[] bytes = HexRead.readFromString(dump);
- // Create a new instance of the escher dumper
- EscherDump dumper = new EscherDump();
- // Dump the contents of scher to screen.
-// dumper.dumpOld( bytes.length, new ByteArrayInputStream( bytes ), System.out );
- dumper.dump(bytes, 0, bytes.length, out);
-
- }
public void dump( int recordSize, byte[] data, PrintStream out ) {
dump( data, 0, recordSize, out );
Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherMetafileBlip.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherMetafileBlip.java?rev=1868352&r1=1868351&r2=1868352&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherMetafileBlip.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherMetafileBlip.java Sat Oct 12 16:32:53 2019
@@ -387,22 +387,6 @@ public final class EscherMetafileBlip ex
}
@Override
- protected Object[][] getAttributeMap() {
- return new Object[][]{
- // record, version, instance are directly fetched
- { "UID", field_1_UID, "UID2", field_2_UID },
- { "Uncompressed Size", field_2_cb },
- { "Bounds", getBounds().toString() },
- { "Size in EMU", getSizeEMU().toString() },
- { "Compressed Size", field_5_cbSave },
- { "Compression", field_6_fCompression },
- { "Filter", field_7_fFilter },
- { "Extra Data", "" },
- { "Remaining Data", remainingData }
- };
- }
-
- @Override
public Map<String, Supplier<?>> getGenericProperties() {
final Map<String, Supplier<?>> m = new LinkedHashMap<>(super.getGenericProperties());
m.put("uid", this::getUID);
Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherPictBlip.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherPictBlip.java?rev=1868352&r1=1868351&r2=1868352&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherPictBlip.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherPictBlip.java Sat Oct 12 16:32:53 2019
@@ -285,20 +285,6 @@ public final class EscherPictBlip extend
}
@Override
- protected Object[][] getAttributeMap() {
- return new Object[][]{
- { "UID", field_1_UID },
- { "Uncompressed Size", field_2_cb },
- { "Bounds", getBounds().toString() },
- { "Size in EMU", getSizeEMU().toString() },
- { "Compressed Size", field_5_cbSave },
- { "Compression", field_6_fCompression },
- { "Filter", field_7_fFilter },
- { "Extra Data", getPicturedata() },
- };
- }
-
- @Override
public Map<String, Supplier<?>> getGenericProperties() {
final Map<String, Supplier<?>> m = new LinkedHashMap<>(super.getGenericProperties());
m.put("uid", this::getUID);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org