Avatar billede mik28 Seniormester
04. oktober 2015 - 09:28 Der er 8 kommentarer og
1 løsning

Apache POI

Hej Eksperter

Jeg prøver at skrive en program som skal kunne konverterer en powerpoint slides om til en række .png billeder. Har fundet Apache POI projektet men har nogle vanskeligheder med at få deres eksempel til at fungere. Jeg har sat det op i Eclipse. Koden ser således ud. Det eneste jeg har ændret er de 5 første imports.

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
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 org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class PpttoPNG {
 
  public static void main(String args[]) throws IOException{
     
      //creating an empty presentation
      File file=new File("addingimage.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
     
      //getting the dimensions and size of the slide
      Dimension pgsize = ppt.getPageSize();
      XSLFSlide[] slide = ppt.getSlides();
     
      for (int i = 0; i < slide.length; i++) {
        BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
        Graphics2D graphics = img.createGraphics();

        //clear the drawing area
        graphics.setPaint(Color.white);
        graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));

        //render
        slide[i].draw(graphics);
      }
     
      //creating an image file as output
      FileOutputStream out = new FileOutputStream("ppt_image.png");
      javax.imageio.ImageIO.write(img, "png", out);
      ppt.write(out);
     
      System.out.println("Image successfully created");
      out.close();   
  }
}


Jeg bruger

$ java -version
Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
java version "1.7.0_79"
OpenJDK Runtime Environment (IcedTea 2.5.6) (7u79-2.5.6-0ubuntu1.15.04.1)
OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)
Avatar billede mik28 Seniormester
04. oktober 2015 - 09:32 #1
Jeg glemte at fortælle hvilken fejl jeg får.

Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar
Error: Could not find or load main class PpttoPNG
Avatar billede arne_v Ekspert
04. oktober 2015 - 21:14 #2
Den kan ikke finde PpttoPNG hvordan ser den fulde kommando linie ud naar du forsoeger at koere?  (specialt classpath)
Avatar billede arne_v Ekspert
04. oktober 2015 - 21:14 #3
POI er et fint library, men det er ret low level, saa du risikerer at skulle skrive ret meget kode for at lave det du vil.
Avatar billede mik28 Seniormester
05. oktober 2015 - 08:16 #4
Er der noget andet du kan anbefale. Kan du give mig et bud på hvad der er galt med min kode
Avatar billede arne_v Ekspert
05. oktober 2015 - 14:56 #5
"Error: Could not find or load main class PpttoPNG"

skyldes ikke noget i din kode men den maade du forsoeger at koere koden paa.
Avatar billede mik28 Seniormester
05. oktober 2015 - 17:42 #6
Det kan jeg konstaterer du har helt ret i. Det jeg ikke forstår er hvad jeg gør forkert. Jeg har oprettet et JAVA projekt i Eclipse. Lagt min kode i src/defaultpackage og derefter tilføjet de .jars så jeg har forstået skal bruges
Avatar billede arne_v Ekspert
05. oktober 2015 - 18:32 #7
Ligger PpttoPNG.class i projektets bin dir?

Hvordan ser run options ud?
Avatar billede mik28 Seniormester
10. oktober 2015 - 19:48 #8
Der er umiddelbart ikke noget bin dir i eclipse. Det findes dog i filsystemet
Avatar billede mik28 Seniormester
01. maj 2016 - 18:54 #9
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester