java.io.IOException: The document has no pages. - PowerPoint to PDF -
i'm making javafx application convert powerpoint pdf. error:
exceptionconverter: java.io.ioexception: document has no pages
i tried many ppt files didn't anything. files error. don't know what's problem.
package application; import java.awt.color; import java.awt.dimension; import java.awt.graphics2d; import java.awt.geom.affinetransform; import java.awt.geom.rectangle2d; import java.awt.image.bufferedimage; import java.io.file; import java.io.fileinputstream; import java.io.fileoutputstream; import java.io.ioexception; import java.io.inputstream; import com.itextpdf.text.document; import com.itextpdf.text.documentexception; import com.itextpdf.text.image; import com.itextpdf.text.rectangle; import com.itextpdf.text.pdf.pdfpcell; import com.itextpdf.text.pdf.pdfptable; import com.itextpdf.text.pdf.pdfwriter; import org.apache.commons.io.filenameutils; import org.apache.poi.hslf.model.slide; import org.apache.poi.hslf.usermodel.slideshow; import org.apache.poi.xslf.usermodel.xmlslideshow; import org.apache.poi.xslf.usermodel.xslfslide; public class ppview { public static void showpowerpoint(file sfiles) throws exception { file file = new file(sfiles.getabsolutepath()); string name=file.getname(); string destination= file.getabsolutepath(); string outdestination=file.getparent(); string filetype=filenameutils.getextension(destination); fileinputstream = new fileinputstream(file); double zoom = 2; affinetransform @ = new affinetransform(); at.settoscale(zoom, zoom); document pdfdocument = new document(); fileoutputstream outputstream = new fileoutputstream(outdestination+name+".pdf"); pdfwriter pdfwriter = pdfwriter.getinstance(pdfdocument, outputstream); pdfptable table = new pdfptable(1); pdfwriter.open(); pdfdocument.open(); dimension pgsize = null; image slideimage = null; bufferedimage img = null; if (filetype.equalsignorecase(".ppt")) { slideshow ppt = new slideshow(is); pgsize = ppt.getpagesize(); slide slide[] = ppt.getslides(); pdfdocument.setpagesize(new rectangle((float) pgsize.getwidth(), (float) pgsize.getheight())); pdfwriter.open(); pdfdocument.open(); (int = 0; < slide.length; i++) { img = new bufferedimage((int) math.ceil(pgsize.width * zoom), (int) math.ceil(pgsize.height * zoom), bufferedimage.type_int_rgb); graphics2d graphics = img.creategraphics(); graphics.settransform(at); graphics.setpaint(color.white); graphics.fill(new rectangle2d.float(0, 0, pgsize.width, pgsize.height)); slide[i].draw(graphics); graphics.getpaint(); slideimage = image.getinstance(img, null); table.addcell(new pdfpcell(slideimage, true)); } } if (filetype.equalsignorecase(".pptx")) { xmlslideshow ppt = new xmlslideshow(is); pgsize = ppt.getpagesize(); xslfslide slide[] = ppt.getslides(); pdfdocument.setpagesize(new rectangle((float) pgsize.getwidth(), (float) pgsize.getheight())); pdfwriter.open(); pdfdocument.open(); (int = 0; < slide.length; i++) { img = new bufferedimage((int) math.ceil(pgsize.width * zoom), (int) math.ceil(pgsize.height * zoom), bufferedimage.type_int_rgb); graphics2d graphics = img.creategraphics(); graphics.settransform(at); graphics.setpaint(color.white); graphics.fill(new rectangle2d.float(0, 0, pgsize.width, pgsize.height)); slide[i].draw(graphics); graphics.getpaint(); slideimage = image.getinstance(img, null); table.addcell(new pdfpcell(slideimage, true)); } } pdfdocument.add(table); pdfdocument.close(); pdfwriter.close(); system.out.println("powerpoint file converted pdf successfully"); } }
exception because actual conversion not happening , document empty.
when extension using following command return without "." i.e(ppt or pptx)
string filetype=filenameutils.getextension(destination);
so need change if conditions follows
filetype.equalsignorecase("ppt") filetype.equalsignorecase("pptx")
Comments
Post a Comment