asp.net pdf viewer component : View pdf thumbnails in software SDK cloud windows winforms asp.net class HTML5_QML_Comparison_redist2-part1329

1.1 Maemo
1.1.2.2 GStreamer
GStreamer is used as the media handling library on Maemo. GStreamer itself is a library
which allows a developer to ‘create a graph of media handling components’ [9]. This means
that a developer can use several building blocks to create a multimedia application.
An extremely simple example of this is as follows:
gst-launch filesrc location=music.mp3 ! decodebin ! pulsesink
In this example the gst-launch utility is launched. This utility loads a le from location
music.mp3 and sends it to the decodebin. The decodebin decodes the le by automatically
selecting the correct codec. The output of this decoding is then sent to the pulsesink. The
pulsesink integrates with the Pulseaudio playback framework which will cause the audio to
be sent to the selected output (either the speakers or the headphone plug) [40].
1.1.2.3 GTK+
GTK+ (The GIMP ToolKit) is a toolkit providing similar functionality to Qt. GTK+ was
rst developed for GIMP (GNU Image Manipulation Program). Over time GTK+ has
developed to a toolkit which is used by a large number of applications and is the main
component of the GNOME open-source desktop [39]. Known applications and solutions
which are based on GTK+ include Mozilla FireFox and the OpenMoko phone interface. All
Maemo interfaces up to Maemo 5 are written using GTK+.
1.1.2.4 Hildon
Hildon is a set of widgets based on GTK+. These widgets were developed to be more
nger-friendly than normal GTK+ widgets. The interfaces of Maemo up to and including
Maemo 5 were developed using Hildon.
Figure 1.2: Maemo 5 Interface - Screenshots of the Maemo 5 interface, displaying the
desktop, multi-tasking view and browser. These applications where created using Hildon.
3
View pdf thumbnails in - software SDK cloud:C# PDF Thumbnail Create SDK: Draw thumbnail images for PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
View pdf thumbnails in - software SDK cloud:VB.NET PDF Thumbnail Create SDK: Draw thumbnail images for PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support Thumbnail Generation with Various Options for Quick PDF Navigation
www.rasteredge.com
1. MOBILE
1.1.2.5 MAFW
MAFW stands for Multimedia Application Framework and is a high-level plugin framework
which eases integration of multimedia features like playlists and web services. Because
MAFW is a plugin framework it is independent of underlying multimedia frameworks like
GStreamer (see above). MAFW provides API for two kinds of plugins: Sources and Ren-
derers. A Source plugin allows for content gathering, an example is a last.fm plugin. A
Renderer plugin provides extended playback functionality (For example allowing a Maemo
device to be a UPnP-server [42]).
1.1.2.6 OpenGL ES
OpenGL ES is an abbreviation for OpenGL for Embedded Systems. OpenGL ES is a subset
of desktop OpenGL optimized for mobile device usage. OpenGL is a 3D Graphics API which
enables hardware accelerated 3D rendering. There exist several versions of OpenGL ES.
Version 1.x provides xed-function pipeline API where all OpenGL coordinate transforma-
tions are done against a xed matrix. Version 2.x replaces this xed-function pipeline by a
programmable-pipeline [6]. This allows developers to manipulate pixels and vertices after
they have been put in the pipeline.
1.1.2.7 Qt
Qt is a cross-platform application development toolkit developed by QDF. Within Maemo,
Qt will change from a community-supported toolkit to the ocially supported platform
toolkit with the change from Maemo 5 to Maemo 6 [28]. More about Qt can be found in
section 2.1.
1.1.2.8 Telepathy
Telepathy is the library that provides instant messaging and VoIP possible on the Maemo
platform. Telepathy is a plugin architecture focussed on real-time communication that lets
applications share information about communcation availability. You could for instance
create a messaging application that logs in to Windows Live Messenger. If you have a word
processor that also communicates with the Telepathy framework then the word processor
would ‘know’ about the availability of your Messenger contacts [7].
1.2 Requirements
Being a mobile phone there are certain requirements to be met. As indicated in fure 1.3,
[35] and [43] must-haves do not contribute to a positive consumer satisfaction per se, but
they can cause dissatisfaction. Must-haves are certainly the most important part for mobile
phone usage as indicated in [43]. These must-haves in a mobile phone mean that the user
should have easy access to his contacts, messages, media and that he should be able to use
simple applications such as a stopwatch and calculator.
Performance and exciting new features however have a prominent role in causing consumer
4
software SDK cloud:C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Ability to show PDF page thumbnails for quick navigation. Easy to search PDF text in whole PDF document. C# HTML5 PDF Viewer: View PDF Online.
www.rasteredge.com
software SDK cloud:VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Ability to show PDF page thumbnails for quick navigation. Easy to search PDF text in whole PDF document. VB.NET HTML5 PDF Viewer: View PDF Online.
www.rasteredge.com
1.3 Conclusion
satisfaction. When the performance of the device is lower than expected this will lead to
greatly deteriorated consumer satisfaction. Exciting new features cannot cause dissatisfac-
tion, but they acount for a big amount in consumer satisfaction.
satisfied
dissatisfied
Need
well fulfilled
Need
not fulfilled
indifference
Excitement
Performance
Basic
Figure 1.3: The Kano model - The gure shows the Kano model of consumer preferences.
Adapted from [35]. The image visualizes the eect of features on consumer satisfaction and
consumer needs.
1.3 Conclusion
Based on the platform capabilities and the requirements I will focus on simple must-have
applications like a contacts, messaging and multimedia player application. The basic facili-
ties for creating these applications are there. The research from [43] states that these basic
tasks are the most important for a user group.
Another advantage of building these simple applications is that for the sake of this thesis
there is no need of conceptualizing something new.
5
software SDK cloud:VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
Easy to search PDF text in whole PDF document in VB.NET WPF program. PDF thumbnails for navigation in .NET project. VB.NET WPF PDF Viewer: View PDF Document.
www.rasteredge.com
software SDK cloud:C# WPF PDF Viewer SDK to view PDF document in C#.NET
Users can view any page by using view page button. Easy to search PDF text in whole PDF document. PDF thumbnails for navigation in .NET WPF Console application.
www.rasteredge.com
software SDK cloud:C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
Support of converting from any single one PDF page and multiple pages. Thumbnails can be created from PDF pages. Support for customizing image size.
www.rasteredge.com
software SDK cloud:VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Reduce image resources: Since images are usually or large size, images size reducing can help to reduce PDF file size effectively. Embedded page thumbnails.
www.rasteredge.com
2
Technologies
2.1 Qt
This section contains background information about the Qt toolkit. Qt is a C
++
application
development toolkit written in C++ enabling developers to ‘code less, create more, deploy
everywhere’ [24]. Qt contains several modules tailoring to developer needs. More about
Qt modules can be found in subsection 2.1.2. During this project several parts of the Qt
toolkit will be used.
2.1.1 History of Qt
In fteen years time Qt has grown from a tookit used by a few people to a product used
by millions of people daily [16].
The history of Qt started in 1988 when one of the two original Qt developers (Havard
Nord and Eirik Chambe-Eng) needed to make a GUI (Graphical User Interface) framework.
In 1990 Havard and Eirik met to create a database application that needed to run on
the Macintosh, Windows and UNIX operating systems. This application caused the two
developers to think about making a full- edged C++ GUI toolkit.
In 1993 the idea of the ‘Signal-Slot mechanism’ was devised and over the next two years
the basis of Qt was laid. The name Qt was chosen because the letter Q looked nice in the
font used by one of the developers and the t stands for toolkit.
In 1995 the two developers got their rst customer and hired a third person. The coming
ten months they would not get any other customer and relied on this rst customer to
provide income. Then nally in March 1996 the European Space Agency (ESA) became
the second customer to use Qt.
In September of 1996 Qt version 1.0 was released. By now Trolltech (as the company was
called at the time) had eight customers with a combined total of eighteen licenses. In 1996
the KDE project was also founded. The KDE project develops a Cross-Platform Desktop
Environment. This desktop environment caused the Linux community to embrace Qt
Qt 2.0 was released in 1999 with a new Open-Source license called the Qt Public License
(QPL). The following year Qt Embedded was released which led to a re-licensing of Qt
7
software SDK cloud:C# PDF File Compress Library: Compress reduce PDF size in C#.net
by large enterprises and organizations to distribute and view documents. size, images size reducing can help to reduce PDF file size Embedded page thumbnails.
www.rasteredge.com
software SDK cloud:C# PDF Convert to Images SDK: Convert PDF to png, gif images in C#
Converter control easy to create thumbnails from PDF pages. Selection for compressing to multiple image formats. Cut and paste any areas in PDF pages to images.
www.rasteredge.com
2. TECHNOLOGIES
under the GNU General Public License (GPL).
In 2001 Qt 3.0 was released. Qt 3.0 was a huge step forward over Qt 2. Qt now contained
over half a million lines of code and contained 42 new classes over Qt 2. Qt 3 did not
provide support for embedded development.
In 2005 Qt 4 was launched which is the version that is still in development today. Qt 4
gained a new modular approach to application development, and added renewed support
for embedded platforms. More about the Qt 4 modules in section 2.1.2.
Current well known solutions using Qt 4 are KDE, Google Earth, Autodesk Maya and Skype.
2.1.2 Qt 4 Features
Qt 4 has brought an enormous amount of improvements over Qt 3. Notably the split into
several modules [26] [25]. Currently the following modules exist:
 QtCore - Themain Qt module. This module contains all basicclasses in Qt. Examples
are QCoreApplication, QList and QString.
 QtDeclarative - The module containing classes for use with the Qt Declarative Markup
Language (QML). The features provided by this module will be used in this project.
QtDeclarative is a new module, rst included in Qt 4.7.
 QtGui - The QtGui module contains classes for creating GUI applications. Classes
for using the Graphicsview framework, QWidgets, toolbars, etc. can be found in this
module.
 QtMultimedia - QtMultimedia is a module introduced with Qt 4.6. This module gives
the developer low-level access to the multimedia hardware in a device.
 QtNetwork - QtNetwork makes it possible to create networked applications like web
servers and clients.
 QtOpenGL - The module containing convenience API for developing OpenGL appli-
cations. There is a QGLWidget class that provides the developer with a surface to
use for OpenGL rendering.
 QtSql - QtSql is a bridge for using database systems. There exist several database
plugins for QtSql: MySQL, PostgreSQL, SQLite and others.
 QtSvg - Module that allows the loading of SVG vector graphics images.
 QtTest - The QtTest module is a convenience library to write unittests for a Qt
application.
 QtWebKit - Module containing the Qt version of the WebKit web browser engine.
 QtXml - XML handling module. Makes parsing and editing XML documents possible.
 Phonon - High-level multimedia handling module. This module uses plugins called
backends to play multimedia content. There are several backends including: Direct-
Show, Quicktime and GStreamer.
 Qt3Support - Convenience module for developers porting their applications from Qt
3to Qt 4.
During the lifetime of Qt 4 several new important technologies have been added [27]. These
include:
 The Graphicsview framework - This framework provides somethingsimilar toa painters’
canvas where the developer can lay-out images and text.
8
2.2 HTML
 SVG export
 Phonon
 WebKit support
 Gestures support
 QML (Qt Declarative Markup Language)
2.2 HTML
HTML stands for HyperText Markup Language and is one of the technologies used in
the comparison carried out during this project. Firstly the background of HTML will be
explained, followed by important features and the usage of Cascading Style Sheets (CSS).
2.2.1 History of HTML
HTML is a continuation of Hypertext. A concept coined in 1965 by Ted Nelson [14]. There
has been a lot of Hypertext development before that. In 1945 a proposal was made for a
device that allowed a reader to go through ‘linked’ texts on microlm: the Memex [18].
Over the next decades Hypertext would be developed and used further, the main goals
being extending human intellect and creating linked documents [23].
Another important development of the time was the start of the ARPANET network. This
would become the predecessor to the internet as we know it today [3]. This network would
be used to send the rst email messages.
In 1991 Tim Berners-Lee wrote a document specifying the rst 20 HTML tags and con-
tributed this document to a mailinglist [13][12]. This started the development of the HTML
markup language. In 1995 HTML 2 was released which added ocial support for tables
and image maps. HTML 3.2 was released in January 1997. HTML 3.2 tried to remove
overlap between dierent proprietary HTML tags. HTML 4.0, released in December 1997,
contained three variations (strict, transitional and frameset). In December 1999 HTML
4.01 was released with minor edits over HTML 4.0. HTML 4.01 is the most recent released
HTML version.
HTML 5 will be the next HTML version. Currently HTML 5 is a working draft started in
January 2008. HTML 5 is the HTML version used in this project.
2.2.2 Basic structure
HTML consists of tags. A tag denes an element, which can be a link, image, movie, etc.
Each element starts with a start-tag and most elements end with an end-tag. Each tag
starts with a less than-sign (<) and end with a greater-than sign (>). An end-tag diers
from a start-tag in that it has a forward slash (/) after the less-than sign. Some tags can
be closed immediately, like the <br /> tag which is used for a linebreak. Here the forward
slash is at the end of the tag to signify that the tag is being closed immediately.
Let’s start with a simple example of HTML code.
<b>Hello</b>
9
2. TECHNOLOGIES
The <b>-tag is used to dene a section of text that should be printed in a bold font.
Therefore Hello would be displayed.
Each HTML document has a standard structure which can be extended.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document title</title>
</head>
<body>
<p>Contents of the first paragraph.</p>
</body>
</html>
The <!DOCTYPE>-tag is used to specify the schema of the document. In this case the
document identies itself as a HTML document.
The <html> and </html> tags are used to specify which part of the document is HTML
code. Text outside of the <html> and </html> is treated as plain-text.
In the head section of the document the title, meta information and external script sources
should be specied. In this example the document uses UTF-8 encoding and it’s title is
‘Document title’. This title is displayed as window or tab title in the browser.
The body of the document contains all data that should be presented to the user of the
webpage. Paragraphs within the body are separated by <p> and </p>-tags.
An important aspect of Hypertext is the linking of external sources. In HTML 5 this can
be done with several tags, depending on the content:
 <a> - for linking to another (part of a) document.
 <audio> - for audio les.
 <embed> - for embedding content that should be loaded through a plug-in, like
Flash content or a Java applet.
 <img> - for images.
 <link> - for linking external page resources. This tag is mostly used for linking style
sheets.
 <video> - for video les.
2.2.3 Cascading Style Sheets
Cascading Style Sheets (CSS) are used to specify styling hints for markup languages like
HTML [17]. CSS was designed to separate document content (which is in the HTML le)
from document presentation. This separation makes it easier to read the HTML-le and
makes it possible for separate pages to use the same styling without repeating the styling
information.
ACascading Style Sheet has to be added to HTML les using the <link>-tag.
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
10
2.3 QML
The href property species the location of the CSS le. The rel-property species the usage
of this link, which should always be set to ‘stylesheet’ for loading a stylesheet. Similarly the
type-property should always be set to the ‘text/css’-mime-type.
CSS consists of selectors, classes and ID’s [29]. Any HTML element is a selector by default.
In a CSS-le the names of the standard HTML elements are used without a prex. A simple
way toget thepage background to be red would be by setting the background-color property
of the body element to red. In CSS this looks like this:
body { background-color: red d }
ID’s and classes are special selectors. An ID is used to specify a unique object within the
HTML DOM tree, for instance a sidebar. ID’s are prexed by a hash (#) character.
#sidebar { font-familysans-serif }
In this example the font of the element with ‘sidebar’ as its id property will be sans-serif.
Classes are used for common elements, for example a class called ‘comment’ would be
applied to all comments in the page. Class selectors are prexed by a dot (.) character.
.comment { font-size: small }
In this example the font size of all elements with ‘comment’ as their class property will be
small.
2.3 QML
QML stands for Qt declarative Markup Language. QML is the second technology used
in the comparison carried out during this project. Firstly there is a subsection about the
history of QML followed by a basic technology overview.
2.3.1 History of QML
Development of the framework behind QML has started somewhere near the end of 2007,
start of 2008 [31]. At that time there was a demand for highly animated GUIs which could
not be done in Qt at the time. This new project was called \Qt Kinetic" and it’s goal was
to enable developers to easily create highly animated GUIs without the need to manage
complex data structures which are inherent to complex animated GUIs.
At this time QML was still a language similar to HTML and XML in that it used XML
to describe objects [31]. Over the next few months the Qt Animation framework was
implemented along with a state machine [30][32].
In May 2009 QML had changed to a dierent syntax [38], the syntax now looked less like
XML and more like JSON (JavaScript Object Notation). At the same time the Anchor
Layout was also in development [37]. In January 2010 support for QML was integrated in
the Qt IDE.
11
2. TECHNOLOGIES
2.3.2 Basic structure
QML is an interpreted language where a runtime engine parses the content of the QML
les, which in turn generates Qt C++ QML elements. Several standard QML elements are
shipped with Qt, like the Rectangle, TextEdit, multimedia elements and elements to handle
animations.
As stated above QML has a syntax similar to JSON. QML code to create a rectangle that
which 100 by 100 pixels big and placed at the 0,0 position one would look as follows:
Rectangle
{
width: 100
height: 100
}
The name of a QML element always starts with a capital letter. The contents of the element
are enclosed in curly braces. Note the usage of the colon in the property denition. This
colon indicates the creation of a property binding rather than a property declaration. What
this means is best demonstrated using an example.
Rectangle
{
id: firstRectangle
width: 100
}
Rectangle
{
id: secondRectangle
width: firstRectangle.width
}
If the width of rstRectangle was now to change the width of secondRectangle would also
change automatically. This binding of properties is one of QML’s most important features.
CustomC++ QML elements can bedevelopedby usinga macroanda template function.
#define QML_DECLARE_TYPE(T)
template<typename T>
int qmlRegisterType(const char *uri, int versionMajor,
int versionMinor, const char *qmlName)
Type T is the class name of the class that should be available from QML. The qmlRegis-
terType template adds the QML type to the pool of available elements. This new custom
element can now be used from a QML le by using the name dened as qmlName in the
qmlRegisterType(...) macro.
The prefered method to develop custom QML elements through C++ is by using a QDeclar-
ativeExtensionPlugin. This plugin can be loaded by the ’qml’ runtime application shipped
with Qt and allows the elements which are dened within this plugin to be used in QML
applications. A minimal QDeclarativeExtensionPlugin class looks as follows:
12
Documents you may be interested
Documents you may be interested