Search in sources :

Example 1 with XmlToken

use of org.apache.xmlbeans.XmlToken in project Gargoyle by callakrsos.

the class MSWord method addPicture.

/**
	 * 사진추가.
	 *
	 * @param imgFile
	 * @param id
	 * @param width
	 * @param height
	 * @param run
	 */
public void addPicture(final String imgFile, final int id, int width, int height, final XWPFRun run) {
    FileInputStream fileInputStream = null;
    try {
        fileInputStream = new FileInputStream(imgFile);
        final String blipId = run.getDocument().addPictureData(fileInputStream, Document.PICTURE_TYPE_JPEG);
        final int EMU = 9525;
        width *= EMU;
        height *= EMU;
        // String blipId =
        // getAllPictures().get(id).getPackageRelationship().getId();
        final CTInline inline = run.getCTR().addNewDrawing().addNewInline();
        final String picXml = "" + "<a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\">" + "   <a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/picture\">" + "      <pic:pic xmlns:pic=\"http://schemas.openxmlformats.org/drawingml/2006/picture\">" + "         <pic:nvPicPr>" + "            <pic:cNvPr id=\"" + id + "\" name=\"Generated\"/>" + "            <pic:cNvPicPr/>" + "         </pic:nvPicPr>" + "         <pic:blipFill>" + "            <a:blip r:embed=\"" + blipId + "\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"/>" + "            <a:stretch>" + "               <a:fillRect/>" + "            </a:stretch>" + "         </pic:blipFill>" + "         <pic:spPr>" + "            <a:xfrm>" + "               <a:off x=\"0\" y=\"0\"/>" + "               <a:ext cx=\"" + width + "\" cy=\"" + height + "\"/>" + "            </a:xfrm>" + "            <a:prstGeom prst=\"rect\">" + "               <a:avLst/>" + "            </a:prstGeom>" + "         </pic:spPr>" + "      </pic:pic>" + "   </a:graphicData>" + "</a:graphic>";
        XmlToken xmlToken = null;
        xmlToken = XmlToken.Factory.parse(picXml);
        inline.set(xmlToken);
        inline.setDistT(0);
        inline.setDistB(0);
        inline.setDistL(0);
        inline.setDistR(0);
        final CTPositiveSize2D extent = inline.addNewExtent();
        extent.setCx(width);
        extent.setCy(height);
        final CTNonVisualDrawingProps docPr = inline.addNewDocPr();
        docPr.setId(id);
        docPr.setName("Picture " + id);
        docPr.setDescr("Generated");
    } catch (final Exception e) {
        e.printStackTrace();
    } finally {
        // close streams
        if (fileInputStream != null) {
            try {
                fileInputStream.close();
            } catch (final IOException ioEx) {
            // can be ignored
            }
        }
    }
}
Also used : CTInline(org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline) CTNonVisualDrawingProps(org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps) CTString(org.openxmlformats.schemas.wordprocessingml.x2006.main.CTString) IOException(java.io.IOException) CTPositiveSize2D(org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D) FileInputStream(java.io.FileInputStream) IOException(java.io.IOException) XmlToken(org.apache.xmlbeans.XmlToken)

Aggregations

FileInputStream (java.io.FileInputStream)1 IOException (java.io.IOException)1 XmlToken (org.apache.xmlbeans.XmlToken)1 CTNonVisualDrawingProps (org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps)1 CTPositiveSize2D (org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D)1 CTInline (org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline)1 CTString (org.openxmlformats.schemas.wordprocessingml.x2006.main.CTString)1