Add Picture

From Documentation
Revision as of 07:52, 28 October 2011 by Henrichen (talk | contribs) (1st Draft)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Available in ZK Spreadsheet EE only

Purpose

ZK Spreadsheet uses Range.addPicture (ClientAnchor, byte[], int) to insert a new picture into the sheet.

ZUML

<window vflex="1" width="100%" 
	apply="org.zkoss.zssessentials.config.AddPictureComposer">
    <spreadsheet id="myss" src="/WEB-INF/excel/config/addPicture.xlsx" maxrows="200"
        maxcolumns="40" vflex="1" width="100%">
    </spreadsheet>
    <button id="add" label="Add Picture" upload="true"/>
</window>

Composer

We use onUpload to get the image to be inserted into the sheet. Besides the picture byte stream data, user have to provide the anchor position, too.

	private Spreadsheet myss;
	
	public void onUpload$add(UploadEvent evt) throws Exception {
		final Media media = evt.getMedia();
		byte[] image = media.getByteData();
		
		//add a picture
		Worksheet sheet = myss.getSelectedSheet();
		Range rng = Ranges.range(sheet);
		ClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, 2, 1, 7, 11); //C2:H12
		String fmt = media.getFormat();
		rng.addPicture(anchor, image, PictureHelper.getPictureFormat(fmt));
	}

ZKSsEss Spreadsheet AddPicture.png

View the complete source of ZUML addPicture.zul

View the complete source of composer AddPictureComposer.java

Version History

Last Update : 2011/10/28


Version Date Content
2.2.0 Oct. 28, 2011 API to insert a picture
     


All source code listed in this book is at Github.


Last Update : 2011/10/28

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.