java 读取ppt文件_java程序——读取PPT

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.geom.Rectangle2D;

import java.awt.image.BufferedImage;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import javax.swing.*;

import org.apache.poi.hslf.usermodel.SlideShow;

class myReadPPT extends JFrame {

private static final long serialVersionUID =

1L;

JFrame frame = new JFrame();

JButton dr = new JButton("导入文件");

JButton sy = new JButton("首页");

JButton syy = new JButton("上一页");

JButton xyy = new JButton("下一页");

JButton my = new JButton("末页");

JButton tc = new JButton("退出");

JPanel s_panel = new JPanel();

jPanel c_panel = new jPanel();

int index;

int end;

JFileChooser filechooser = new

JFileChooser();

public myReadPPT() {

super("梁妙的PPT演示程序");

index = 0;

// frame 外观设置

frame.setSize(730, 600);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

s_panel.add(dr);

s_panel.add(sy);

s_panel.add(syy);

s_panel.add(xyy);

s_panel.add(my);

s_panel.add(tc);

s_panel.setLayout(new

FlowLayout(FlowLayout.CENTER));

frame.getContentPane().add(s_panel,

BorderLayout.SOUTH);

c_panel.setSize(650,

600);

c_panel.setLocation(100,

40);

c_panel.setVisible(false);

frame.getContentPane().add(c_panel,

BorderLayout.CENTER);

dr.addActionListener(new

drMenuListener());

sy.addActionListener(new

syMenuListener());

syy.addActionListener(new

syyMenuListener());

xyy.addActionListener(new

xyyMenuListener());

my.addActionListener(new

myMenuListener());

tc.addActionListener(new

tcMenuListener());

}

// 导入菜单动作:导入文件的同时并将PPT转化成图片

class drMenuListener implements ActionListener

{

public void

actionPerformed(ActionEvent event) {

try {

FileInputStream

is = new FileInputStream("ppt/1_1.ppt");

SlideShow

ppt = new SlideShow(is);

is.close();

Dimension

pgsize = ppt.getPageSize();

org.apache.poi.hslf.model.Slide[]

slide = ppt.getSlides();

end

= slide.length - 1;

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);

//

save the output

FileOutputStream

out = new FileOutputStream(

"ppt/image/slide_"

+ (i + 1) + ".jpg");

javax.imageio.ImageIO.write(img,

"jpg", out);

out.close();

}

} catch

(IOException e) {

e.printStackTrace();

}

JOptionPane.showMessageDialog(null,

"文件导入成功!");

c_panel.setVisible(true);

c_panel.repaint();

}

}

class syMenuListener implements ActionListener

{

public void

actionPerformed(ActionEvent event) {

if (index !=

0) {

index

= 0;

c_panel.repaint();

} else

{

JOptionPane.showMessageDialog(null,

"已经到达首页!");

}

}

}

class syyMenuListener implements

ActionListener {

public void

actionPerformed(ActionEvent event) {

if (index !=

0) {

index--;

c_panel.repaint();

} else

{

JOptionPane.showMessageDialog(null,

"已经到达首页!");

}

}

}

class xyyMenuListener implements

ActionListener {

public void

actionPerformed(ActionEvent event) {

if (index !=

end) {

index++;

c_panel.repaint();

} else

{

JOptionPane.showMessageDialog(null,

"已经到达末页!");

}

}

}

class myMenuListener implements ActionListener

{

public void

actionPerformed(ActionEvent event) {

if (index !=

end) {

index

= end;

c_panel.repaint();

} else

{

JOptionPane.showMessageDialog(null,

"已经到达末页!");

}

}

}

class tcMenuListener implements ActionListener

{

public void

actionPerformed(ActionEvent event) {

frame.dispose();

}

}

class jPanel extends JPanel {

private static final long

serialVersionUID = 1L;

public void

paintComponent(Graphics g) {

Image image =

new ImageIcon("ppt/image/slide_" + (index + 1)

+

".jpg").getImage();

g.drawImage(image,

0, 0, this);

}

}

}

public class readPPT {

public static void main(String[] args) {

myReadPPT myreadPPT = new

myReadPPT();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值