• No results found

Office Open XML conversion with integrated result-altering GUI

N/A
N/A
Protected

Academic year: 2021

Share "Office Open XML conversion with integrated result-altering GUI"

Copied!
61
0
0

Loading.... (view fulltext now)

Full text

(1)

Department of Science and Technology Institutionen för teknik och naturvetenskap

Linköping University Linköpings universitet

g n i p ö k r r o N 4 7 1 0 6 n e d e w S , g n i p ö k r r o N 4 7 1 0 6 -E S

Office Open XML conversion with

integrated result-altering

GUI

Tobias Johansson Ramnäs

Christoffer Wern

(2)

Office Open XML conversion with

integrated result-altering

GUI

Examensarbete utfört i Medieteknik

vid Tekniska högskolan vid

Linköpings universitet

Tobias Johansson Ramnäs

Christoffer Wern

Handledare Karljohan Lundin Palmerius

Examinator Mark Eric Dieckmann

(3)

Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare –

under en längre tid från publiceringsdatum under förutsättning att inga

extra-ordinära omständigheter uppstår.

Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner,

skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för

ickekommersiell forskning och för undervisning. Överföring av upphovsrätten

vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av

dokumentet kräver upphovsmannens medgivande. För att garantera äktheten,

säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ

art.

Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i

den omfattning som god sed kräver vid användning av dokumentet på ovan

beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan

form eller i sådant sammanhang som är kränkande för upphovsmannens litterära

eller konstnärliga anseende eller egenart.

För ytterligare information om Linköping University Electronic Press se

förlagets hemsida

http://www.ep.liu.se/

Copyright

The publishers will keep this document online on the Internet - or its possible

replacement - for a considerable time from the date of publication barring

exceptional circumstances.

The online availability of the document implies a permanent permission for

anyone to read, to download, to print out single copies for your own use and to

use it unchanged for any non-commercial research and educational purpose.

Subsequent transfers of copyright cannot revoke this permission. All other uses

of the document are conditional on the consent of the copyright owner. The

publisher has taken technical and administrative measures to assure authenticity,

security and accessibility.

According to intellectual property law the author has the right to be

mentioned when his/her work is accessed as described above and to be protected

against infringement.

For additional information about the Linköping University Electronic Press

and its procedures for publication and for assurance of document integrity,

please refer to its WWW home page:

http://www.ep.liu.se/

(4)

Yooba is a small company based in Norrk¨oping and they are developing a software tool to easily create and manage applications for iPads and Windows tablets. The environment where to one creates applications is called Yooba Studio and a missing feature that has been requested by their users is a PowerPoint-file importer. PowerPoint, or Microsoft PowerPoint, is a software used to create presentations. To store the presentation data an open XML standard is used called Office Open XML, often shorten OOXML or Open XML.

This master thesis will explain how the information inside a OOXML presentation pack-age (.pptx ) can be stored and converted into a new presentation structure, Yooba XML. The thesis work will also explain how an interface, through user tests and prototyping, can be developed to present, for the user, differences when importing between the source program and the final result in Yooba Studio. The developed interface will involve the user in the importation in such way that the user will be the one altering how some of the differences should be imported.

The results of this thesis is a working integrated PPTX-file importer where the user can both see statistics over how successful the import were and be able to customize how the final importation result should be.

(5)

First of all we would like to thank the crew at Yooba, especially Sven Miller and Gustav Lysell-Sm˚al¨anning, for helpful explanation of Yooba’s system and for overall consul-tation. We would also like to thank our supervisor and examiner, Karljohan Lundin-Palmerius and Mark Eric Dieckmann, at Link¨oping University for helpful guidances during the thesis work.

A final thanks to all people that gladly participated in our user tests.

(6)

Abstract i

Acknowledgements ii

Abbreviations v

1 Introduction 1

1.1 Background . . . 1

1.2 Purpose and Aim . . . 2

1.3 Delimitations . . . 3

1.4 Research Questions . . . 3

1.5 Outline . . . 4

2 Background 5 2.1 Microsoft PowerPoint Background . . . 5

2.1.1 Open Standards . . . 5

2.1.2 Open Packaging Conventions . . . 6

2.1.3 Office Open XML . . . 7

2.2 Features Shared by Yooba Studio and Microsoft Office PowerPoint . . . . 9

2.3 Visualization Background . . . 10

2.3.1 Information Visualization . . . 10

2.4 Usability Tests . . . 12

3 Office Open XML Processing 14 3.1 Yooba XML Structure . . . 14

3.2 Importer UML . . . 16

3.3 OOXML Processing Techniques . . . 16

3.3.1 Explicit Programming . . . 17

3.3.2 Microsoft Office Interop . . . 17

3.3.3 Open XML SDK . . . 17

3.4 Data Mapping . . . 18

3.5 Not One-to-One Mapping . . . 18

3.6 Creation of Yooba-XML . . . 19 4 Interface Development 24 4.1 User Tests . . . 24 4.1.1 Usability Goals . . . 24 4.1.2 Usability Tests . . . 25 iii

(7)

4.1.3 Views . . . 25

4.1.4 Evaluation . . . 28

4.2 Implementation Tools . . . 30

4.2.1 Model View Controller. . . 30

4.2.2 jQuery . . . 30

4.2.3 D3js - Data Driven Documents . . . 31

4.3 Integration . . . 31 5 Results 32 5.1 Interface . . . 32 5.1.1 Importer View . . . 32 5.1.2 Menu View . . . 33 5.1.3 Statistics View . . . 34 5.1.4 Customize View . . . 35 5.2 System Support. . . 37 5.2.1 Geometry . . . 38 5.2.2 Color . . . 38 5.2.3 Text Object . . . 39

5.2.4 Shapes and Images . . . 39

5.2.5 Theme, Background and Layout . . . 40

5.2.6 Graphic . . . 40 5.2.7 List . . . 41 6 Discussion 42 6.1 User Tests . . . 42 6.2 Interface . . . 43 6.2.1 Visualize Changes . . . 43 6.2.2 Tactical Map . . . 44 6.3 Customize Importation. . . 44

6.4 Following the OOXML Standard . . . 45

7 Conclusions and Future Work 46 7.1 Conclusions . . . 46

7.2 Future Work . . . 47

7.2.1 Importer Improvement . . . 47

7.2.2 Interface Improvement . . . 48

7.2.3 Re-Usage to Create New Functionality . . . 48

A Yooba Studio Components 49

B Examples of Imports 50

(8)

CSS Cascading Style Sheets

HTML HyperText Markup Language

JPEG Joint Photographic Experts Group

JSON JavaScript Object Notation

ODF Open Document Format

OOXML Office Open Extensible Markup Language

PDF Portable Document Format

PPTX PowerPoint extension to the OOXML file format

XML Extensible Markup Language

(9)

Introduction

This thesis work has been done by students at Link¨oping University to fulfill the re-quirements for the degree of Master of Science in Media Technology and Engineering in the Department of Science and Technology.

The thesis work aims to study how to develop an importer tool for presentations that will be integrated with Yooba’s system. The importer are aimed to be used by the customers of Yooba to make a faster and easier transition between using Microsoft PowerPoint, or similar software, and Yooba’s own tool for creating presentations, Yooba Studio.

1.1

Background

Yooba [1] is a company based in Norrk¨oping, Sweden, who provides a platform that gives the opportunity for their customers to create interactive presentations for tablets. It could be done without the need of any programming skills and from the platform the users can maintain and manage all their applications.

Yooba Studio, see Figure 1.1, is a part of the platform where users can create their own applications. The interface is similar to Microsoft PowerPoint, see Figure 2.1, and components like images, text, shapes and buttons are available for usage. All these components can be inserted into a scene and be customized through translation, rotation and scaling. Yooba Studio also provides a small scale of functionality like click and actions event, which can be applied to a limited amount of components.

Figure1.1shows what it looks like when a new project is created in the studio. There are two scenes in the top-left corner which corresponds to a background and a foreground scene. Any component applied into these scenes will be displayed in all other scenes in

(10)

the presentation. There is also one default scene beneath which corresponds to a view in the final application. The user can later add as many scenes as wanted.

Figure 1.1: Yooba Studio

1.2

Purpose and Aim

Yooba provides a tool for customers where applications can be created without any programming skills. This product is primarily developed to help Yooba’s customer to improve their sales. The application has the power to demonstrate to the customers the products in a simple and interactive way. At the moment Yooba’s potential customers are using some other software tool to create their presentations and Yooba is interested in how to ease the transition between using another software tool and Yooba Studio. Yooba has discovered that a lot of customers want to use their own presentations, which they have put in a lot of time and money to create, as a base for when creating new interactive application in Yooba Studio. There is, at the moment, no simple method to re-use the content in their existing presentations in Yooba Studio.

Since the interface of Yooba Studio is very similar to other presentation programs, e.g. Microsoft PowerPoint, the customers often asks if it is possible to simply import their presentations into Yooba Studio.

(11)

Yooba is therefore interested in the possibility to create an importer that can convert current existing presentation formats to their own internal format. Yooba is also in-terested in how one could visualize the changes, when importing, between the source program and Yooba Studio.

1.3

Delimitations

The customers of Yooba may use different kinds of software tools to create their presen-tations and these presenpresen-tations will not all be based on the same structure for storage. There is the OOXML standard (.pptx), primarily used by Microsoft, the OpenDocu-ment standard (.opd) primarily used by OpenOffice.org and some other standards, for example pdf.

It would be hard to create a general converter that could handle all these formats and therefore the focus of this master thesis will be to create an import tool for the software tool that is most commonly used by the customer of Yooba. That would be Microsoft PowerPoint and thus the OOXML standard. The import tool might be improved so it can handle other presentation formats.

The OOXML standard supports a lot of features and functionalities but the the main focus of the converter will be the visual components. Functionalities like animations, hyperlinks and transitions will not be considered in this thesis because, according to Yooba, the visual parts are more interesting for their users.

1.4

Research Questions

The aim of this thesis work is to create a tool that can import PPTX files into Yooba studio. This comprehensive goal has been divided into more specific research questions that this thesis work will aim to answer.

1. What is the preferred method, in this matter, to retrieve graphical data from Office Open XML?

2. How can the data from a PPTX-file be mapped and converted into the presentation format of Yooba studio?

3. If the conversion is successful but there are some changes in appearance, how can this be represented to the user?

(12)

4. Is there a possibility to involve the user in the importation in that sense that the user may alter the result?

1.5

Outline

In the next chapter, Chapter 2, the background of Microsoft PowerPoint and how their presentations are saved, will be explained. Also, background regarding information visualization and user test will be presented.

After the background, in Chapter3, the OOXML processing will be explained, contain-ing the steps from retrievcontain-ing data to generatcontain-ing Yooba XML. The interface development, Chapter 4, with user tests will then be explained followed by the results in Chapter 5. Discussions regarding the results is shown in Chapter6, conclusions and potential future work will be presented, in Chapter 7.

(13)

Background

The background of Microsoft PowerPoint and how they save presentation files will be presented because it is interesting when developing an import tool for PPTX-files. Also presented are the visual parts that differ between the source program, usually Power-Point, and final program, Yooba Studio.

Some background regarding information visualization and user tests will be presented. The import tool aims to visualize differences to the user and user tests can be performed when developing the import tool’s interface.

2.1

Microsoft PowerPoint Background

Microsoft PowerPoint, or PowerPoint, is a software tool created by Microsoft [2], and is one of many programs in the Microsoft Office package. It is one of the most commonly used programs to create presentations, for both private persons and companies. With PowerPoint it is possible to create multiple slides that contain text, images, shapes, animations, transitions etc. The PowerPoint interface is shown in Figure2.1.

2.1.1 Open Standards

PowerPoint and similar software packages are using open standards to store presentation data. The definition of an open standard is that it is freely available to anyone with-out any restrictions. Open standards have become more common over the years and they have a strong impact on how applications and programs are created. Since open standards are available and free for everyone it makes it possible to use it with other

(14)

systems quite simply [3]. One common example of an open standard is HTML, which is the main language of web applications and another one is the JPEG format for images. Two commonly used open standards for documents are the OpenDocument Format (ODF) and OOXML. The ODF is more common for products produced by Open Office and OOXML is for Microsoft Office [3]. With the OOXML it is possible to store ap-plications that could run on both server and client side and it can store large amount of data thanks to the small file size [4]. Thanks to open standards anyone could create a software that supports OOXML and at the moment e.g. Google Docs and KeyNote have support for it.

2.1.2 Open Packaging Conventions

OOXML and ODF are using the Open Packaging Conventions (OPC) which is, according to Microsoft [5], a technique created by Microsoft that makes it possible to store both regular XML and non-XML files in a single package. This entity resembles a ZIP archive which makes it possible to inspect the content without any problems.

A package will contain different parts, and in this context a part can be both XML and non-XML files. For example, a package with a text document with one picture may contain one XML part that represent the document and one part that represent

(15)

the image. The parts in the package may have relationships and this data will also be stored in the package.

2.1.3 Office Open XML

In December 2006 the first edition of the OOXML standard, ECMA-376, was published [6]. It included three specifications where WordprocessingML is used for word processing documents, SpreadsheetML for spreadsheet documents and PresentationML for presen-tation documents, according to Daniel [6]. To support graphics like drawings, shapes and charts another markup language is introduced and it is called DrawingML.

As described in Section2.1.2the OOXML files are stored as ZIP archives where each file represents a single part. By organizing the files like this it is more efficient to access the needed data and it will also minimize the chances of damaging the data [6]. All the part types are defined in a package file called ContentT ypes.xml, which makes it possible to keep track of all the data types without knowing the extension of the file.

PresentationML

This project will be focusing on the PresentationML since it is the markup language that represents presentations. Thanks to the OPC, the PresentationML document is a compressed file that contains a number of XML-files or (UTF-8 or UTF-16) encoded parts but also media files such as images according to Daniel [6]. An example of a tree structure of the PresentationML is shown in Figure2.2.

The information regarding the visual appearance for each object in a presentation can be described in four different parts in the package, slide, slide layout, slide master and theme.

The theme contains information regarding the overall style of the presentation. The theme data will differ depending on the presentation but will often explain the general fonts, colors and background properties.

The slide master will contain common slide data where the global theme for the presen-tation will be described with both a regular background and various background shapes. There are also placeholders, such as title and date-footer, that will contain properties for objects in the slides and slide layouts.

The slide layout will inherit from a single slide master, but it can itself add more in-formation regarding the visual appearance. The slide layout will, like the slide master,

(16)

Figure 2.2: Elements of a PresentationML file, taken from [7]

contain common slide data which may contain background data and placeholders. This data may inherit from the slide master and override the slide master data. There can also be data that is completely new.

The common slide data of a specific slide will be the main part of the slide’s XML, it contains the objects within the slide. These objects may have properties described both in the slide layout, slide master and theme. The slide XML will, simply put, describe what actually is visualized for each slide, but it may not contain all information since most of the slide description will be placed in its slide layout, slide master and theme. Media objects, like images, are stored in a specific directory embedded in the package. It is possible to store video and sounds as well but this report only focus on image handling.

DrawingML

All the graphical appearance of an OOXML file is based on the drawing markup lan-guage, DrawingML. It can not alone be used as a markup language but it is used by WordprocessingML, SpreadSheetML and PresentationML. It handles multiple objects

(17)

like pictures, shapes, connectors, texts, charts, diagrams and tables. A more detailed description can be found at officeopenxml.com [6].

2.2

Features Shared by Yooba Studio and Microsoft Office

PowerPoint

The visual features that are supported in Yooba Studio are limited compared to OOXML and PowerPoint. The majority of the supported features and components in Yooba Studio will also be supported in PowerPoint. That is however not what is the most interesting for this thesis work. The intersting part is what visual parts in a PowerPoint presentation that are supported and can be visualized in Yooba Studio. This section will list the parts from PowerPoint that are supported in the Yooba Studio but also the most crucial parts that are not.

Text objects are supported both in PowerPoint and Yooba Studio and they both support some shared text properties. However, PowerPoint does support more features than Yooba Studio, e.g. double underline, vertical alignment and shadow.

Shapes can be created both in Yooba Studio and PowerPoint but, in comparison to PowerPoint, the number of predefined shapes in Yooba Studio are low. The possible values for the predefined shapes supported by the OOXML can be read in the standard [8]. PowerPoint and OOXML also support custom shapes where the shape is described by dynamic XML in the OOXML standard [8], which is a feature that is not supported by Yooba. In PowerPoint the user is also able to add text inside a shape but that feature does not exist in Yooba Studio.

Images works fine in both Yooba Studio and PowerPoint but there are a lot of image object settings that Yooba Studio does not support that are supported in PowerPoint. Example’s of this are crop, reflection, shadow and borders.

Tables, lists, diagrams and charts are not supported in the Yooba per se but one may be able to visualize these object anyway through images, shapes and text object. These object will not be nearly as easy to interact with but visually they will be similar. Geometry can be changed for the objects both in Yooba Studio and in PowerPoint. One can rotate, translate and scale the object in both environments, but in PowerPoint the user is able to group several objects and then change the geometry of the group, which will affect all the children in the group. If one translates, rotates and scales the group, or just select and affect multiple objects at once, the children object might get the shape of a rhomb, see figure2.3, and Yooba Studio does not support these kind of shapes.

(18)

2.3

Visualization Background

The import tool also aims to visualize differences between the source program and Yooba Studio for the user and in order to do that some background regarding information visualization is needed. Information visualization can also make the interface of the import tool better and more user-friendly and a method to ensure that an interface is good enough is to perform user tests and analyze the results of the tests.

2.3.1 Information Visualization

Information visualization has been around for centuries and it is hard to tell when it actually started. Simply explained it is a method to mediate information through different abstractions. In the early beginning these abstractions could be maps and pictures created by the ancient Egypt’s but in modern time usually bar charts and other statistical diagrams are used, according to Collin [9].

Information visualization in the computer world has a lot of advantages because it is possible to create dynamic and interactive tools. These tools can help users understand information in a better way than just by looking at raw data. With modern computers large amount of data can be processed and visualized in a fast manner which often is a requirement in modern time.

Collin [9] explains that data can be described as entities and attributes of entities. An entity is the actual object and attributes define more specific information regarding that object, such as color and size. He also mentions that an attribute can have several dimensions like vectors with speed and directions.

Figure 2.3: PowerPoint group object to the left. The same group object to the right with an asymmetrical scale.

(19)

Pre-Attentive Processing

One of the most important things in information visualization is to make it understand-able. The pre-attentive, also known as the pop-up effect, is a tool to do this in a fast manner. Collin, [9], describes the pop-up effect as a phenomena that will help the human eye to track down what is different, e.g. in an image. As a developer one could use this knowledge to create the visualization so that the user notices the most important things first. An example of a can be seen in Figure 2.4 where the red square pops out among its distractors, in this case the black squares.

Figure 2.4: Example of the pop-up effect, the red square seems to pop out compared to its surroundings.

Bar Chart

A bar chart is a common technique in information visualization to visualize differences between multiple categories. The data is divided into two dimensions where one of them represents data values and the other one represents different categories. Each bar represents one category where the length of the bar is based on the data value. It is also possible to divide each bar into different sections to visualize different entities within a category.

Tactical Map

Tactical Map is a technique that can be applied to an application with the intent to visualize different objects among others. They need to be separated so that they can be identified properly. Collin [9] describes that a set of symbols can be used to represent different distinct objects and classes of a map display, see Figure2.5. This is a way to achieve the pre-attentive approach but with more objects to handle.

(20)

2.4

Usability Tests

In order to develop an interactive interface for computer visualizations tools it is critical to involve the users during the development. This can be done by performing several user tests with the intent to make the interface understandable and easy to use. According to Nielsen [10] this can be done by either quantitative or qualitative tests. The difference between these methods is that a quantitative test is controlled test where people have to answers different questions through a form. With this test it is not possible to get direct feedback, the researcher can not ask questions during the test and not observe how the user reacts to certain things, according to Rohrer [11]. However, this type of test can point out different flaws of a system based on the data collected, although it is more time consuming than a qualitative test.

The qualitative test can be used when direct feedback is necessary. The tester will observe the researcher during the process and have the possibility to see how the tester acts and behaves and ask questions, both before, during and after the test. This type of test is not as expensive as the quantitative, according to Nielsen [10].

Nielsen, [12], explains that a qualitative test should take place with no more then five different people with an iterations of three times. For each iteration there should be three to five new people and before next iteration the previous test should be analyzed and processed to improve the current design.

Figure 2.5: Image is taken from Information Visualization, perception for design [9] and represents an example of a Tactical Map.

(21)

The first person will find most of the flaws and give the developer critical information about the usability of the design. The second person will also notice most of the errors that the first person found, but also find new ones. The third person might only find same things that the first and second user did but it is possible get some new information. When this is done it is up to the developer if it is necessary to continue with more testers. However, according to Nielsen [12] the possibility to gather new information is not likely.

(22)

Office Open XML Processing

This chapter covers the development of the OOXML converter, from an OOXML pre-sentation package to Yooba XML. It describes how the data is mapped and can be used for further development. It also contains how the final XML is produced and structured to make it compatible with Yooba Studio.

3.1

Yooba XML Structure

The application from Yooba Studio is based entirely on XML which means that any component added to a scene will add a new XML node to the structure. This component is called a scene object and holds different properties and attributes within its own XML node. Both the background and the foreground scene has its own scene XML node where components will be appended to, same goes for a default scene.

A scene object is defined by an attribute called type. All different alternatives can be seen in Appendix A. Due to the delimitation’s, see Section1.3, only rectangles, ellipses, polygons, images and texts are the objects handled by the converter. These can be seen in Figure 3.1.

All scene objects available possess the same attributes which explains the position, size, rotation and opacity. However, they also specify child nodes that further describe the content and properties of the scene object. Which child nodes that the object will contain, depends on the object’s type.

(23)

Shape

RoundedRectangleShape, CircleShape and PolygonShape are the three types of shapes available in Yooba studio. These components share the same XML structure including child elements and global properties. They have a child element called accessors which describes the shape’s inner properties such as fill color, gradient angle and border size. The difference is that the RoundedRectangleShape will solely have settings for a border radius, PolygonShape have a counter for the amount of edges and CircleShape have a property for the radius.

Text

Texts in Yooba Studio is defined by the type TextObject and it contains a specific child element called text. Within the element it stores the text string through HTML.

Image

An image is defined with the type FluddClip. Images are uploaded to Yooba’s database to make them visible in the studio. Each image has its own unique id which is created when it is uploaded. Without the id, it is not possible to display the image in the studio.

(24)

3.2

Importer UML

A custom made class system was created to store data gathered from the PPTX-file. It was produced to resemble the structure of the Yooba XML, presented in Section 3.1. With this it is possible to generate the final XML once the data is mapped. A simple class diagram without any operations or only a few attributes is shown in Figure3.2.

Figure 3.2: Simplified class diagram of the Importer UML.

A presentation instance consists of two lists where one of them includes all the scenes and the other possesses scene objects displayed in the entire presentation. Each scene also contains a list where all scene objects within the specific scene is stored. This means that a presentation instance stores all needed data to describe a Yooba presentation. Each scene can have scene objects described in Section3.1but it can also contain tables. The global properties are stored in the SimpleSceneObject and then the specific child elements are stored in TextObject, ShapeObject, ImageObject or TableObject depending on the type.

The text and the properties of a TextObject is described with a list of text styles and a list of text fragments. A text style contains all the visual properties to describe a text, such as font color, font size and font style. A fragment corresponds to a text part with an ID that refers to a text style. Multiple text fragments can share the same text style.

3.3

OOXML Processing Techniques

To process and gather the data needed from a PPTX-file a proper OOXML process tech-nique is required. According to Microsoft Developer Network [13], OOXML documents can be processed with any tool that provide XML and ZIP file manipulation.

(25)

3.3.1 Explicit Programming

With self created program that handles file manipulations it is possible to process and gather data from a PPTX-file. Where LINQ [14], can be used to traverse through the XML tree with specific queries. With this it is possible to focus on all the necessary parts. However, it would take a long time to produce such system because of the complex structure of OOXML.

3.3.2 Microsoft Office Interop

It can be processed with the Microsoft Office Interop which is an assembly embedded with the .NET system. It interacts with Microsoft Office programs such as Word, Excel and PowerPoint. It can be used to read or perform different operations to a document. However, the office program needs to be installed on the client to make it work, [15]. This approach is not preferable for this implementation since Yooba has requirements to locate the final product on their server. According to Microsoft [15], Microsoft Office programs are assumed to run under an interactive desktop. In some circumstances there might be unexpected errors in the program, which are designed to prompt a dialog-box when it occurs. These boxes can not be dismissed on a non-interactive desktop which makes it not preferable to place the final application on a server as in Yooba’s case.

3.3.3 Open XML SDK

Instead Microsoft has created the Open XML SDK [16], that is built on the Sys-tem.IO.Packaging API. It provides functionality that lets users create and manipulate Microsoft Office document programmatically. The Open XML SDK could also be used as a tool to traverse through the OOXML package to find and store interesting data. This is the most suitable technique for this project since it already provides functionality to traverse through OOXML documents. The final application will be placed on a sever which runs independently of human interactions. According to Microsoft [15], applica-tions that interact with Microsoft PowerPoint, in this case, should not be implemented on a server side. This is because PowerPoint is a desktop interactive software which makes an error dialog impossible to remove without an interaction.

(26)

3.4

Data Mapping

With the Open XML SDK it is possible to read and store needed data of a Presen-tationML structure. The gathered information is stored in the defined class structure described in Section 3.2.

The first thing that happens is to process the parts that may contain data for the entire presentation. The theme holds data about the style and is first processed. This is followed by the slide master where all the placeholder shapes will be stored for later usage. From the slide master there might be data regarding background properties of the presentation. This will be stored in the presentation instance.

The last step in the data mapping is to iterate through all slides of the PresentationML. In every slide there are some requirements that need to be fulfilled. Since a slide can have a slide layout, this has to be searched for placeholders, shapes and potential background shapes. This is followed by a search for all shapes within the slide. A shape that has been found in the slide needs to be further evaluated. Since there might be additional data stored in a placeholder located in the slide layout or the slide master.

3.5

Not One-to-One Mapping

There are objects supported in OOXML that are not supported in Yooba which can still be imported with modifications. Example are lists, tables and gradient backgrounds. Lists are not supported in Yooba Studio but an user is still able to emulate the visual appearance of lists by using a simple text object.

Tables are not supported in Yooba Studio but can be produced from shape and text objects, but it takes time to make it look decent. However, since OOXML have all the needed data to reproduce a table there is a possibility to take advantage of that. By storing the needed data, a HTML table can be created and then a HTML renderer can be used to generate an image. From this the user can either choose to import the table as an image or with shape and text objects provided by the studio.

In Yooba studio the user can only choose a solid background as a background. However, a shape can be introduced as a background that covers the entire slide and be placed furthest back. Still the problem remains when a gradient with multiple colors is desired because Yooba only supports two colored gradients. However, the PowerPoint XML possesses the needed information to reproduce a gradient background. This gives the opportunity two choose between alternatives. Either an image is created that will be

(27)

correct, but the colors can not be modified, or a shape is created with only two of the colors, but these colors may be modified in Yooba Studio.

There are many other objects and features that could be imported with modifications but at the moment only lists, tables and background gradients are handled by the importer.

3.6

Creation of Yooba-XML

The Yooba-XML is generated through a single call from the converter. All the compo-nents are stored in different lists of the presentation instance, described in Section3.2. The operation will first generate the root element, yoobaproject, with its properties and also create a background and foreground child element with corresponding scene object XMLs.

Then the presentation will iterate through all scenes and retrieve the XML for the scenes, and each scene will get the XML for every scene object inside the scene.

Before the generation of the Yooba XML from the class-system there are some settings that needs to be modified.

Units Conversion

Since PresentationML and Yooba studio do not share the same measurement units these needs to be handled before the final XML is created. Font size are 100 times larger than regular XML and percentage values, such as alpha, are 100,000 times larger, according to Microsoft Developer Network [16].

The size and positions in PresentationML are described in EMU1 where one inch equals

914,400 EMUs and one point (pt) equals 12,700 EMUs. Yooba uses pixels (px) as their measurement unit and to calculate the PowerPoint EMU units in pixels Equation 3.1

and 3.2are used.

pt= EM U

12700 (3.1)

px= pt · dpi

ppi (3.2)

(28)

In Equation 3.2 dpi corresponds to points per inch and is in the converter assumed to be 96, and pixels per inch, ppi is 72.

Text, Shape and Image Conversion

To generate the Yooba-XML for the text, shape and image objects are quite easy when the mapping, see Section 3.4, has been completed. One complication is due to the limitation of Yooba Studio that one can not add text inside a shape. Therefore, to make the visual appearance to be the same, the converter must create one shape object and one text object with the same size and positions.

Texts are described using HTML in Yooba XML, but the importer use text styles and text fragments. Therefor the importer must generate HTML from the styles and frag-ments.

Color Conversion

Yooba describes their color in two different ways, either by 10 digits decimal or by 16 digits hexa-decimal. Which color description that is used depends on the object that will be filled with color.

The problematic part with the color conversion is that OOXML does not always provide one final color. OOXML’s color description includes color modifications that will change how the color should be presented. This leads to that the converter must calculate the final color, using algorithms described in ECMA [8]. Some of the operations used to compute the final color require that the color use the HSL color space. Since colors from OOXML might be described in RGB color space, a transformation is needed and this conversion is explained by Samuel R. Buss [17][152-153].

The color modifications are handled by certain algorithms which are described by ECMA international [8]. Although there is some special cases with color modifications for the shade and tint property. According to Tom Underhill [18] the calculation of shade and tint elements are made differently for files created by Microsoft Office 2007 or later. Shade will make the color darker while tint returns a lighter color. To handle this Tom explains that the original RGB color needs to be linearized RGB values before applying the given values and then convert it back to original RGB.

Csrgb=    (12.92)Clinear Clinear ≤0.0031308 (1.055)Clinear1/2.4 −0.055 Clinear >0.0031308 (3.3)

(29)

Clinear =    Csrgb 12.92 Csrgb≤0.04045 (Csrgb+0.055 1.055 )2.4 Csrgb>0.04045 (3.4)

Equation 3.3 describes the conversion from linear RGB to gamma corrected RGB and Equation 3.4 describes the conversion back to linear RGB. These equations are used for each color channel of the original color that will be transformed, where each color channel are represented by C. A more detailed explanation about the algorithms is described by Juckett [19].

Rotation Conversion

The rotation of objects in Yooba and PowerPoint seems to be the same when rotating an object in their interfaces. In both cases the user rotates the object around its own center. The difference between them is that when rotating in PowerPoint the offsets2 of

the object stay the same but in the Yooba Studio the offsets change.

That means when importing objects from PowerPoint that has been rotated their offsets will stay the same when it actually should not. The issue is visualized in Figure 3.3.

Figure 3.3: Objects rotated in PowerPoint (left) and the same objects imported to the Yooba Studio (right), without recalculation of the offsets.

All the objects in Figure3.3have the same offsets, but their rotation differ. To make the visual appearance identical in Yooba’s interface, the objects offsets must be recalculated. To do that we need to determine the difference in center points between the object before and after rotation, see Figure 3.4.

2An object’s offsets corresponds to the length from the upper left corner of the presentation scene to

(30)

In the mapping of data from the OOXML package the offsets and size for each object are retrieved, which means that point A in Figure 3.4 is known and point E can be determined.

By calculating point B, followed by C and finally D using trigonometry, the center of mass for the rotated object has been determined. To compute the correct offsets for the object vector DE is subtracted from the original offsets.

In PowerPoint it is possible to group multiple objects together and then rotate the group, which will affect the rotation for all the child objects. This rotation will be separated from the child’s inner rotation. Since the grouping features is not supported in the Yooba Studio the converter is obliged to calculated the object’s outer group rotation as well.

Figure 3.4: Single object rotation

(31)

The group rotation will make the children rotate around the group’s center point, see Figure 3.5. To calculate the new offsets the converter is using Equation3.5.

x′ y′ ! = cos(θ) − sin(θ) sin(θ) cos(θ) ! ∆x ∆y ! + x y ! (3.5)

In Equation3.5, θ corresponds to the rotation of the group, ∆x and ∆y are the difference between the child object’s center and the group’s center, x and y the original object offsets and x′ and ythe new recalculated offsets for the child object.

(32)

Interface Development

This chapter describes the development of the graphical user interface. It consists of different views and explanations about how they were achieved using user tests. It also describes how the interface is connected with the importer and how it is integrated with Yooba.

4.1

User Tests

Through user tests it is possible to try different solutions with users to see if they understand the they desired goals. The first user test was made with five persons with different knowledge about interaction and usability. The second test was made with five new persons with similar experience that the first group had.

4.1.1 Usability Goals

The primary goal is that the user should understand how to choose the PowerPoint file and how to to complete the import.

The secondary goal is that the user should see and understand the overall success rate of the import but also be able to see more detailed information regarding which elements that have not been imported. The user should also grasp the concept of customizing components and understand what the different import settings actually means.

The tertiary goal is to create a pleasant user experience with a likable visual design. To do that the aim will be to have a design with as few clicks as possible and also make it simplistic.

(33)

4.1.2 Usability Tests

Yooba works with customers that are not that used to advanced and complex system and due to that, the graphical interface needs to be adapted to these types of users. Nielsen [10] specifies the approach of doing a quantitative or qualitative evaluation to get the best possible feedback from users, which is further described in Section2.4. The prototype interface is designed based on the feedback gathered from qualitative tests because of the limited time. Qualitative tests were also chosen because it is possible, with that kind of test to get direct feedback from the subjects.

The prototypes are created in Yooba studio and exported to an Ipad to save valuable time. During the tests the subjects spoke freely about how they navigate through the interface and what they thought the intent was. This gives critical feedback from the testers of how hard or easy the interface is to interact with and how understandable each view is.

After the first group of testers had made the user test, the gathered data was evaluated and then used to create a new interface that later was tested by a new group of people. The test involved three groups of three to five people in each group and both experts and non-expert users were included. To be an expert in this context means being familiar with Yooba Studio.

4.1.3 Views

The first view is the import view, which can be seen in Figure 4.1. This is the view that is first shown in the interface. Here the user can select a (.pptx) file, but also add a description in the text area. At the bottom of the view is the import button that will start the conversion. This will also lead the user to the next view, see Figure4.2. The second view is presented to the user after the selected file has been processed and mapped which means that the conversion is completed. In this view the user can either finish or cancel the import. The user can also see how much, in percentage, of the content that has been imported and also have the possibility to see more statistics. How many objects that can be customized are shown and the user gets the opportunity to customize the import.

The view that can be seen in Figure4.3 is the statistics view. This view will be shown by clicking on the ”more statistics” button in Figure4.2. This view represents how well the import went for each slide of the selected file. The view consists of a bar chart and information about each slide, where each bar represents a slide of the imported file. In

(34)

the bottom left corner there is a button that will take the user back to the menu view, Figure 4.2. Each bar visualizes how successful the import went by the height, where a taller bar is better then a lower one.

To see what went wrong there is a list of messages for those components that might have some properties that are not supported in Yooba. The messages are divided into two categories: errors and warnings. An error message indicates a component that could not be imported while a warning message will only inform the user that there might be a modification of the specific component. These modifications are not supported in

Figure 4.1: View 1 - PowerPoint import

(35)

Yooba, but the component will still be imported which means it might not look the same as in the source file.

In Figure4.4and4.5the customize views are shown where the user may customize how some of the object will be imported. In both figures there is a back button for the user to go back to menu view,4.2, and one button ”done” for completing the customization. In both views there is also a menu list to the left where the user can navigate between the slides and the slide objects. In the menu it is also shown how many objects, for each slide, that can be customized and how many that have been customized.

A slide overview is shown in Figure4.4where all imported objects in the slide is shown. The objects that can be customized is colorful and the rest are described by a lower color. The purpose of the overview is to make it easier for the user to understand which object will be customized.

After clicking on an object in the slide list the view for customizing objects is shown, Figure 4.5. In that view there is a title describing the object and a short description of why it can not be imported directly. The user will get several options of how to do the import and a preview of the chosen option will be shown. In the preview there will both be an explanatory picture and some advantages and drawbacks to help the user do the choice. There is a check button ”use for all” that will make the setting apply for all object that are of the same type, e.g. all tables. Finally there is a save button to save the chosen settings.

(36)

4.1.4 Evaluation

The evaluation will explain the view designs and how they have developed during the usability tests to fulfill the usability goals.

Navigation

As described earlier there are three steps in the import: choose file, see statistics and customize the import. The first prototype had a linear navigation with these three steps,

Figure 4.4: View 4.1 - Customizing slide overview

(37)

which are performed sequentially, and only one single next-button used for navigation. The idea for that design was to make it more intuitive to grasp.

During the tests it occurred that the users did not fully understand what happens and where they had come after they have chosen their file and clicked import. This first design also required many clicks on average.

To make it easier for the user to understand what happen after they click import and in order to reduce the number of clicks, a new menu view was introduced, Figure 4.2. Features like customizing objects and to see detailed statistics might not be desired by the common user and thus it should not be obligated for the user to see. The new view allows the user to choose whether to see the more advanced features or not and it gives user the possibility to finish the importation in two clicks.

When testing the new prototype with the menu view it was discovered that 80% of the testers directly finished the import when entering the menu view. This shows that most of the user are not interested in side features, such as customizing objects. The testers first priority is to finish the import.

Statistics

The first tests showed that the design had some flaws concerning the statistics view. The test subjects thought it was hard to understand the connection between the bars and its underlying content. At first there was a pie chart with the intent to visualize the different components within a slide but the first tests showed that it was not useful at all. The bottom part in Figure4.3did not have any connections what so ever to the bars which confused some of the testers.

The pie chart was removed for the second test and a small arrow was added to connect the different bars with the information window. This proved to be a better solution because the view becomes more clear in this state. The majority of the testers thought that the bar chart was a very good tool to visualize the success rate for each slide, by this they could easily see for each slide if there were any problems with the components.

Customize

Two approaches were developed for the navigation within the customize object.

The first idea was to force the user to customize everything. The user would have the opportunity to handle each object in a linear way. The user would be forced to modify each object and move on to the next one until there is no objects left. However, the user

(38)

test showed that it was hard to understand the purpose of this solution. The user had no control to select a specific object and the navigation confused the users. It required a lot of interactions to actually proceed to the final result.

The second idea was to list all the customizable objects and to let the user select which object to modify. The user tests showed that this was easier to understand and it made it possible to proceed without being forced to modify all the objects. It could also display where the objects were located through the tactical map in Figure4.4.

Through the user test, both of these designs could be tested and in order to determine which one that would be suited for this interface. It made it possible to see if the user would understand the purpose and if the user goals, see Section4.1.1, could be fulfilled. The user test showed that the second idea was the better one. It made it easier for the user to finish the import without to many interactions but it also made it clear to modify objects.

4.2

Implementation Tools

The final interface is developed as an integrated application based on regular HTML, CSS and JavaScript. Explicit JavaScript library such as jQuery and D3js were intro-duced to handle specific parts within the application. The Yooba back-end is created with ASP.NET MVC which is a framework developed by Microsoft to create dynamic websites.

4.2.1 Model View Controller

The MVC stands for Model, View and Controller which is a technique to separate the front-end logic with the back-end logic. The Model stores data, View represent the graphical part and the controller handles the connection between those two.

4.2.2 jQuery

jQuery is a JavaScript library that is small but feature-rich with the intent to simplify the creation of dynamic websites. It provides easy-to-use functionality like ajax, animation and event handling, [20]. This library is used since it provides some of the needed functionality, but primarily because of the dynamic updating of a page can happen without the need of refreshing it. The interface is developed to fulfill the usability goal of great user experience and thus having as little delay as possible. According to Collin

(39)

[9][349-350] even short delays, depending on the difficulty of the interface, can drastically reduce the information gathered by the user.

4.2.3 D3js - Data Driven Documents

D3 is a JavaScript library that allows the user to bind arbitrary data to a Document Object Model (DOM) [21]. With this library it is possible to generate interactive visu-alization’s through a given set of data. The bar chart described in Section 4.3 will be implemented using D3 so it can dynamically expand depending on the amount of slides.

4.3

Integration

To integrate both the importer and the interface into Yooba’s system it is necessary to follow the Yooba back-end structure which is based on the MVC pattern described in 4.2.1. The controller will process the user requests and update the models. In this implementation, JavaScript is used to present the views.

The importation is divided into two steps where it first handles the process of the OOXML file. It will store the gathered data into a JSON [22], which is handled by JavaScript. The next step triggers when the client wants to proceed to finish the import. All images will be uploaded to Yooba’s database at this stage and any changes made in custom view will be updated to the final presentation.

(40)

Results

This chapter consists of the tool to import an existing PPTX-file into Yooba Studio. The interface contains four views, an import view, a menu view, a statistical view and a customize view. Each view of the interface will be explained with its content. The results also contain a section where the supporting features of the importer are described.

5.1

Interface

The final result of the interface consists of four different views. These views were pro-duced based on user tests described in Section4.1.

5.1.1 Importer View

The importer view can be seen in Figure 5.1which is the first step of the importer. It consists of two buttons and a text area where the top-left button have the functionality to select a single PPTX-file. The bottom-left button starts to read the file and in between the buttons there is a text area that will append a description to the project.

The user will get responsive feedback if the chosen file is valid or invalid. The text next to the top-left button will display the selected file name. At the bottom area next to the button all the error messages will be displayed. This can occur when the selected file is not a PPTX-file or if the file process failed. The bottom-left button will only be clickable if there is a file selected which fulfills the requirements of having the file extension of PPTX. This button starts a loading screen to let the user know that something is processing. This can either fail, which will lead the user back to the importer window, or it can pass, which will lead to the menu view.

(41)

5.1.2 Menu View

The menu view consists of four buttons and two text fields which can be seen in Figure

5.2. It is the view that will be loaded when the file process is complete from the importer view. In this stage, the PowerPoint file is processed which means that all the needed data is gathered and it can be visualized. The text located in the top-left corner tells the user how much content that was successfully imported while the text beneath visualize how many objects that can be handled in the customize view, read more in Section5.1.4. The statistic button will take the user to a new view where more detailed statistics are shown. The customize button can either be active or inactive depending on the amount of customizable objects found by the importer. This button will take the user to a view where certain objects that could not be imported directly can be modified.

Figure 5.1: Import view

(42)

In the bottom area there are two buttons. The left button will close the dialog window. This can not be undone, which means that the user has to import the same file again to make it back to the menu view. The finish button will start to create a new Yooba project based on the data gathered from the import process but also if there were any modifications in the custom view. A loading screen will be displayed with a spinner and a text that updates dynamically with brief information about what happens. It will redirect the user to Yooba studio with a newly created projected filled with data from the selected file and modifications handled by the user.

5.1.3 Statistics View

The statistics view can be seen in Figure5.3 and it has the intent to inform the user of what objects that could be imported and those who could not. The view is divided into two sections where the top area is a bar chart created with d3js, read more in Section

4.2.3. In the bottom area there is a field that have two lists with information about the content for each slide.

Figure 5.3: Statistics view

The list located at the left side contains warning and error messages of the selected slide. A warning is marked with a yellow exclamation mark and corresponds to a property of an object in the source file that could not be imported. An error is marked with a red occupied mark and represents an entire object that could not be imported. Next to the

(43)

marker a message is displayed with information about the problem for one object. To make the list more readable all identical message will be grouped and the message will only be displayed once. The amount of message will be presented between the marker and the message. A slide with objects without any warnings or error messages will inform the user that everything on that slide could be imported without any problems. Above the left list there is text that tells which slide is selected but also how many percent the slide got. This value is only affected by how many errors occurred compared to the total amount of objects within the specific slide. A slide with no errors will have a success rate of 100 but there might still be warning messages.

The second list is located to the right which visualizes the amount of objects within the selected slide. Objects that could be imported are separately categorized while the unsupported objects are gathered in the same category.

The bar chart is interactive where the y axis represents the success rate between 0 and 100 and x axis corresponds the amount of slides. However, the first bar contains data regarding objects that will be shown in every slide of the selected file. The bars are color coded from red to green where a higher percent value corresponds to a green color. It is possible to see the content of a slide by selecting them with the mouse pointer. The import data will be displayed in a list located to the right in Figure5.3.

5.1.4 Customize View

The customize view can be seen in Figure5.4and is loaded when selecting the customize button from the menu view, see Figure5.2. This customize view is the view where the user can interact and decide how different objects will be imported. To the left there is a list located with objects that are modifiable. In the middle there is a view that has two sub views, where the first view represents an overview of the slide content and the second view handles the modifiable objects. In the bottom there are two buttons located in each corner. Both buttons lead the user back to the main menu, however the right button will store any modifications made in the customize view. This makes it possible to resume to previous changes next time when the customize view is loaded.

The list in Figure 5.4 represents the slides that contains modifiable objects. It is a collapsible list which means that it is only possible to see the content of a slide one at a time. When a list item is selected it will open new view in the middle area, more about this view later in this section. The list will also display all modifiable objects in a sub list beneath the selected slide. The objects within the sub list can be selected and will

(44)

display another view, see Figure 5.5. The selected object will receive a black marker to inform the user which object is selected.

In the parent bars there are two texts located. The left text tells which slide it is and the right corresponds to the amount of objects that has been modified. A modified object, a child bar, will be displayed with a green background color.

Figure 5.4: Customize view, with tactical map

The overview can be seen in Figure5.4 which pictures a tactical map, read more about it in Section2.3.1. This will be used as guidance to see where the modifiable objects are located within a slide. Those objects are colorized in such way that they pops out of its surroundings, read more about this in Section2.3.1. Non modifiable objects are colored with a dark gray color and can not be selected.

The objects within the overview are connected with the list described earlier. By hover-ing the mouse pointer over the modifiable objects in the overview area, the correspondhover-ing object in the list will be highlighted and vice verse.

The customize object view can be seen in Figure 5.5. With this view it is possible to choose how a modifiable object should be imported. There are three options that can be selected and they all a have their own pros and cons. The preset is always import as a shape for backgrounds or shape/text for tables. This means that the specific object will be created by Yooba studios internal components described in Section3.1. The second

(45)

parameter available is to import as an image and it will be created by the importer itself. With an image it is easy to move and scale the final object. The result will be more accurate, however it is not possible to make any secondary changes in the Yooba studio. The third option will ignore the current object in the import.

Each option have their own image which will be displayed in the middle area. The pros and cons will be shown beneath the image. This makes it easier for the user to understand what happens for each choice.

Any potential modification of an object will be temporarily saved by pressing the green button located to the right beneath the image. This will dynamically update the object list to the left, see Figure 5.5. The check box located to the left of the save button, if pressed, will update all similar objects in the list with the selected settings.

5.2

System Support

When the user has finished the import and a new Yooba project has been created, the user will be redirected into Yooba Studio where the chosen PPTX-file has been imported. Examples can be seen in AppendixB.

(46)

This system support section will list the features that the importer do support. Also some of the things that the importer does not support will be mentioned. In Section

7.2.1some future work that would improve the importer will be discussed.

5.2.1 Geometry

The geometry for all imported objects will be correct. This covers translation, rotation and scale. It also includes group edited objects but in some special cases the result will not be accurate. An inaccurate result can be seen in Figure2.3, where a group object has been modified.

5.2.2 Color

OOXML describes colors in six different ways and also with color modifications. The six color description types are:

• Color as red, green and blue in percentage. • Color as hexadecimal, e.g. #FF0000. • Color as hue, saturation, luminance. • Scheme color.

– Refers to the theme color where the color will be described by one of the other five description types.

• Preset color, e.g. black, darkgreen. • System Color.

All of these six color description types are supported by the importer except for preset color.

The supported color modifications, and also the most commonly used modifications are, alpha, tint, shade, luminance modification, luminance offset, saturation modification, saturation offset and hue modification. There might be other modifications describing the colors and in those cases the colors will not be 100% correct, but it will still be accurate.

For colors, in OOXML, there are different kinds of fills. The two supported type are solid fill and gradient fill. In OOXML a solid fill contains a single color and a gradient

(47)

fill will contain a list of colors with corresponding positions. Gradients are supported, but only with two colors since that is what Yooba is supporting.

Two gradient types are supported, linear and radial. Linear is the default type where the first color interpolates into the second color, in a given angle. The radial type describes the first color in the center and then interpolates towards the edges into the second color. For gradient backgrounds with more than two color, the user gets the possibility to import the gradient 100% correct as an image in the customizable view.

5.2.3 Text Object

Text objects are supported by the importer and in most cases the visual appearance will be identical except for the font.

The geometry of the area for the text object will be imported correctly. Translation, rotation and scaling will be taken into account.

OOXML supports a lot of text properties and not all of them are supported in Yooba Studio. The properties that are not supported will be neglected. At the moment the importer supports font color, font size, bold, single underline, italic and horizontal align-ment. The vertical alignment property is not supported in Yooba Studio, which makes all texts with that property anchored at the top of the text area. Different text fonts are presently not supported. All converted texts will have the Arial font in Yooba studio. Different underline styles, such as single, double or dotted are supported by OOXML, but in Yooba only single underline is supported. If the text in PowerPoint have any type of underline the imported text in Yooba will have a single underline.

5.2.4 Shapes and Images

The OOXML supports texts inside a shape which is a feature that is not supported by Yooba Studio. Therefore when a shape contains text the importer will create two objects in the Yooba Studio interface, one shape and one text object.

The supported preset geometries for the importer are presented in Table 5.1. If the preset geometry does not exist in Table5.1, the shape will be neglected. However, if the shape contains text, that text will still be imported.

A rotation error appears for all polygons with even edges larger than (hexagon, octagon, decagon, dodecagon). That is because there are different preset rotation for Yooba and PowerPoint.

(48)

Table 5.1: OOXML preset geometries that are supported by the importer. First row corresponds what shape it will get in Yooba.

Rounded rectangle shape Circle shape Polygon shape

Rectangle Ellipse Triangle

Round Corner Rectangle Connector Flow Shape Diamond

One Snip Corner Rectangle Pentagon

Two Diagonal Snip Corner Rectangle Hexagon

One Round Corner Rectangle Heptagon

Two Diagonal Round Corner Rectangle Octagon

Two Same-side Round Corner Rectangle Decagon

Two Same-side Snip Corner Rectangle Dodecagon

One Snip One Round Corner Rectangle Merge Flow Shape

Line Decision Flow Shape

Straight Connector 1 Extract Flow Shape

Process Flow Shape Preparation Flow Shape

Alternate Process Flow Shape Terminator Flow Shape

Both OOXML and Yooba Studio support border for the shapes and the line color and line size are supported by the importer. Any additional border features will be neglected since it is not supported in the Yooba Studio.

The importer supports reading of images in a presentation, with correct position, rota-tion and size. Yooba Studio does not support any addirota-tional setting for images, such as shadow, reflection and cropping. This leads to the same restriction for the importer.

5.2.5 Theme, Background and Layout

A PresentationML package will contain a theme and different slide layout that will decide the background with colors, images and shapes. This theme background will be imported if the objects are supported, see Section5.2.4.

5.2.6 Graphic

Graphics in PowerPoint corresponds to data visualization, e.g. tables, diagrams and smartart. Right now only tables are supported by the importer, the rest will not be imported at all.

Tables can be imported in three different ways: as an image, as text and shape object or not at all, depending on what the user wants. In OOXML, tables may have visual features such as first row where the background color and the font style of the first row might be different from the rest of the table. The importer is supporting the following preset table features:

(49)

• First and last row • First and last column • Band row/column

– Every other row/column have different visual settings

5.2.7 List

Lists per se are not supported in Yooba Studio at all. When importing a list a text object will be created, and all items in the list will be on different rows with tabs corresponding to its level in the list. Two major types of lists will be supported in this way, bullet and numbering lists.

A numbering list can have three different appearances, arabic (1,2,3,4 ), roman (I,II,III, IV ) or alphabetic (A,B,C,D). Also two other list modifications are supported by both OOXML and the importer. Both upper and lower case numbering are supported, and both period and parenthesis are supported as the end part of each numbering item, see Table5.2.

Table 5.2: List modification supported by importer, alphabetic list style used.

Upper Case Lower Case

A. List text a. List text

Period B. List text b. List text

C. List text c. List text (A List text (a List text Parenthesis Left (B List text (b List text (C List text (c List text A) List text a) List text Parenthesis Right B) List text b) List text C) List text c) List text (A) List text (a) List text Parenthesis Both (B) List text (b) List text (C) List text (c) List text

References

Related documents

In order for LU Innovation to manage the whole process they have gathered various skills from diverse backgrounds, including a patent engineer to help with the patenting and

Det kan även anmärkas att förhörsledarens i tingsrätten lämnade uppgifter inte ter sig särskilt trovärdiga vid en jämförelse mellan uppgifterna och de av honom själv

They may appeal primarily to EU law lawyers, but they may very well be of immediate interest for anyone interested in sports law and governance of professional sports, for

Gratis läromedel från KlassKlur – KlassKlur.weebly.com – Kolla in vår hemsida för fler gratis läromedel –

This will be a short english test to test how good you are at finding errors like grammar errors and spelling errors in an english text.. Remember to look closely and write

In light of the evaluation made by the National Agency for Higher Education in Sweden concerning education in the field of business and economics given at Swedish universities and

5 Eftersom jag inte kan hålla mig ifrån essästilen, kan jag heller inte hålla mig ifrån att skoja med lite klumpigt språk för att det konstnärliga (lusten till subtil humor)

46 Konkreta exempel skulle kunna vara främjandeinsatser för affärsänglar/affärsängelnätverk, skapa arenor där aktörer från utbuds- och efterfrågesidan kan mötas eller