diff --git a/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java b/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java index f729c2da1..c7408b0fe 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java +++ b/src/scratchpad/src/org/apache/poi/hslf/record/ExOleObjStg.java @@ -90,8 +90,18 @@ public class ExOleObjStg extends RecordAtom implements PersistRecord { return new InflaterInputStream(compressedStream); } - public void setData(byte[] data) throws IOException { - ByteArrayOutputStream out = new ByteArrayOutputStream(data.length); + /** + * Sets the embedded data. + * + * @param data the embedded data. + */ + public void setData(byte[] data) throws IOException { + ByteArrayOutputStream out = new ByteArrayOutputStream(); + //first four bytes is the length of the raw data + byte[] b = new byte[4]; + LittleEndian.putInt(b, data.length); + out.write(b); + DeflaterOutputStream def = new DeflaterOutputStream(out); def.write(data, 0, data.length); def.finish(); diff --git a/src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java b/src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java index 957e78868..bbef87a96 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java +++ b/src/scratchpad/src/org/apache/poi/hslf/usermodel/ObjectData.java @@ -17,6 +17,7 @@ package org.apache.poi.hslf.usermodel; import java.io.InputStream; +import java.io.IOException; import org.apache.poi.hslf.record.ExOleObjStg; @@ -49,6 +50,15 @@ public class ObjectData { return storage.getData(); } + /** + * Sets the embedded data. + * + * @param data the embedded data. + */ + public void setData(byte[] data) throws IOException { + storage.setData(data); + } + /** * Return the record that contains the object data. *