关于poi3.15这个包

wzymmzs 2016-07-17 02:11:49
我想生成和操作ppt,读取ppt和生成ppt的时候文本和图形都没问题,唯独这个line出问题,看了网上很多例子都不对。
就比如简单的一句Line line = new Line();就报错Cannot instantiate the type Line。

...全文
253 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzymmzs 2016-07-17
  • 打赏
  • 举报
回复

import java.awt.Color;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.sl.usermodel.Line;
import org.apache.poi.hslf.usermodel.HSLFAutoShape;
import org.apache.poi.hslf.usermodel.HSLFSlide;
import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hslf.usermodel.HSLFTextBox;
import org.apache.poi.hslf.usermodel.HSLFTextParagraph;
import org.apache.poi.hslf.usermodel.HSLFTextRun;
import org.apache.poi.sl.usermodel.ShapeType;
import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;


public class DrawShape {

	/**
	 * 在一个幻灯片上话一个shape
	 * 
	 * 一个shape的位置同安卓里控件的位置
	 */
	public static void main(String[] args)throws IOException{
		 HSLFSlideShow ppt = new HSLFSlideShow();
		    
		    HSLFSlide slide = ppt.createSlide();
		    
		    //线
		    Line line = new Line();
		    line.setAnchor(new java.awt.Rectangle(50, 50, 100, 20));
		    line.setLineColor(new Color(0, 128, 0));
		    line.setLineCompound(LineCompound.DOUBLE);
		    slide.addShape(line);
		    
		    //文本框
		    HSLFTextBox txt = new HSLFTextBox();
		    txt.setText("Hello, World!");
		    txt.setAnchor(new java.awt.Rectangle(300, 100, 300, 50));
		    
		    // 用TextRun文本格式
		    HSLFTextParagraph tp = txt.getTextParagraphs().get(0);
		    tp.setTextAlign(TextAlign.RIGHT);// 右对齐
		    HSLFTextRun rt = tp.getTextRuns().get(0);
		    rt.setFontSize(32.);
		    rt.setFontFamily("Arial");
		    rt.setBold(true);
		    rt.setItalic(true);
		    rt.setUnderlined(true);
		    rt.setFontColor(Color.red);
		    
		    slide.addShape(txt);
		    
		    // 自定义图形
		    // 32-point star
		    HSLFAutoShape sh1 = new HSLFAutoShape(ShapeType.STAR_32);
		    sh1.setAnchor(new java.awt.Rectangle(50, 50, 100, 200));
		    sh1.setFillColor(Color.red);
		    slide.addShape(sh1);
		    
		    //梯形
		    HSLFAutoShape sh2 = new HSLFAutoShape(ShapeType.TRAPEZOID);
		    sh2.setAnchor(new java.awt.Rectangle(150, 150, 100, 200));
		    sh2.setFillColor(Color.blue);
		    slide.addShape(sh2);
		    
		    FileOutputStream out = new FileOutputStream("C:/Users/Admin/Desktop/TestPOI/testppt.ppt");
		    ppt.write(out);
		    out.close();
		

	}

}
就line那一块出错,不知道应该导入什么包

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧