java word指定位置插入图片 原内容颜色变黑
时间: 2023-08-15 11:07:14 浏览: 207
java中插入图片
如果在插入图片后发现原有文本的颜色变黑了,可能是因为在创建 `XWPFRun` 对象时没有设置正确的文本样式。你可以在创建文本对象时指定一个新的样式,以确保文本的颜色和字体等属性不会受到影响。以下是修改后的示例代码:
```java
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.xwpf.usermodel.*;
public class InsertImageInWord {
public static void main(String[] args) throws Exception {
// 创建 Word 文档对象
XWPFDocument document = new XWPFDocument(new FileInputStream("example.docx"));
// 创建图片对象,并读取图片文件
XWPFPictureData pictureData = document.addPictureData(new FileInputStream("image.jpg"), XWPFDocument.PICTURE_TYPE_JPEG);
// 创建段落对象,并设置段落样式
XWPFParagraph paragraph = document.createParagraph();
paragraph.setAlignment(ParagraphAlignment.CENTER);
// 创建文本对象,并插入图片
XWPFRun run = paragraph.createRun();
run.setText("这是一张图片:");
run.addBreak();
// 创建新的文本样式对象
XWPFStyle style = document.createStyle();
style.setColor("000000"); // 设置字体颜色为黑色
style.setFontSize(12); // 设置字体大小为12磅
// 将新的样式对象应用到文本对象中
run.getCTR().addNewRPr().setRStyle(style.getStyleId());
run.addPicture(pictureData, Document.PICTURE_TYPE_JPEG, "image.jpg", Units.toEMU(200), Units.toEMU(200));
// 保存 Word 文档
document.write(new FileOutputStream("example.docx"));
document.close();
}
}
```
在这个例子中,我们创建了一个新的文本样式对象 `style`,并将其应用到文本对象 `run` 中,以确保文本样式不会受到图片的影响。注意,新的样式对象需要先添加到文档中,才能在文本对象中使用。
阅读全文