grazie per il link, ma il codice nn era neanche completo e avrei poi dovuto fare una conversione dal basic.
Ho risolto utilizzando il progetto JACOB reperibile qui http://sourceforge.net/projects/jacob-project/ e http://danadler.com/jacob/
é un progetto interessante perchè permette di utilizzare tutti i programmi principali del pacchetto office e svolgere varie operazioni con il loro contenuto.
Nel codice che ho postato sostituendo il valore della variabile che ho evidenziato vi è la possibilita di salvare le slide in altri formati
#DEFINE ppSaveAsHTML 12
#DEFINE ppSaveAsHTMLv3 13
#DEFINE ppSaveAsHTMLDual 14
#DEFINE ppSaveAsMetaFile 15
#DEFINE ppSaveAsGIF 16
#DEFINE ppSaveAsJPG 17
#DEFINE ppSaveAsPNG 18
#DEFINE ppSaveAsBMP 19
#DEFINE ppSaveAsWebArchive 20
#DEFINE ppSaveAsTIF 21
#DEFINE ppSaveAsPresForReview 22
#DEFINE ppSaveAsEMF 23
codice:
import com.jacob.activeX.*;
import com.jacob.com.*;
public class Ppt {
ActiveXComponent pptapp = null; //PowerPoint.Application ActiveXControl Object
Object ppto = null; //PowerPoint.Application COM Automation Object
Object ppts = null; //Presentations Set
// Office.MsoTriState
public static final int msoTrue = -1;
public static final int msoFalse = 0;
// PpSaveAsFileType
public static final int ppSaveAsJPG = 17 ;
//ppSaveAsJPG 17
public Ppt(){
try{
pptapp = new ActiveXComponent("PowerPoint.Application");
ppto = pptapp.getObject();
ppts = Dispatch.get((Dispatch)ppto, "Presentations").toDispatch();
}catch(Exception e){
e.printStackTrace();
}
}
public Dispatch getPresentation(String fileName){
Dispatch pres = null; //Presentation Object
try{
pres = Dispatch.call((Dispatch)ppts, "Open", fileName,
new Variant(Ppt.msoTrue), new Variant(Ppt.msoTrue),
new Variant(Ppt.msoFalse)).toDispatch();
}catch(Exception e){
e.printStackTrace();
}
return pres;
}
public void saveAs(Dispatch presentation, String saveTo, int ppSaveAsFileType){
try{
Object slides = Dispatch.get(presentation, "Slides").toDispatch();
Dispatch.call(presentation, "SaveAs", saveTo, new Variant(ppSaveAsFileType));
}catch (Exception e) {
e.printStackTrace();
}
}
public void closePresentation(Dispatch presentation){
if(presentation != null){
Dispatch.call(presentation, "Close");
}
}
public void quit(){
if(pptapp != null){
ComThread.Release();
//pptapp.release();
pptapp.invoke("Quit", new Variant[]{});
}
}
public static void main(String[] args){
Ppt a = new Ppt();
System.out.println("inizio");
Dispatch pres = a.getPresentation("C:\\Documents and Settings\\Andrea\\Desktop\\progetti\\PptToJpeg\\PerEl05.ppt");//inserire percorso file ppt
a.saveAs(pres, "C:\\Documents and Settings\\Andrea\\Desktop\\progetti\\PptToJpeg\\SlidesJpg", Ppt.ppSaveAsJPG); //inserire percorso destinazione file
a.closePresentation(pres);
a.quit();
System.out.println("fine");
}
}
magari può essere aggiunta nelle discussioni utili