Конвертировать файл .pptx в .ppt, используя Java - PullRequest
3 голосов
/ 01 июня 2011

Мне было интересно, знает ли кто-нибудь способ конвертации .pptx в .ppt с помощью Java?

Ответы [ 3 ]

2 голосов
/ 11 июля 2011

Вы можете использовать openoffice для конвертации. Вы должны правильно настроить eclipse / netbeans . Вам также нужен плагин Jodconverter. о, и не забудьте открыть OO в режиме прослушивания

package openofficeconv;
import java.io.File;
import java.net.ConnectException;

import com.artofsolving.jodconverter.DocumentConverter;
import com.artofsolving.jodconverter.openoffice.connection.*;
import com.artofsolving.jodconverter.openoffice.converter.OpenOfficeDocumentConverter;

public class PowerpointConverter{

public static void main(String[] args) {

    File inputFile = new File("j.pptx");
    File outputFile = new File("j.pdf");

    // connect to an OpenOffice.org instance running on port 8100
    OpenOfficeConnection connection = new SocketOpenOfficeConnection(8100);
    try {
        connection.connect();
    } catch (ConnectException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    // convert
    DocumentConverter converter = new OpenOfficeDocumentConverter(connection);
    converter.convert(inputFile, outputFile);

    // close the connection
    connection.disconnect();
}
}
2 голосов
/ 01 июня 2011

Использование Apache POI .

0 голосов
/ 01 июня 2011

Aspose Slides - единственная библиотека, которую я видел, которая понимает pptx.Это не бесплатно, но, вероятно, будет иметь возможность сделать преобразование.Apache POI является бесплатной библиотекой Java ppt, но в последний раз я проверял, что она не поддерживает pptx.

Обновление: вот как я извлек изображения с помощью Aspose.После того, как у вас появятся png-файлы, вы сможете создавать PDF-файлы, используя другие инструменты.Мне были нужны изображения явно заданного размера - вы можете просто получить его как исходный размер:

Dimension small = new Dimension(160, 120);
Dimension medium = new Dimension(200,150);
Dimension large = new Dimension(400,300);

for (Slide slide : presentation.getSlides()) {
  String path = FileService.getUploadPath() + slide.getPath();
  com.aspose.slides.Slide pptSlide = ppt.getSlideByPosition(slide.getSequence());
  ImageIO.write(pptSlide.getThumbnail(1, 1), "png", new File(path));

  path = FileService.getUploadPath() + slide.getSmallPath();
  ImageIO.write(pptSlide.getThumbnail(small), "png", new File(path));

  path = FileService.getUploadPath() + slide.getMediumPath();
  ImageIO.write(pptSlide.getThumbnail(medium), "png", new File(path));

  path = FileService.getUploadPath() + slide.getLargePath();
  ImageIO.write(pptSlide.getThumbnail(large), "png", new File(path));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...