⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testescheroptrecord.java

📁 java 读写word excel ppt
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    		// Simple data follows    		0x42, 0x01,	0x49, 0x00, 0x00, 0x00,          // SP @ 8    		0x43, 0x01, 0x85-256, 0x00, 0x00, 0x00,      // SP @ 14    		0x44, 0x01, 0x04, 0x00, 0x00, 0x00,          // SP @ 20    		0x45, 0xC1-256, 0x88-256, 0x00, 0x00, 0x00,  // SP @ 26    		0x46, 0xC1-256, 0x90-256, 0x00, 0x00, 0x00,  // SP @ 32    		0x7F, 0x01, 0x01, 0x00, 0x01, 0x00,     		0x80-256, 0x01, 0x00, 0x00, 0x00, 0x00,     		0x81-256, 0x01, 0x02, 0x00, 0x00, 0x08,     		0xBF-256, 0x01,	0x10, 0x00, 0x10, 0x00,     		0xC0-256, 0x01, 0x01, 0x00, 0x00, 0x08,      // SP 10     		0xC1-256, 0x01, 0x00, 0x00, 0x01, 0x00,    		0xC4-256, 0x01, 0x00, 0x00, 0x00, 0x00,     		0xCB-256, 0x01, 0x38, 0x63, 0x00, 0x00,     		0xCD-256, 0x01, 0x00, 0x00,	0x00, 0x00,     		0xCE-256, 0x01, 0x00, 0x00, 0x00, 0x00,      // SP 15    		0xD0-256, 0x01, 0x00, 0x00, 0x00, 0x00,     		0xD1-256, 0x01, 0x00, 0x00, 0x00, 0x00,     		0xD7-256, 0x01, 0x00, 0x00, 0x00, 0x00,     		0xFF-256, 0x01, 0x18, 0x00, 0x18, 0x00,    		0x01, 0x02, 0x02, 0x00, 0x00, 0x08,     		0x3F, 0x02, 0x00, 0x00,	0x02, 0x00,          // SP 21    		    		// Complex data follows    		    		// Complex data for Array #325    		// Array header    		0x22, 0x00, 0x22, 0x00, 0xF0-256, 0xFF-256,     		// Array data    		0x18, 0x00, 0x28, 0x00, 0x04, 0x00, 0x34,     		0x00, 0x04, 0x00, 0x28, 0x00, 0x04, 0x00,    		0x1C, 0x00, 0x04, 0x00, 0x10, 0x00, 0x04, 0x00, 0x04, 0x00, 0x10,     		0x00, 0x00, 0x00, 0x1C, 0x00,    		0x04, 0x00, 0x28, 0x00, 0x10, 0x00, 0x34, 0x00, 0x18, 0x00, 0x3C,     		0x00, 0x24, 0x00, 0x44, 0x00,    		0x30, 0x00, 0x48, 0x00, 0x3C, 0x00, 0x44, 0x00, 0x48, 0x00, 0x3C,     		0x00, 0x54, 0x00, 0x38, 0x00,    		0x60, 0x00, 0x2C, 0x00, 0x70, 0x00, 0x20, 0x00, 0x78, 0x00,     		0x14, 0x00, 0x80-256, 0x00, 0x08, 0x00,    		0x84-256, 0x00, 0x04, 0x00, 0x78, 0x00, 0x04, 0x00, 0x6C, 0x00,     		0x04, 0x00, 0x60, 0x00, 0x04, 0x00,    		0x54, 0x00, 0x08, 0x00, 0x48, 0x00, 0x0C, 0x00, 0x3C, 0x00, 0x0C,     		0x00, 0x30, 0x00, 0x08, 0x00,    		0x3C, 0x00, 0x08, 0x00, 0x48, 0x00, 0x08, 0x00, 0x54, 0x00, 0x00,     		0x00, 0x48, 0x00, 0x00, 0x00,    		0x3C, 0x00, 0x00, 0x00, 0x30, 0x00, 0x04, 0x00, 0x24, 0x00,    		// Complex data for Array #326    		// Array header    		0x45, 0x00, 0x48, 0x00, 0x02, 0x00,     		// Array data    		0x00, 0x40, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00,     		0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256,    		0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00,     		0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256,    		0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00,     		0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256,    		0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00,     		0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256,    		0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00,     		0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256,    		0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00,     		0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256,    		0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00,     		0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256,    		0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00,     		0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256,    		0x01, 0x00, 0x00, 0xB0-256, 0x01, 0x00, 0x00, 0xB0-256, 0x00, 0x80-256    	};    	    	// Create the record        EscherOptRecord r = new EscherOptRecord();        int filled = r.fillFields( data, new DefaultEscherRecordFactory() );                // Check it's the right length        assertEquals(data.length, filled);        assertEquals(data.length, r.getRecordSize());                // Serialise it        byte[] dest = new byte[data.length];        int written = r.serialize(0, dest);                // Check it serialised it back to the same data        assertEquals(data.length, written);        for(int i=0; i<data.length; i++) {        	assertEquals(data[i], dest[i]);        }    }    /**     * Test read/write against an OPT record from a real ppt file.     * In PowerPoint is is legal to have array properties with empty complex part.     * In Glen's original implementation complex part is always 6 bytes which resulted     * in +6 extra bytes when writing back out. As the result the ppt becomes unreadable.     *     * Make sure we write back the original empty complex part.     *     * See Bug 41946 for details.     */    public void test41946() throws IOException {        String dataStr1 =                "03 08 0B F0 00 03 00 00 81 00 30 65 01 00 82 00 98 B2 00 00 83 00 30 65 01 " +                "00 84 00 98 B2 00 00 85 00 00 00 00 00 87 00 01 00 00 00 88 00 00 00 00 00 " +                "89 00 00 00 00 00 BF 00 00 00 0F 00 0C 01 F4 00 00 10 0D 01 00 00 00 20 0E " +                "01 00 00 00 20 80 01 00 00 00 00 81 01 04 00 00 08 82 01 00 00 01 00 83 01 " +                "00 00 00 08 84 01 00 00 01 00 85 01 00 00 00 20 86 41 00 00 00 00 87 C1 00 " +                "00 00 00 88 01 00 00 00 00 89 01 00 00 00 00 8A 01 00 00 00 00 8B 01 00 00 " +                "00 00 8C 01 00 00 00 00 8D 01 00 00 00 00 8E 01 00 00 00 00 8F 01 00 00 00 " +                "00 90 01 00 00 00 00 91 01 00 00 00 00 92 01 00 00 00 00 93 01 00 00 00 00 " +                "94 01 00 00 00 00 95 01 00 00 00 00 96 01 00 00 00 00 97 C1 00 00 00 00 98 " +                "01 00 00 00 00 99 01 00 00 00 00 9A 01 00 00 00 00 9B 01 00 00 00 00 9C 01 " +                "03 00 00 40 BF 01 0C 00 1E 00 C0 01 01 00 00 08 C1 01 00 00 01 00 C2 01 FF " +                "FF FF 00 C3 01 00 00 00 20 C4 01 00 00 00 00 C5 41 00 00 00 00 C6 C1 00 00 " +                "00 00 C7 01 00 00 00 00 C8 01 00 00 00 00 C9 01 00 00 00 00 CA 01 00 00 00 " +                "00 CB 01 35 25 00 00 CC 01 00 00 08 00 CD 01 00 00 00 00 CE 01 00 00 00 00 " +                "CF C1 00 00 00 00 D7 01 02 00 00 00 FF 01 06 00 0E 00 00 02 00 00 00 00 01 " +                "02 02 00 00 08 02 02 CB CB CB 00 03 02 00 00 00 20 04 02 00 00 01 00 05 02 " +                "38 63 00 00 06 02 38 63 00 00 07 02 00 00 00 00 08 02 00 00 00 00 09 02 00 " +                "00 01 00 0A 02 00 00 00 00 0B 02 00 00 00 00 0C 02 00 00 01 00 0D 02 00 00 " +                "00 00 0E 02 00 00 00 00 0F 02 00 01 00 00 10 02 00 00 00 00 11 02 00 00 00 " +                "00 3F 02 00 00 03 00 80 02 00 00 00 00 81 02 00 00 01 00 82 02 05 00 00 00 " +                "83 02 9C 31 00 00 84 02 00 00 00 00 85 02 F0 F9 06 00 86 02 00 00 00 00 87 " +                "02 F7 00 00 10 88 02 00 00 00 20 BF 02 01 00 0F 00 C0 02 00 00 00 00 C1 02 " +                "00 00 00 00 C2 02 64 00 00 00 C3 02 00 00 00 00 C4 02 00 00 00 00 C5 02 00 " +                "00 00 00 C6 02 00 00 00 00 C7 02 00 00 00 00 C8 02 00 00 00 00 C9 02 00 00 " +                "00 00 CA 02 30 75 00 00 CB 02 D0 12 13 00 CC 02 30 ED EC FF CD 02 40 54 89 " +                "00 CE 02 00 80 00 00 CF 02 00 80 FF FF D0 02 00 00 79 FF D1 02 32 00 00 00 " +                "D2 02 20 4E 00 00 D3 02 50 C3 00 00 D4 02 00 00 00 00 D5 02 10 27 00 00 D6 " +                "02 70 94 00 00 D7 02 B0 3C FF FF D8 02 00 00 00 00 D9 02 10 27 00 00 DA 02 " +                "70 94 00 00 FF 02 16 00 1F 00 04 03 01 00 00 00 41 03 A8 29 01 00 42 03 00 " +                "00 00 00 43 03 03 00 00 00 44 03 7C BE 01 00 45 03 00 00 00 00 7F 03 00 00 " +                "0F 00 84 03 7C BE 01 00 85 03 00 00 00 00 86 03 7C BE 01 00 87 03 00 00 00 " +                "00";        EscherOptRecord r = new EscherOptRecord();        byte[] data = HexRead.readFromString( dataStr1 );        r.fillFields( data, 0, new DefaultEscherRecordFactory() );        assertEquals( (short) 0xF00B, r.getRecordId() );        byte[] data1 = r.serialize();        EscherOptRecord opt2 = new EscherOptRecord();        opt2.fillFields( data1, new DefaultEscherRecordFactory() );        byte[] data2 = opt2.serialize();        assertTrue(Arrays.equals(data1, data2));    }    /**     * Test that EscherOptRecord can properly read/write array properties     * with empty complex part.     */    public void testEmptyArrayProperty() throws IOException {        EscherOptRecord r = new EscherOptRecord();        EscherArrayProperty p = new EscherArrayProperty((short)(EscherProperties.FILL__SHADECOLORS + 0x8000), new byte[0] );        assertEquals(0, p.getNumberOfElementsInArray());        r.addEscherProperty(p);        byte[] data1 = r.serialize();        EscherOptRecord opt2 = new EscherOptRecord();        opt2.fillFields( data1, new DefaultEscherRecordFactory() );        p = (EscherArrayProperty)opt2.getEscherProperties().get(0);        assertEquals(0, p.getNumberOfElementsInArray());        byte[] data2 = opt2.serialize();        assertTrue(Arrays.equals(data1, data2));    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -