import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlToken;
import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;
import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;
import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline;
import java.io.IOException;
import java.io.InputStream;
public class CustomXWPFDocument extends XWPFDocument
{
public CustomXWPFDocument() {
super();
}
public CustomXWPFDocument(InputStream in) throws IOException
{
super(in);
}
public void createPicture(String blipId,int id, int width, int height)
{
final int EMU = 9525;
width *= EMU;
height *= EMU;
//String blipId = getAllPictures().get(id).getPackageRelationship().getId();
CTInline inline = createParagraph().createRun().getCTR().addNewDrawing().addNewInline();
String picXml = "" +
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
"
//CTGraphicalObjectData graphicData = inline.addNewGraphic().addNewGraphicData();
XmlToken xmlToken = null;
try
{
xmlToken = XmlToken.Factory.parse(picXml);
}
catch(XmlException xe)
{
xe.printStackTrace();
}
inline.set(xmlToken);
//graphicData.set(xmlToken);
inline.setDistT(0);
inline.setDistB(0);
inline.setDistL(0);
inline.setDistR(0);
CTPositiveSize2D extent = inline.addNewExtent();
extent.setCx(width);
extent.setCy(height);
CTNonVisualDrawingProps docPr = inline.addNewDocPr();
docPr.setId(id);
docPr.setName("Picture " + id);
docPr.setDescr("Generated");
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.List;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.util.Units;
import org.apache.poi.xwpf.model.XWPFHeaderFooterPolicy;
import org.apache.poi.xwpf.usermodel.Document;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.UnderlinePatterns;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFHeader;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.xmlbeans.XmlException;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
public class ImageAttachmentInDocument {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy");
Calendar cal = Calendar.getInstance();
String date = dateFormat.format(cal.getTime());
// Create a document file
CustomXWPFDocument document = new CustomXWPFDocument();
// Adding a file
try {
// Working addPicture Code below...
XWPFParagraph paragraphX = document.createParagraph();
paragraphX.setAlignment(ParagraphAlignment.CENTER);
String blipId = paragraphX.getDocument().addPictureData(
new FileInputStream(new File("C:\\Users\\Zhengpeng\\Desktop\\nginx-fzjh\\20151125175806.png")),
Document.PICTURE_TYPE_JPEG);
System.out.println("4" + blipId);
System.out.println(document
.getNextPicNameNumber(Document.PICTURE_TYPE_JPEG));
document.createPicture(blipId,
document.getNextPicNameNumber(Document.PICTURE_TYPE_JPEG),
200, 75);
System.out.println("5");
} catch (InvalidFormatException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
// insert doc details
// Createa a para -1
XWPFParagraph paragraphOne = document.createParagraph();
paragraphOne.setAlignment(ParagraphAlignment.CENTER);
XWPFRun paragraphOneRunOne = paragraphOne.createRun();
paragraphOneRunOne.setBold(true);
paragraphOneRunOne.setFontSize(20);
paragraphOneRunOne.setFontFamily("Verdana");
paragraphOneRunOne.setColor("000070");
paragraphOneRunOne.setText("Daily Status Report");
// Createa a para -2
XWPFParagraph paragraphTwo = document.createParagraph();
paragraphTwo.setAlignment(ParagraphAlignment.CENTER);
XWPFRun paragraphTwoRunOne = paragraphTwo.createRun();
paragraphTwoRunOne.setFontSize(12);
paragraphTwoRunOne.setFontFamily("Verdana");
paragraphTwoRunOne.setColor("000070");
paragraphTwoRunOne.setText(date);
paragraphTwoRunOne.addBreak();
// Createa a para -3
XWPFParagraph paragraphThree = document.createParagraph();
paragraphThree.setAlignment(ParagraphAlignment.LEFT);
XWPFRun paragraphThreeRunOne = paragraphThree.createRun();
paragraphThreeRunOne.setFontSize(14);
paragraphThreeRunOne.setFontFamily("Verdana");
paragraphThreeRunOne.setColor("000070");
paragraphThreeRunOne.setText("5.30 AM PST");
paragraphThreeRunOne.addBreak();
// Createa a para -4
XWPFParagraph paragraphFour = document.createParagraph();
paragraphFour.setAlignment(ParagraphAlignment.LEFT);
XWPFRun paragraphFourRunOne = paragraphFour.createRun();
paragraphFourRunOne.setBold(true);
paragraphFourRunOne.setUnderline(UnderlinePatterns.SINGLE);
paragraphFourRunOne.setFontSize(10);
paragraphFourRunOne.setFontFamily("Verdana");
paragraphFourRunOne.setColor("000070");
paragraphFourRunOne.setText("ABCD");
// insert doc details end
XWPFParagraph paragraphFive = document.createParagraph();
paragraphFive.setAlignment(ParagraphAlignment.RIGHT);
XWPFRun paragraphFiveRunOne = paragraphFive.createRun();
paragraphFiveRunOne.addBreak();
paragraphFourRunOne.setBold(true);
paragraphFourRunOne.setUnderline(UnderlinePatterns.SINGLE);
paragraphFourRunOne.setFontSize(10);
paragraphFourRunOne.setFontFamily("Verdana");
paragraphFourRunOne.setColor("000070");
paragraphFourRunOne.setText("ABCD00000000000");
FileOutputStream outStream = null;
try {
double x = Math.random();
String fileName = "C:\\Users\\Zhengpeng\\Desktop\\aaaaa.docx";
outStream = new FileOutputStream(fileName);
} catch (FileNotFoundException e) {
System.out.println("First Catch");
e.printStackTrace();
}
try {
document.write(outStream);
outStream.close();
} catch (FileNotFoundException e) {
System.out.println("Second Catch");
e.printStackTrace();
} catch (IOException e) {
System.out.println("Third Catch");
e.printStackTrace();
}
}
}