Java源码示例:org.openxmlformats.schemas.drawingml.x2006.main.CTBlip

示例1
/**
 * Replace an image with another while keeping
 * all the properties of the old image: z-index, border, shadow...
 */
private static void replaceImageInPlace(POIXMLDocumentPart containerDocument, ImageToReplace imageToReplace,
		XSLFPictureData newPictureData, Rectangle2D newImageAnchor) {
	RelationPart rp = containerDocument.addRelation(null, XSLFRelation.IMAGES, newPictureData);
	CTPicture pictureXml = (CTPicture) imageToReplace.toReplace.getXmlObject();
	CTBlip pictureBlip = pictureXml.getBlipFill().getBlip();

	String relationId = pictureBlip.getEmbed();
	if(canRelationBeRemoved(containerDocument, relationId)) {
		// clean up the old picture data
		PptPoiBridge.removeRelation(containerDocument, containerDocument.getRelationById(relationId));
	}

	pictureBlip.setEmbed(rp.getRelationship().getId());

	imageToReplace.toReplace.setAnchor(newImageAnchor);
}
 
示例2
void parse(XSLFSlide xslfSlide, XSLFPictureData xslfPictureData, JSONObject object) {
    if (!object.containsKey("alpha")) {
        parseImage(xslfSlide, xslfPictureData, object);

        return;
    }

    double alpha = object.getDoubleValue("alpha");
    if (alpha >= 1.0D) {
        parseImage(xslfSlide, xslfPictureData, object);

        return;
    }

    PackagePart packagePart = xslfPictureData.getPackagePart();
    POIXMLDocumentPart.RelationPart relationPart = xslfSlide.addRelation(null, XSLFRelation.IMAGES,
            new XSLFPictureData(packagePart));

    XSLFAutoShape xslfAutoShape = xslfSlide.createAutoShape();
    CTShape ctShape = (CTShape) xslfAutoShape.getXmlObject();
    CTBlipFillProperties ctBlipFillProperties = ctShape.getSpPr().addNewBlipFill();
    CTBlip ctBlip = ctBlipFillProperties.addNewBlip();
    ctBlip.setEmbed(relationPart.getRelationship().getId());
    ctBlip.setCstate(STBlipCompression.PRINT);
    ctBlip.addNewAlphaModFix().setAmt(numeric.toInt(alpha * 100000));
    ctBlipFillProperties.addNewSrcRect();
    ctBlipFillProperties.addNewStretch().addNewFillRect();
    xslfAutoShape.setAnchor(parserHelper.getRectangle(object));
    parserHelper.rotate(xslfAutoShape, object);
}
 
示例3
@Override
public void doRender(XWPFPicture t, XWPFTemplate template) throws Exception {
    logger.info("Replace the picture data for the reference object: {}", t);
    NiceXWPFDocument doc = template.getXWPFDocument();
    try (InputStream ins = new ByteArrayInputStream(data)) {
        String relationId = doc.addPictureData(ins, fomart);
        CTPicture ctPic = t.getCTPicture();
        CTBlipFillProperties bill = ctPic.getBlipFill();
        CTBlip blip = bill.getBlip();
        blip.setEmbed(relationId);
    }
}
 
示例4
private void setPictureReference(XWPFPicture t, String relationId) {
    CTPicture ctPic = t.getCTPicture();
    CTBlipFillProperties bill = ctPic.getBlipFill();
    CTBlip blip = bill.getBlip();
    blip.setEmbed(relationId);
}