Contents |
This document describes the software architecture of the Office Tools subsystem in Meego. The document scope is to provide information on how the subsystem works.. Office Tools provides users rendering and browsing capabilities of most of the common office document formats. The subsystem uses libraries from two open source projects, Poppler and Calligra, to accomplish this.
Office Tools draws representations of files to user interface (UI).
Supported file formats include open document formats (ODF), portable document format (PDF) and Microsoft office file formats (2000/2003 doc, ppt, xls. 2007 docx, pptx, xlsx)
Office Tools operates on top of middleware and base layers. It depends on various subsystems shown in the figure below. The interfaces used provide either generic platform functionalities or rendering capabilities to be used with different file formats.The system context can be seen in figure 1.
Office tools system context
Figure 1: System context
| Interface name | Interface type | Interface scope | Interface state | Required credentials | Description |
|---|---|---|---|---|---|
| office-service | Service framework | Platform API | | | This interface enables opening a file in office tools |
Table 1
Interfaces provided by Office tools subsystem can be seen above in table 1.
The following table (table 2) lists interfaces required by this subsystem.
| Domain/subsystem | Interface name | Interface scope | Description |
|---|---|---|---|
| Qt | Qt libraries | | Qt provides generic platform functionalities. |
| Content FW | libqttracker, libgsf-1, libpoppler-qt4.3 | | Tracker is used to index different office files and to query their metadata information.Gsf provides compression capabilities. Poppler is used to render PDF files. |
| X11 | libsm | | Session management library needed by KApplication. Needed during compile time only, ui is MApplication. |
| GNOME Essentials | libxml2 | | Xml library. |
| Base Essentials | zlibg1 | | Compression library. |
Table 2: Required interfaces
The following image (figure 2) illustrates the inner structure of Office Tools subsystem. The figure shows the main components, how they are linked together and how they use other subsystems.
See figure below.
Figure 2: Structural view
Libkok
Library based on kdelibs. This library is heavily stubbed version of kdelibs, specially tailored to fit the needs of KOffice.
KOfficeMeego
Libraries & plugins for rendering open office document file formats. Internally it can convert Microsoft file formats to open
document file formats.
Behaviour
- Office Tools subsystem does not include any daemons or have impact on boot time. - There are two ways to start the subsystem, either from the main manu or through service framework. - In case a document is loaded, the subsystem uses the approriate backend to render it.
There are two main use cases for Office.
1. User opens any PDF file
-> UI gives the file to poppler which paints it to QImage which is shown to the user.
2. User opens any other supported format
-> UI gives the file to KOffice, KOffice recognizes the file, loads approriate plugins to draw it, and paints the result to given
QGraphicsView. The result is shown to the user.
Start up
- The application startup time should be 1 second or less in case it is loaded from the main menu. - If the application is launched through service framework, the application first starts normally with similar start up time as in normal case. After this a progress indicator is shown if necessary and the documented pointed by the launch call will be loaded. The time to load the document depends heavily on the document type, content and size.
The table below (table 3) contains measured launch times for different example documents.
| Type of the document | Reading 1 (s) | Reading 2 (s) | Reading 3 (s) | Average (s) | Size of the document |
| PDF | 9.9 | 9.3 | 9.2 | 9.47 | 2.2 MB |
| PDF | 5.9 | 5.8 | 5.8 | 5.83 | 374.4 KB |
| PDF | 6.2 | 7 | 7.2 | 6.8 | 16.5 KB |
| PDF | 5.6 | 5.3 | 5.7 | 5.53 | 18.9 KB |
| XLS | 9.2 | 9 | 9 | 9.07 | 13.5 KB |
| XLS | 9.5 | 9.3 | 9.4 | 9.4 | 26.0 KB |
| PPT | 13.3 | 13.1 | 13.2 | 13.2 | 1.2 MB |
| DOC | 8.5 | 8.4 | 8.7 | 8.53 | 105.0 KB |
| DOCX | 8.4 | 8.4 | 8.4 | 8.4 | 11.7 KB |
| ODP | 11.8 | 12.4 | 12 | 12.07 | 1.6 MB |
| ODP | 7.2 | 7 | 7.1 | 7.1 | 619.8 KB |
| ODT | 7.3 | 7.2 | 6.8 | 7.1 | 385 KB |
| ODT | 8.2 | 8.1 | 8.2 | 8.17 | 30.8 KB |
Table 3: Loading times
The subsystem does not store any data which needs backup.
It is possible to use SDK for developing and testing this system.