General

Components

Community

Development

TDF

Demos > Add 2D barcode image to a slide

Overview

This demo shows the power of image and metadata support in Simple API.

A 2D bar code is a special image that can be scanned by a smart phone or a dedicated scanner. It could contain a URL, a books ISBN number a vCard for a person's contact, information, etc. It makes it easy to transfer information into a smartphone from a physical object, like a printed document, or a newspaper or magazine.

In this demo, the contact information of a document's author has been put in the metadata of a presentation document, with an ODF editor, such as IBM Lotus Symphony. The contact information in the metadata is extracted with the Simple ODF API, and wrapped into JSON object. Then a RESTful web service is called to generate a 2D bar code image based on this JSON object.

The bar code image is then added to the first slide of this presentation using the Simple API.

This picture shows how the contact information is added to the metadata of this document.

image1

This picture shows the 2D bar code image added to the first slide of this presentation document.

image2

Code Introduction

There code of this demo is very simple. First, we load the presentation document, and extract the metadata with Simple ODF API. Second, we invoke the web service to generate the bar code image and get the URI of this image.

Finally, we get the subtitle text box in the first slide, add an image just below of this subtitle text box. Please note how FrameRectangle is used to specify the image position.

public static void main(String[] args) {

	try {
		//load the presentation
		PresentationDocument presentation = PresentationDocument.loadDocument("Demotemplate.odp");
		//get the metadata
		Meta metaData = new Meta(presentation.getMetaDom());
		String creator = metaData.getCreator();
		String mailto = metaData.getUserDefinedDataValue("Email");
		String phoneno = metaData.getUserDefinedDataValue("Phone");

		//invoke the 2D barcode service, and get the url
		BarcodeImageGeneration demo = new BarcodeImageGeneration();
		String url = demo.invokepost(creator,mailto,phoneno);

		//Add the image to the first slide
		Slide slide = presentation.getSlideByIndex(0);
		Textbox subtitleBox = slide.getTextboxByUsage(PresentationClass.SUBTITLE).get(0);
		FrameRectangle subtitleRect = subtitleBox.getRectangle();
		Image image = Image.newImage(slide, new URI(url));
		FrameRectangle imageRect = image.getRectangle();
		imageRect.setX(subtitleRect.getX()+(subtitleRect.getWidth()-imageRect.getWidth())/2);
		imageRect.setY(subtitleRect.getY()+subtitleRect.getHeight());
		image.setRectangle(imageRect);

		presentation.save("output.odp");

	} catch (Exception e) {
		e.printStackTrace();
	}

}

Download

Powered by the Simple Java API for ODF version 0.5.5. You can download the code of this demo from here. The dependent library jslib.zip can be downloaded from here.

Impressum (Legal Info) | Privacy Policy (Datenschutzerklärung) | Statutes (non-binding English translation) - Satzung (binding German version) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Apache License, v2.0. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License v2.0. “LibreOffice” and “The Document Foundation” are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy. LibreOffice was based on OpenOffice.org.