random Δημοσ. 2 Μαΐου 2002 Δημοσ. 2 Μαΐου 2002 Προσπαθώ να κάνω batch export όλα τα images πολλών Powerpoint presentations. Καλό θα ήταν κάτι έτοιμο, αλλα μετά απο μακρά αναζήτηση βρήκα μόνο 1 commercial app. Εψαξα λοιπόν για source, και κάτι βρήκα. τρέχουν με το windows scripting host με κωδικα vb. Το πρώτο, κάνει τη δουλειά που θέλω, για ένα PPT, και θα μπορούσα να το καλώ απο ένα .bat με την εντολή FOR %1 IN %2 DO.... και να περάσει απο όλο το folder. Το μόνο πρόβλημα είναι οτι πρέπει πριν το καλέσεις, πρέπει να έχεις ηδη ανοιχτό το Powerpoint, αλλιώς βγάζει μήνυμα: "Invalid request. The PowerPoint Frame window does not exist. Error 80048240" listing 1 </font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">' ** modified code from: http://guymcarthur.com/resources/vbs/ppt2gif.xml ** ' This code runs on a Windows Scripting Host to export a PowerPoint ' presentation to a series of GIF images. It ' also writes an XML file suitable for creating a JavaScript slideshow with my slides XSLT. ' Convert PowerPoint to GIFs ' Tested w/ PPT97 (must be open in window) ' $Revision: 1.1 $ 'put here bmp,jpg,gif for image format ext = "jpg" ' CHANGE THIS LINES TO RUN WITH PARAMETERS indir = "D:\#script\" myfile = "test3.ppt" 'myfile=WScript.Arguments(0) 'outdir=WScript.Arguments(1) infile= indir & myfile outdir= indir & "imag_" & myfile &"_"& ext & "\" w=580 h=435 Dim fso, fldr Set fso = WScript.CreateObject("Scripting.FileSystemObject") If Not fso.FolderExists(outdir) Then Set fldr = fso.CreateFolder(outdir) Dim obj Set obj = CreateObject("Powerpoint.Application") 'Set obj = WScript.CreateObject("Powerpoint.Application") Dim xml Set xml = fso.CreateTextFile(outdir&"\slides.xml", TRUE) xml.WriteLine("<?xml version=""1.0""?>") xml.WriteLine("<!-- Generated from ppt2gif -->") ' this does not work! ' obj.Visible = FALSE obj.Presentations.Open(infile) xml.WriteLine("<slides title="""&obj.ActivePresentation.Name&""">") For i = 1 To obj.ActivePresentation.Slides.Count slide="slide"&i&"-"&w&"x"&h&"."&ext With obj.ActivePresentation.Slides(i) .Export outdir&"\"&slide, ext, w, h xml.WriteLine("<slide src="""&slide&""">") If .Shapes.hasTitle Then xml.WriteLine(.Shapes.Title.TextFrame.TextRange.Text) End With xml.WriteLine("</slide>") ' End If Next obj.Quit xml.WriteLine("</slides>")[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">εδώ έχει ενα παραδειγμα πως ανοιγουν το powerpoint listing 2 </font><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">app = new Application(); Presentations presentations = app.get_Presentations(); Presentation present = presentations.Open("C:\\test.ppt", 0, 0, 1); present.SaveAs("C:\\ppt.jpg",PpSaveAsFileType.ppSaveAsJPG); java.lang.System.out.println("Saved as JPG"); Thread.sleep(3000); present.Close(); app.Quit();[/code]</blockquote><font size="2" face="Verdana, Helvetica, sans-serif">Είμαι λίγο άσχετος απο vb, μπορεί κάποιος να το βελτιώσει? και αν έχετε καμιά ιδέα σε τελείως διαφορετικό τρόπο (java, klp) δεκτή.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.