- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试使用 Apache POI 从 ppt
文件中提取幻灯片,这没有问题,但现在我打算打开 pptx
文件并执行相同的操作,有人知道如何操作吗?
这是从 ppt
文件中提取图像的代码:
public ImageIcon display() throws JPresentationException {
Background background;
background = slides[current].getBackground();
Fill f = background.getFill();
Color color = f.getForegroundColor();
Dimension dimension = ppt.getPageSize();
shapes = slides[current].getShapes();
BufferedImage img = new BufferedImage(dimension.width, dimension.height, BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
graphics.setPaint(color);
graphics.fill(new Rectangle2D.Float(0, 0, dimension.width, dimension.height));
slides[current].draw(graphics);
ImageIcon icon = new ImageIcon(img);
return icon;
}
最佳答案
虽然可以引用一些example code来自 POI 项目本身以下是您应该寻找的内容;希望这有帮助;
private ImageIcon generateFromPPTX(int index) {
ImageIcon icon = null;
XMLSlideShow slideShowPPTX = null;
FileInputStream pptInputStream = null;
XSLFSlide [] allSlides = null;
XSLFSlide singleSlide = null;
BufferedImage memoryImage = null;
Graphics2D graphics = null;
try{
pptInputStream = new FileInputStream("somepptx-file.pptx");
slideShowPPTX = new XMLSlideShow(pptInputStream);
allSlides = slideShowPPTX.getSlides();
if(allSlides == null || allSlides.length == 0) {
System.out.println("Empty presentation!");
return null;
}
singleSlide = allSlides [index];
memoryImage = new BufferedImage(slideShowPPTX.getPageSize().width, slideShowPPTX.getPageSize().height, BufferedImage.TYPE_INT_ARGB);
graphics = memoryImage.createGraphics();
// Only few rendering hints set but you can set as many as you need depending on your need
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
graphics.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
graphics.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
singleSlide.draw(graphics);
icon = new ImageIcon(memoryImage);
}
catch(IOException exception){
System.err.println("Input/output Exception:");
exception.printStackTrace();
}
finally{
slideShowPPTX = null;
allSlides = null;
singleSlide = null;
memoryImage = null;
graphics = null;
if(pptInputStream != null){
try {
pptInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
pptInputStream = null;
}
}
return icon;
}
关于java - 使用 apache poi 从 pptx 中提取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4650785/
我正在尝试使用 old.pptx 创建 new.pptx 。 old.pptx 中有 4 张幻灯片。我想创建内容几乎相同的 new.pptx,并在 4 张幻灯片中进行少量文本修改。我跳过了下面代码的修
我正在尝试创建 1000 个 powerpoint 演示文稿。我正在使用 python pptx 来实现这一点。到目前为止一切顺利,但我不喜欢默认为 4:3 的幻灯片大小。我可以创建模板幻灯片(使用自
我正在尝试解压缩 Microsoft Office 文件(.docx 和 .pptx),修改一些内容,然后重新压缩为新的 .docx 或 .pptx 文件。 我使用 .docx 文件成功地做到了这一点
我可以使用以下代码删除/覆盖一些元数据(存储在 core.xml 中的元数据): def remove_metadata(prs): """Overwrites the metadata in
这是我正在尝试学习的方法: 我工作的公司大约有。 120 多个 .pptx 文件,全部是使用 .potx PowerPoint 模板多年来手动创建的 一位图形设计师创建了一个时髦的新模板 我的老板给我
我尝试启用自动导入图片,以防止每次手动添加 100 张图片。我似乎无法访问图片的占位符并用新图片替换它们。 一些正确方向的指南会很有帮助。 我开始的代码: import pptx import ppt
我正在尝试更新 1 个特定数据标签的文本,但它关闭了其 sibling 的数据标签。 #turn on data labels plot = chart.plots[0] plot.has_data_
作为对 this answer 的回复对于我之前的一个问题,我编写了以下短程序来尝试重现该问题。 from pptx import Presentation from io import BytesI
我正在尝试为我创建的矩形自动形状的边框添加颜色,如下所示。默认颜色似乎是蓝色,但我不确定如何将其修改为自定义颜色。 shapes = slide.shapes left = top = width =
我正在尝试适应条形图 Y 轴,范围从 0 到 1,小数点后一位,例如:刻度标签为 1.2: 我可以将它设置为从 0 开始: Thisvalue_axis.minimum_scale = 0 我可以设
我想使用 python-pptx 模块来更改给定 powerpoint 演示文稿中每个包含文本的形状的校对语言。 不幸的是,我没有管理。 :( 我正在使用 Python 3.6.3 和 python-
我正在使用 python-pptx 0.6.0,并创建了一张包含内容和标题的幻灯片。我想将图片插入到内容占位符中,但没有诸如 add_picture 或 insert_picuture 之类的属性可供
我使用 python 2.7 和 python pptx。 我有一个数据表,需要它以一定的宽度和高度为单位, 我了解到我可以像这样更改文本大小 enter link description here
我需要将图像添加到 pptx 幻灯片中,并希望将其定位在幻灯片的中心,而无需手动计算大小和对齐方式, 我发现了一个关于使用文本执行此操作的问题: question about center align
我使用 python 2.7 和 python pptx。 我有一个数据表,需要它以一定的宽度和高度为单位, 我了解到我可以像这样更改文本大小 enter link description here
我使用 python pptx 包(python 2.7)创建一个 pptx 文件 我在内存中有一个图像,是我使用 matplotlib 通过以下代码创建的: import matplotlib.py
如何切换下面标记为红色的参数(英文:python pptx 中的“showcategories”以显示饼图?任何想法表示赞赏。 最佳答案 显然有一个功能请求:https://github.com/sc
我正在使用Python库python-pptx生成一些powerpoint,在某些情况下 - 正在生成的文本位于幻灯片之外(因为有两个项目符号或文本太大)。 例如: +----------------
我对 python-pptx 包比较陌生,但我发现它非常有用。 我添加了一张具有“标题、图片和标题”布局的幻灯片。 SLD_LAYOUT_TITLE_AND_PICTURE_AND_CAPTION =
如何复制幻灯片? 我创建了一个模板幻灯片,我需要复制它并分别编辑每个副本的形状。 或者如何将模板幻灯片添加到 presentation.slide_layouts? 最佳答案 这是我在 GitHub
我是一名优秀的程序员,十分优秀!