2011-01-10 5 views
1

Ich versuche, Folien aus einer ppt Datei mit Apache POI zu extrahieren, gibt es kein Problem, aber jetzt habe ich vor, pptx Dateien zu öffnen und das gleiche tun, weiß jemand wie ??Extrahieren von Bildern aus PPTX mit Apache POI

dies der Code Bilder von ppt Dateien zu extrahieren:

public ImageIcon display() throws JPresentationException { 

    Background background; 
    background = slides[current].getBackground(); 
    Fill f = background.getFill(); 
    Color color = f.getForegroundColor(); 
    Dimension dimension = ppt.getPageSize(); 
    shapes = slides[current].getShapes(); 
    BufferedImage img = new BufferedImage(dimension.width, dimension.height, BufferedImage.TYPE_INT_RGB); 
    Graphics2D graphics = img.createGraphics(); 
    graphics.setPaint(color); 
    graphics.fill(new Rectangle2D.Float(0, 0, dimension.width, dimension.height)); 
    slides[current].draw(graphics); 
    ImageIcon icon = new ImageIcon(img); 

    return icon; 
} 
+0

Ihre Frage klang seltsam, aber ich denke, es macht Sinn, wenn Sie wirklich meinen, Sie können dies mit einer PPT-Datei tun. Ich habe Ihre Antwort bearbeitet, aber meine Änderungen zurückgesetzt, wenn dies nicht korrekt ist. – jzd

+0

Ich denke * pptx * ist passend, die meisten von uns haben jetzt Office 2007. – RobertPitt

Antwort

1

Hier ist der Weg, um es in VBS zu tun, konvertieren Sie können vielleicht:

Sub SaveAllPictures() 
    Dim ap As Presentation: Set ap = ActivePresentation 
    Dim savePath As String 
    savePath = "C:\Users\me\Desktop\files\" 
    Dim i As Integer 
    Dim sl As Slide 
    Dim sh As Shape 
    For Each sl In ap.Slides 
     For Each sh In sl.Shapes 
      If sh.Type = msoPicture Then 
       sh.Export PathName:=savePath & sh.Name & CStr(i) & ".png", Filter:=ppShapeFormatPNG 
       i = i + 1 
      End If 
     Next 
    Next 
End Sub 
0

Obwohl Sie einige example code verweisen aus dem POI-Projekt selbst unten ist, was Sie suchen sollten; Hoffe das hilft;