java - 当我使用java将多个图像插入word时无法附加word文档

标签 java apache-poi

我使用下面的代码来拍摄屏幕快照并保存到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/

相关文章:

java - 从 Docx 中删除内容控件

java - 在哪里可以找到 BCEL 6.0?如何修改它并添加补丁?

java - 使用 poi 自动调整列宽

java - 从 Excel JDBC 将数据插入 MySQL - POI 示例程序

android - 在 Android 中使用 org.apache.poi.ss.examples.html.ToHtml.create(...) 会崩溃

java - 如何使用 Apache POI 操作评论内容

java - 扩展抽象构造函数?

java.security.spec.InvalidKeySpecException : java. security.InvalidKeyException : IOException : DER input, 整数标记错误

java - 当一项 future 任务有预期结果时继续

java.lang.NoClassDefFoundError : org/apache/poi/xssf/usermodel/XSSFWorkbook