package com.geekbang.ppttools;
import com.google.common.base.Splitter;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
import java.io.File;
import java.io.FileInputStream;
public class PPTXUtils {
public static String getToc(File file) throws Exception {
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
StringBuilder ret = new StringBuilder();
XSLFSlide slide = ppt.getSlides().get(0);
int currCha = -1;
int count = 1;
String title = null;
boolean firstLine = true;
for (XSLFShape shape : slide.getShapes()) {
if (shape instanceof XSLFTextShape) {
XSLFTextShape textShape = (XSLFTextShape) shape;
String text = textShape.getText();
try {
currCha = Integer.parseInt(text);
if (currCha >= 0 && title != null) {
ret.append("# ").append(currCha).append('.').append(title).append('\n');
}
continue;
} catch (Exception ex) {
}
for (String line : Splitter.on("\n").omitEmptyStrings().trimResults().split(text)) {
if (firstLine) {
title = line;
firstLine = false;
} else {
ret.append(count).append(". ").append(line).append('\n');
count++;
}
}
}
}
return ret.toString();
}
}
java Maven中常用命令和插件
需积分: 0 102 浏览量
2023-11-05
17:59:40
上传
评论
收藏 5KB ZIP 举报
zero2100
- 粉丝: 160
- 资源: 2464
最新资源
- 2022NOC软件创意编程赛项真题python小学高年级-决赛(有解析)
- mathml转换latex需要的xsl文件
- 2022NOC软件创意编程赛项真题图形化小学高年级-决赛赛(有解析)
- gbase驱动下载gbase-connector-java-8.3.81.53驱动下载
- 2022NOC软件创意编程赛项真题图形化小学低年级-决赛赛(有解析)
- InsightFace从青铜到王者,超大规模人脸识别的优雅解法
- python后端开发spider框架详解
- 基于 STM32 与 ESP8266 的智能家居系统源码.zip
- 毕业设计:基于SSM的mysql-个性化点餐配送系统(源码 + 数据库 + 说明文档)
- 基于matlab的鱼苗计数识别(GUI界面).zip代码57
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈