Search in sources :

Example 16 with CTShape

use of org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTShape in project poi by apache.

the class XSSFDrawing method createConnector.

/**
     * Creates a simple shape.  This includes such shapes as lines, rectangles,
     * and ovals.
     *
     * @param anchor    the client anchor describes how this group is attached
     *                  to the sheet.
     * @return  the newly created shape.
     */
public XSSFConnector createConnector(XSSFClientAnchor anchor) {
    CTTwoCellAnchor ctAnchor = createTwoCellAnchor(anchor);
    CTConnector ctShape = ctAnchor.addNewCxnSp();
    ctShape.set(XSSFConnector.prototype());
    XSSFConnector shape = new XSSFConnector(this, ctShape);
    shape.anchor = anchor;
    return shape;
}
Also used : CTConnector(org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTConnector) CTTwoCellAnchor(org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTTwoCellAnchor)

Example 17 with CTShape

use of org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTShape in project poi by apache.

the class XSSFObjectData method prototype.

/**
     * Prototype with the default structure of a new auto-shape.
     */
/**
     * Prototype with the default structure of a new auto-shape.
     */
protected static CTShape prototype() {
    final String drawNS = "http://schemas.microsoft.com/office/drawing/2010/main";
    if (prototype == null) {
        CTShape shape = CTShape.Factory.newInstance();
        CTShapeNonVisual nv = shape.addNewNvSpPr();
        CTNonVisualDrawingProps nvp = nv.addNewCNvPr();
        nvp.setId(1);
        nvp.setName("Shape 1");
        //            nvp.setHidden(true);
        CTOfficeArtExtensionList extLst = nvp.addNewExtLst();
        // https://msdn.microsoft.com/en-us/library/dd911027(v=office.12).aspx
        CTOfficeArtExtension ext = extLst.addNewExt();
        ext.setUri("{63B3BB69-23CF-44E3-9099-C40C66FF867C}");
        XmlCursor cur = ext.newCursor();
        cur.toEndToken();
        cur.beginElement(new QName(drawNS, "compatExt", "a14"));
        cur.insertNamespace("a14", drawNS);
        cur.insertAttributeWithValue("spid", "_x0000_s1");
        cur.dispose();
        nv.addNewCNvSpPr();
        CTShapeProperties sp = shape.addNewSpPr();
        CTTransform2D t2d = sp.addNewXfrm();
        CTPositiveSize2D p1 = t2d.addNewExt();
        p1.setCx(0);
        p1.setCy(0);
        CTPoint2D p2 = t2d.addNewOff();
        p2.setX(0);
        p2.setY(0);
        CTPresetGeometry2D geom = sp.addNewPrstGeom();
        geom.setPrst(STShapeType.RECT);
        geom.addNewAvLst();
        prototype = shape;
    }
    return prototype;
}
Also used : CTTransform2D(org.openxmlformats.schemas.drawingml.x2006.main.CTTransform2D) CTShapeProperties(org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties) QName(javax.xml.namespace.QName) CTShape(org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTShape) XmlCursor(org.apache.xmlbeans.XmlCursor) CTPoint2D(org.openxmlformats.schemas.drawingml.x2006.main.CTPoint2D) CTShapeNonVisual(org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTShapeNonVisual) CTPresetGeometry2D(org.openxmlformats.schemas.drawingml.x2006.main.CTPresetGeometry2D) CTNonVisualDrawingProps(org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps) CTOfficeArtExtension(org.openxmlformats.schemas.drawingml.x2006.main.CTOfficeArtExtension) CTPositiveSize2D(org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D) CTOfficeArtExtensionList(org.openxmlformats.schemas.drawingml.x2006.main.CTOfficeArtExtensionList)

Example 18 with CTShape

use of org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTShape in project poi by apache.

the class XSSFDrawing method createPicture.

/**
     * Creates a picture.
     *
     * @param anchor    the client anchor describes how this picture is attached to the sheet.
     * @param pictureIndex the index of the picture in the workbook collection of pictures,
     *   {@link org.apache.poi.xssf.usermodel.XSSFWorkbook#getAllPictures()} .
     *
     * @return  the newly created picture shape.
     */
public XSSFPicture createPicture(XSSFClientAnchor anchor, int pictureIndex) {
    PackageRelationship rel = addPictureReference(pictureIndex);
    long shapeId = newShapeId();
    CTTwoCellAnchor ctAnchor = createTwoCellAnchor(anchor);
    CTPicture ctShape = ctAnchor.addNewPic();
    ctShape.set(XSSFPicture.prototype());
    ctShape.getNvPicPr().getCNvPr().setId(shapeId);
    XSSFPicture shape = new XSSFPicture(this, ctShape);
    shape.anchor = anchor;
    shape.setPictureReference(rel);
    ctShape.getSpPr().setXfrm(createXfrm(anchor));
    return shape;
}
Also used : PackageRelationship(org.apache.poi.openxml4j.opc.PackageRelationship) CTPicture(org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTPicture) CTTwoCellAnchor(org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTTwoCellAnchor)

Example 19 with CTShape

use of org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTShape in project poi by apache.

the class XSSFShapeGroup method createConnector.

/**
     * Creates a simple shape.  This includes such shapes as lines, rectangles,
     * and ovals.
     *
     * @param anchor the child anchor describes how this shape is attached
     *               to the group.
     * @return the newly created shape.
     */
public XSSFConnector createConnector(XSSFChildAnchor anchor) {
    CTConnector ctShape = ctGroup.addNewCxnSp();
    ctShape.set(XSSFConnector.prototype());
    XSSFConnector shape = new XSSFConnector(getDrawing(), ctShape);
    shape.parent = this;
    shape.anchor = anchor;
    shape.getCTConnector().getSpPr().setXfrm(anchor.getCTTransform2D());
    return shape;
}
Also used : CTConnector(org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTConnector)

Example 20 with CTShape

use of org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTShape in project poi by apache.

the class XSSFShapeGroup method createGroup.

/**
     * Creates a group shape.
     *
     * @param anchor       the client anchor describes how this group is attached to the group.
     * @return the newly created group shape.
     */
public XSSFShapeGroup createGroup(XSSFChildAnchor anchor) {
    CTGroupShape ctShape = ctGroup.addNewGrpSp();
    ctShape.set(prototype());
    XSSFShapeGroup shape = new XSSFShapeGroup(getDrawing(), ctShape);
    shape.parent = this;
    shape.anchor = anchor;
    // TODO: calculate bounding rectangle on anchor and set off/ext correctly
    CTGroupTransform2D xfrm = shape.getCTGroupShape().getGrpSpPr().getXfrm();
    CTTransform2D t2 = anchor.getCTTransform2D();
    xfrm.setOff(t2.getOff());
    xfrm.setExt(t2.getExt());
    // child offset is left to 0,0
    xfrm.setChExt(t2.getExt());
    xfrm.setFlipH(t2.getFlipH());
    xfrm.setFlipV(t2.getFlipV());
    return shape;
}
Also used : CTTransform2D(org.openxmlformats.schemas.drawingml.x2006.main.CTTransform2D) CTGroupTransform2D(org.openxmlformats.schemas.drawingml.x2006.main.CTGroupTransform2D) CTGroupShape(org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTGroupShape)

Aggregations

CTShape (org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTShape)8 CTNonVisualDrawingProps (org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps)6 CTTwoCellAnchor (org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTTwoCellAnchor)5 CTShape (org.openxmlformats.schemas.presentationml.x2006.main.CTShape)5 CTShapeNonVisual (org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTShapeNonVisual)4 PackageRelationship (org.apache.poi.openxml4j.opc.PackageRelationship)3 XmlCursor (org.apache.xmlbeans.XmlCursor)3 CTShapeProperties (org.openxmlformats.schemas.drawingml.x2006.main.CTShapeProperties)3 CTConnector (org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTConnector)3 CTPicture (org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTPicture)3 QName (javax.xml.namespace.QName)2 CTHyperlink (org.openxmlformats.schemas.drawingml.x2006.main.CTHyperlink)2 CTPresetGeometry2D (org.openxmlformats.schemas.drawingml.x2006.main.CTPresetGeometry2D)2 CTTextBody (org.openxmlformats.schemas.drawingml.x2006.main.CTTextBody)2 CTTransform2D (org.openxmlformats.schemas.drawingml.x2006.main.CTTransform2D)2 CTGroupShape (org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTGroupShape)2 CTShapeNonVisual (org.openxmlformats.schemas.presentationml.x2006.main.CTShapeNonVisual)2 Rectangle2D (java.awt.geom.Rectangle2D)1 POIXMLException (org.apache.poi.POIXMLException)1 InvalidFormatException (org.apache.poi.openxml4j.exceptions.InvalidFormatException)1