Lines 29-36
Link Here
|
29 |
import java.awt.geom.Path2D; |
29 |
import java.awt.geom.Path2D; |
30 |
import java.awt.geom.Rectangle2D; |
30 |
import java.awt.geom.Rectangle2D; |
31 |
import java.awt.image.BufferedImage; |
31 |
import java.awt.image.BufferedImage; |
|
|
32 |
import java.io.ByteArrayInputStream; |
32 |
import java.io.File; |
33 |
import java.io.File; |
33 |
import java.io.IOException; |
34 |
import java.io.IOException; |
|
|
35 |
import java.io.InputStream; |
34 |
import java.io.OutputStream; |
36 |
import java.io.OutputStream; |
35 |
import java.io.PrintStream; |
37 |
import java.io.PrintStream; |
36 |
import java.text.AttributedCharacterIterator; |
38 |
import java.text.AttributedCharacterIterator; |
Lines 51-62
Link Here
|
51 |
import org.apache.poi.hslf.exceptions.OldPowerPointFormatException; |
53 |
import org.apache.poi.hslf.exceptions.OldPowerPointFormatException; |
52 |
import org.apache.poi.hslf.extractor.PowerPointExtractor; |
54 |
import org.apache.poi.hslf.extractor.PowerPointExtractor; |
53 |
import org.apache.poi.hslf.model.HeadersFooters; |
55 |
import org.apache.poi.hslf.model.HeadersFooters; |
|
|
56 |
import org.apache.poi.hslf.record.DocInfoListContainer; |
54 |
import org.apache.poi.hslf.record.Document; |
57 |
import org.apache.poi.hslf.record.Document; |
|
|
58 |
import org.apache.poi.hslf.record.ExOleObjStg; |
55 |
import org.apache.poi.hslf.record.Record; |
59 |
import org.apache.poi.hslf.record.Record; |
|
|
60 |
import org.apache.poi.hslf.record.RecordTypes; |
56 |
import org.apache.poi.hslf.record.SlideListWithText; |
61 |
import org.apache.poi.hslf.record.SlideListWithText; |
57 |
import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet; |
62 |
import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet; |
58 |
import org.apache.poi.hslf.record.TextHeaderAtom; |
63 |
import org.apache.poi.hslf.record.TextHeaderAtom; |
|
|
64 |
import org.apache.poi.hslf.record.VBAInfoAtom; |
65 |
import org.apache.poi.hslf.record.VBAInfoContainer; |
59 |
import org.apache.poi.hssf.usermodel.DummyGraphics2d; |
66 |
import org.apache.poi.hssf.usermodel.DummyGraphics2d; |
|
|
67 |
import org.apache.poi.poifs.macros.VBAMacroReader; |
60 |
import org.apache.poi.sl.draw.DrawFactory; |
68 |
import org.apache.poi.sl.draw.DrawFactory; |
61 |
import org.apache.poi.sl.draw.DrawPaint; |
69 |
import org.apache.poi.sl.draw.DrawPaint; |
62 |
import org.apache.poi.sl.draw.DrawTextParagraph; |
70 |
import org.apache.poi.sl.draw.DrawTextParagraph; |
Lines 72-77
Link Here
|
72 |
import org.apache.poi.sl.usermodel.TextParagraph; |
80 |
import org.apache.poi.sl.usermodel.TextParagraph; |
73 |
import org.apache.poi.sl.usermodel.TextParagraph.TextAlign; |
81 |
import org.apache.poi.sl.usermodel.TextParagraph.TextAlign; |
74 |
import org.apache.poi.sl.usermodel.TextRun; |
82 |
import org.apache.poi.sl.usermodel.TextRun; |
|
|
83 |
import org.apache.poi.util.IOUtils; |
75 |
import org.apache.poi.util.LittleEndian; |
84 |
import org.apache.poi.util.LittleEndian; |
76 |
import org.apache.poi.util.StringUtil; |
85 |
import org.apache.poi.util.StringUtil; |
77 |
import org.apache.poi.util.Units; |
86 |
import org.apache.poi.util.Units; |
Lines 948-951
Link Here
|
948 |
|
957 |
|
949 |
ppt2.close(); |
958 |
ppt2.close(); |
950 |
} |
959 |
} |
|
|
960 |
|
961 |
@Test |
962 |
public void macrotest() throws IOException { |
963 |
HSLFSlideShow ppt = open("SimpleMacro.ppt"); |
964 |
DocInfoListContainer list = (DocInfoListContainer)ppt.getDocumentRecord().findFirstOfType(RecordTypes.List.typeID); |
965 |
VBAInfoContainer vbaInfo = (VBAInfoContainer)list.findFirstOfType(RecordTypes.VBAInfo.typeID); |
966 |
VBAInfoAtom vbaAtom = (VBAInfoAtom)vbaInfo.findFirstOfType(RecordTypes.VBAInfoAtom.typeID); |
967 |
long persistId = vbaAtom.getPersistIdRef(); |
968 |
byte data[] = null; |
969 |
|
970 |
for (HSLFObjectData obj : ppt.getEmbeddedObjects()) { |
971 |
ExOleObjStg exObj = obj.getExOleObjStg(); |
972 |
if (exObj.getPersistId() == persistId) { |
973 |
// compression is handled by exoleobjstg |
974 |
InputStream rawData = exObj.getData(); |
975 |
data = IOUtils.toByteArray(rawData); |
976 |
rawData.close(); |
977 |
break; |
978 |
} |
979 |
}; |
980 |
|
981 |
VBAMacroReader vbareader = new VBAMacroReader(new ByteArrayInputStream(data)); |
982 |
Map<String,String> bla = vbareader.readMacros(); |
983 |
ppt.close(); |
984 |
} |
985 |
|
951 |
} |
986 |
} |