- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个应用程序来创建幻灯片放映。我设法在每张幻灯片上放置一个图像,但它覆盖了书面文本。如何将文字放在图片前面?
这是我的代码。
public void createNewSlide() throws FileNotFoundException, IOException{
XMLSlideShow ppt = new XMLSlideShow();
XSLFSlideMaster master = ppt.getSlideMasters().get(0);
XSLFSlideLayout layout = master.getLayout(SlideLayout.TITLE_ONLY);
//propiedades do slide
ppt.setPageSize(new Dimension(1280,720));
XSLFSlide slide = ppt.createSlide(layout);
//primeiro slide, começando com texto
XSLFTextShape title = slide.getPlaceholder(0);
title.clearText();
XSLFTextParagraph paragraph = title.addNewTextParagraph();
XSLFTextRun textRun = paragraph.addNewTextRun();
textRun.setText("Simple Text");
textRun.setFontColor(Color.decode("#00ff99"));
textRun.setFontSize(60.);
title.setAnchor(new Rectangle(100,100,500,500));
//adicionando imagem ao ppt
byte[] picData = IOUtils.toByteArray(new FileInputStream("espace.jpg"));
XSLFPictureData pcData = ppt.addPicture(picData, PictureData.PictureType.JPEG);
XSLFPictureShape pictureShape = slide.createPicture(pcData);
pictureShape.setAnchor(new Rectangle(0,0,1280,720));
FileOutputStream out = new FileOutputStream("AprentacaoTeste.pptx");
ppt.write(out);
out.close();
ppt.close();
}
这些是我的依赖项
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
我使用 netbeans 作为 IDE
最佳答案
您插入的图片是形状树中的最后一个形状。所以它位于形状树中所有其他形状的前面。它必须是形状树中的第一个形状,位于所有其他形状之后。但是如果已经添加了形状,则很难更改形状树的顺序。在添加其他形状之前,占位符已经存在于布局中。
但我认为,您想要做的是为幻灯片设置背景图片。到目前为止,这也只能使用底层的 ooxml-schemas 类来实现。但它比改变形状树的顺序要直接得多。
示例:
import java.io.FileOutputStream;
import java.io.FileInputStream;
import org.apache.poi.util.IOUtils;
import org.apache.poi.sl.usermodel.PictureData;
import org.apache.poi.xslf.usermodel.*;
import org.openxmlformats.schemas.presentationml.x2006.main.CTBackgroundProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTBlipFillProperties;
import org.openxmlformats.schemas.drawingml.x2006.main.CTRelativeRect;
import org.openxmlformats.schemas.drawingml.x2006.main.CTBlip;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Color;
public class CreatePPTXPictureBehindText {
static void setBackgroundPicture(XSLFSlide slide, String picturePath, PictureData.PictureType pictureType) throws Exception {
byte[] picData = IOUtils.toByteArray(new FileInputStream(picturePath));
XSLFPictureData pcData = slide.getSlideShow().addPicture(picData, pictureType);
CTBackgroundProperties backgroundProperties = slide.getXmlObject().getCSld().addNewBg().addNewBgPr();
CTBlipFillProperties blipFillProperties = backgroundProperties.addNewBlipFill();
CTRelativeRect ctRelativeRect = blipFillProperties.addNewStretch().addNewFillRect();
String idx = slide.addRelation(null, XSLFRelation.IMAGES, pcData).getRelationship().getId();
CTBlip blib = blipFillProperties.addNewBlip();
blib.setEmbed(idx);
}
public static void main(String[] args) throws Exception {
XMLSlideShow ppt = new XMLSlideShow();
//set page size
ppt.setPageSize(new Dimension(1280,720));
//create first slide title layout
XSLFSlideMaster master = ppt.getSlideMasters().get(0);
XSLFSlideLayout layout = master.getLayout(SlideLayout.TITLE_ONLY);
XSLFSlide slide = ppt.createSlide(layout);
//set title placeholder's text and anchor
XSLFTextShape title = slide.getPlaceholder(0);
title.clearText();
XSLFTextParagraph paragraph = title.addNewTextParagraph();
XSLFTextRun textRun = paragraph.addNewTextRun();
textRun.setText("Simple Text");
textRun.setFontColor(Color.decode("#00ff99"));
textRun.setFontSize(60.);
title.setAnchor(new Rectangle(100,100,500,500));
//set background picture for slide
setBackgroundPicture(slide, "./espace.jpeg", PictureData.PictureType.JPEG);
FileOutputStream out = new FileOutputStream("./AprentacaoTeste.pptx");
ppt.write(out);
out.close();
ppt.close();
}
}
关于java - org.apache.poi.xslf.usermodel 在文本后面发送图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60908372/
我正在编写 java 代码来读取列名为“键”和“值”的 excel 文件。但是由于无法在这行代码中进行转换而出错, Row firstRow =(Row)sheet.getRow(0); 如何解决这个
在我使用 jasperreports-3.7.4 jar 以 Excel 格式下载 Jasper Reports 之前。现在我正在尝试升级到 jasperreports-6.3.1 jar。但它在调用
我在将报告导出为 XLS 时遇到了一些问题。导出为 PDF 效果很好。 所以我尝试更新到最新的 JasperReports 和 Apache POI 版本: JasperReports:5.5.0 兴
同一模型的其他函数工作正常,我只有其中两个有问题,它们都与数据库交互。在本地工作。 来自错误日志。 PHP fatal error :调用未定义的方法 UserModel::getScreens()
是否有可能在 django UserModel 的管理页面中创建自定义操作?我想自动将用户添加到组中(比如将他添加到员工中,设置一些额外的值等),当然还要创建操作来收回这些更改。 感谢您的帮助。 最佳
我想在包中输入提示用户模型。默认情况下,它是 App\User .在 channel 类(class)中,这没问题: class ChannelExample { public functio
这是我的代码: var user = UserModel.findOne({ _id: decodedToken.id, }, function (err, user) {
当我尝试在 Users 上使用 MongooseModel 时,出现以下错误 Nest can't resolve dependencies of the UserModel (?). Please
我对 Nodejs 和 mongoDB 还很陌生。我已经创建了注册和用户架构,但它无法识别this并发送以下错误: ReferenceError: userModel is not defined 当
我想使用 npoi 在 VS2012/2010 中操作 .xlsx 文件。为此,我应该导入 NPOI.XSSF.UserModel,但是当我添加 npoi.dll 并尝试导入它时,没有 XSSF 使用
本文整理了Java中org.apache.poi.xwpf.usermodel.XWPFHeaderFooter类的一些代码示例,展示了XWPFHeaderFooter类的具体用法。这些代码示例主要来
本文整理了Java中org.apache.poi.xssf.usermodel.XSSFHyperlink类的一些代码示例,展示了XSSFHyperlink类的具体用法。这些代码示例主要来源于Gith
本文整理了Java中org.apache.poi.xslf.usermodel.XSLFSlideLayout类的一些代码示例,展示了XSLFSlideLayout类的具体用法。这些代码示例主要来源于
本文整理了Java中org.apache.poi.xwpf.usermodel.XWPFStyle类的一些代码示例,展示了XWPFStyle类的具体用法。这些代码示例主要来源于Github/Stack
本文整理了Java中org.apache.poi.xwpf.usermodel.XWPFRelation类的一些代码示例,展示了XWPFRelation类的具体用法。这些代码示例主要来源于Github
本文整理了Java中org.apache.poi.xslf.usermodel.XSLFTextParagraph类的一些代码示例,展示了XSLFTextParagraph类的具体用法。这些代码示例主
本文整理了Java中org.apache.poi.xslf.usermodel.XSLFTextRun类的一些代码示例,展示了XSLFTextRun类的具体用法。这些代码示例主要来源于Github/S
本文整理了Java中org.apache.poi.xslf.usermodel.XSLFSlideMaster类的一些代码示例,展示了XSLFSlideMaster类的具体用法。这些代码示例主要来源于
本文整理了Java中org.apache.poi.xssf.usermodel.XSSFComment类的一些代码示例,展示了XSSFComment类的具体用法。这些代码示例主要来源于Github/S
本文整理了Java中org.apache.poi.xslf.usermodel.XSLFTableCell类的一些代码示例,展示了XSLFTableCell类的具体用法。这些代码示例主要来源于Gith
我是一名优秀的程序员,十分优秀!