我使用下面的代码来拍摄屏幕快照并保存到Word文件中。 该代码用作按钮.. 但是当我获取屏幕截图时,它会替换现有文件.. 我该如何附加这个..请建议 提前致谢。 :)
private void btnmanActionPerformed(java.awt.event.ActionEvent evt) {
setVisible(false);
if (btnman.getText().equals("Quick ScreenShot")) {
try {
Calendar now = Calendar.getInstance();
Robot robot = new Robot();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle captureRect = new Rectangle(0, 0, 1430, 840);
BufferedImage screenFullImage = robot.createScreenCapture(captureRect);
ImageIO.write(screenFullImage, "JPG", new File(path.getText() + formatter.format(now.getTime()) + ".jpg"));
img = path.getText() + formatter.format(now.getTime()) + ".jpg";
System.out.println(img);
setVisible(true);
} catch (Exception es) {
System.out.println("not done");
}
} else {
try {
Calendar now = Calendar.getInstance();
Robot robot = new Robot();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle captureRect = new Rectangle(0, 0, 1400, 850);
BufferedImage screenFullImage = robot.createScreenCapture(captureRect);
ImageIO.write(screenFullImage, "JPG", new File("E:\\" + formatter.format(now.getTime()) + ".jpg"));
img = "E:\\" + formatter.format(now.getTime()) + ".jpg";
System.out.println(img);
setVisible(true);
} catch (Exception es) {
System.out.println("not done");
}
XWPFDocument doc = new XWPFDocument();
XWPFParagraph title = doc.createParagraph();
XWPFRun run = title.createRun();
run.setText(path.getText());
run.setBold(true);
title.setAlignment(ParagraphAlignment.CENTER);
try {
is = new FileInputStream(img);
//run.addBreak();
run.addPicture(is, XWPFDocument.PICTURE_TYPE_JPEG, img, Units.toEMU(500), Units.toEMU(600));
//is.close();
System.out.println(img);
System.out.print(path.getText());
FileOutputStream fos = new FileOutputStream(path.getText());
doc.write(fos);
fos.close();
System.out.println("Enterd successfully");
} catch (Exception es) {
System.err.println("es");
}
}
}
最佳答案
它会覆盖文件而不是附加文件,因为您每次都会创建一个新的(空)XWPFDocument
XWPFDocument doc = new XWPFDocument();
并使用相同的(我假设)路径保存它。
FileOutputStream fos = new FileOutputStream(path.getText());
doc.write(fos);
所以它最终会替换该文件。
尝试使用:
XWPFDocument doc = new XWPFDocument(new FileInputStream(path.getText()));
打开上一个文档(如果已存在)。
关于java - 当我使用java将多个图像插入word时无法附加word文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39593729/