2016-04-26 15 views
-1

Ich versuche die Screenshots, die ich mit dem Java-Code verwende, an eine Word-Datei anzuhängen. Bitte hilf mir dabei.Java-Code zum Anhängen von Bildern an eine Word-Datei

try{ 
      Robot robot = new Robot(); 
      String format = "jpg"; 
      String fileName = "FullScreenshot." + format; 

      Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); 
      BufferedImage screenFullImage = robot.createScreenCapture(screenRect); 
      //code goes here for appending the image to a word doc 
      System.out.println("A full screenshot saved!"); 

     } catch (AWTException | IOException ex){ 
      System.err.println(ex); 
     } 
+0

1) Warum ein Applet codieren? Wenn es aufgrund der Angabe des Lehrers geschieht, verweisen Sie bitte auf [Warum CS-Lehrer ** aufhören sollten ** Java-Applets zu unterrichten] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should -stop-teaching-Java-Applets /). 2) Siehe [Java Plugin-Unterstützung nicht mehr unterstützt] (http://www.gizmodo.com.au/2016/01/rest-in-hell-java-plug-in/) und [Wechsel zu einem Plugin-freien Web] (https://blogs.oracle.com/java-platform-group/entry/moving_to_a_plugin_free). –

Antwort

1

Verwenden ImageIO.write

import java.awt.Rectangle; 
import java.awt.Robot; 
import java.awt.Toolkit; 
import java.awt.image.BufferedImage; 
import java.io.File; 

import javax.imageio.ImageIO; 

public class SaveImage { 
public static void main(String[] args) { 
    try { 
    Robot robot = new Robot(); 
    String format = "jpg"; 
    String fileName = "FullScreenshot." + format; 
    Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); 
    BufferedImage screenFullImage = robot.createScreenCapture(screenRect); 
    ImageIO.write(screenFullImage , "jpg", new File("fileName")); 
    System.out.println("A full screenshot saved!"); 
    } catch (AWTException | IOException ex){ 
     System.err.println(ex); 
    } 
} 
} 
1

können Sie Apache POI API das erreichen verwenden. Hier ist ein Beispiel, um ein Bild in ein Word-Dokument einzufügen.

//create word doc 
XWPFDocument doc = new XWPFDocument(); 
// create para and run 
XWPFParagraph para= doc.createParagraph();  
XWPFRun run = para.createRun(); 

para.setAlignment(ParagraphAlignment.CENTER); 

// convert buffered image to Input Stream 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
ImageIO.write(screenFullImage, "jpeg", baos); 
baos.flush(); 
ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray()); 
baos.close(); 

// add image to word doc 
run.addBreak(); 
run.addPicture(bis, XWPFDocument.PICTURE_TYPE_JPEG, "image file", Units.toEMU(200), Units.toEMU(200)); // 200x200 pixels 
bis.close(); 
// write word doc to file 
FileOutputStream fos = new FileOutputStream("WordDocWithImage.docx"); 
doc.write(fos); 
fos.close();   

Hoffe, das hilft.

Hinweis: Dies ist kein getesteter Code, den ich hier geschrieben habe.

+0

Durch diesen Code kann ich 1 Bild zum Word-Datei hinzufügen, aber wenn ich versuche, mehr Bilder an die gleiche Datei anhängen, dann bekomme ich einen Fehler im Word-Dokument, dass die Datei beschädigt ist –

+0

Sie müssen drei Aufgaben wiederholen Erstellen von Byte-Array, Hinzufügen von Pause, Hinzufügen von Bild für jedes Bild, das Sie erhalten – Sanjeev