c# axacropdf example : Extract data out of pdf file software Library project winforms asp.net windows UWP HTML5_QML_Comparison_redist4-part1112

3.2 Functional comparison
is used. The example where the rectangle is moved when it is clicked can also be developed
using states. A big dierence however is that when using a behaviour or property animation
the animation is done again when the rectangle is clicked again. When using states the
object can only move once to go to the new state.
Rectangle
{
color: "black"
height: 150
id: rectangle
width: 150
states: [
State {
name: "moved"
PropertyChanges {
target: rectangle
x: 50
}
}
]
transitions: [
Transition {
NumberAnimation { properties: "x"; duration: 200 }
}
]
MouseArea
{
anchors.fill: rectangle
onClicked:
{
rectangle.state = "moved"
}
}
}
Animations can also be used in sequence or parallel and a combination of those, for instance
to run parallel animations in sequence.
QtWebKit supports two types of animations: transitions and keyframe animations. Ani-
mations are not an ocial part of the HTML5 specication yet, this means that for now
WebKit specic commands need to be used. All animations in WebKit are style options
described through CSS3.
CSS3 transitions specify how an HTML object will change from its previous state to the
new state. These transitions are applied for every modication that is done, no matter how
big the change in the animated property is. An example to fade out a div using an opacity
transition:
<body>
<style type="text/css">
div
{
border-style: solid;
border-width3px;
23
Extract data out of pdf file - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
c# read pdf form fields; exporting pdf data to excel
Extract data out of pdf file - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
extracting data from pdf forms; fill in pdf form reader
3. COMPARISON
opacity1;
-webkit-transition: opacity 1s linear;
}
div:hover
{
opacity0;
}
</style>
<div>&nbsp;</div>
</body>
In this example the opacity changes from 1 to 0 in one second, where the duration is not
related to the change of the property. This means that if the developer changes the new
opacity to be 0.5 instead of 1, the transition will still take one second, eectively doubling
the animation time. This transition uses the linear transition type, WebKit CSS3 contains
six transition types: ease, linear, ease-in, ease-out, ease-in-out and cubic-bezier. Cubic-
bezier allows the developer to dene two points that will be interpolated to a curve that
should be used for the animation.
The keyframe animation type in WebKit is used to describe xed animation. A keyframe
animation can have from and to properties for a plain start and ending animation, or
percentages to describe the sub-steps within the animation. When the percentage approach
is used it is possible to create a sequential animation:
<body>
<style type="text/css">
@-webkit-keyframes moveandfade
{
0%
{
margin-left0;
opacity1;
}
33%
{
margin-left15px;
opacity0.5;
}
67%
{
margin-left70px;
opacity1;
}
100%
{
margin-left100px;
opacity0.5;
}
}
div
{
border-style: solid;
border-width3px;
opacity1;
}
div:hover
24
C# PDF Text Extract Library: extract text content from PDF file in
class. Able to extract and get all and partial text content from PDF file. Ability to extract highlighted text out of PDF document.
extract data from pdf table; export pdf form data to excel spreadsheet
VB.NET PDF Text Extract Library: extract text content from PDF
NET Programming. Extract and get partial and all text content from PDF file. Extract highlighted text out of PDF document. Image text
extract data from pdf forms; extracting data from pdf to excel
3.2 Functional comparison
{
-webkit-animation: ’moveandfade’ 2s;
}
</style>
<div style="width: 100px">&nbsp;</div>
</body>
In this example the div will move from 0 to 100 on the x-axis while fading in and out.
3.2.2 Code reuseability
Code reusability in HTML is achieved through JavaScript and CSS. The style and code
are split out between a CSS and a JavaScript le. Let’s demonstrate this by developing a
button which calls a function upon being clicked and has its text centered horizontally and
vertically with top and bottom margins which are 3 pixels big and left and right margins
which are 10 pixels big. To achieve this the CSS le species the margins around the
text:
.button
{
padding3px 10px/* top p and d bottom m 3px, left t and d right 10px */
}
And the JavaScript le combines this styling information with an onclick handler and the
actual text.
function Button(text, functionToCall)
{
document.write("<div class=\’button\’ onclick=’" +
functionToCall + "’>" + text + "</div>");
}
Note that the JavaScript code uses a class from the CSS le, but does not actually ‘know’
the contents of this le. The HTML page itself should include both the CSS and JavaScript
code and handle accordingly. This is made visible in the following example where the
JavaScript Button function is used to insert a div which has ‘button’ set as its class
property.
<head>
<link href="button.css" rel="stylesheet" type="text/css"></link>
<script src="button.js" type="text/javascript"></script>
</head>
<body>
<script type="text/javascript">
Button(’Test’’otherFunction()’);
</script>
</body>
All HTML pages that want to use the JavaScript Button need to duplicate the two lines
contained within the head section as displayed in listing.
QML is an object-oriented markup language which makes it easy to reuse existing code.
25
C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert VB.NET convert PDF to text, VB.NET extract PDF pages, VB Support to zoom in and zoom out PDF page
extract data from pdf c#; extract data from pdf
VB.NET PDF- View PDF Online with VB.NET HTML5 PDF Viewer
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert file & pages edit, C#.NET PDF pages extract, copy, paste Support to zoom in and zoom out PDF page
how to make a pdf form fillable in reader; flatten pdf form in reader
3. COMPARISON
Each code block that should be reusable should be dened as a QML-Component.
An example using a Button component follows. In this Button component QML bindings
are used to simplify keeping track of the size of the component. Whenever the ‘text’
property on the Button component is set it is automatically drawn in the buttonText Text
component which automatically resizes the container Rectangle. The look and feel of this
QML button are the same as in the HTML example above.
Rectangle
{
id: container
signal clicked
property string text
width: buttonText.width + 20
height: buttonText.height + 6
MouseArea
{
anchors.fill: parent
onClicked: container.clicked()
}
Text
{
anchors.centerIn: container
id: buttonText
text: container.text
}
}
This component can now be used when the component is dened both in the ‘qmldir’ le
in the directory containing the component denition and in an import statement in the
QML-le using the component, where the current directory is automatically imported.
Button
{
text: "Button"
onClicked:
{
otherFunction()
}
}
3.2.3 Context Switching
The main menu application is usedtoswitch between contexts. Theuser will leave the menu
context and go to either the contacts of media player contexts. This function is especially
important in games. In an ordinary game there is a loading screen before entering the game.
At the moment the loading screen disappears there is a context switch from the loading
context to the gaming context.
In QML the Loader-element is used to switch contexts. The Loader-element allows the
developer to load QML code from other les. Loading code through the Loader-element
26
C# PDF Form Data fill-in Library: auto fill-in PDF form data in C#
Able to fill out all PDF form field in C# RasterEdge XDoc.PDF SDK package provides PDF field processing features for will learn how to fill-in field data to PDF
extract data from pdf form fields; pdf form save in reader
C# WPF PDF Viewer SDK to view PDF document in C#.NET
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert & pages edit, C#.NET PDF pages extract, copy, paste, C# Abilities to zoom in and zoom out PDF page
export excel to pdf form; how to fill in a pdf form in reader
3.2 Functional comparison
however appends the content of the loaded data to the current le. It does not replace
the current context. The easiest way to overcome this problem is by specifying a top-level
QML-le which only contains a loader and putting each context in a separate le. To
achieve this behavior the developer has to do the following:
//Menu.qml
Loader
{
source: "Contents.qml"
}
//Contents.qml
Item
{
Text
{
text: "Other file."
MouseArea
{
anchors.fill: parent
onClicked:
{
root.source = "Other.qml"
}
}
}
}
The context of the application will now be changed to \Other.qml" when the user clicks
anywhere in the application.
QML does not provide a built-in solution to return to previous contexts. The developer has
to implement this functionality.
Context switching is the basis of Hypertext, which should mean that it is particularly easy
to switch contexts in HTML. Context switching in HTML takes one line of code:
<a href="other.html">Other file.</a>
When this link is clicked the previous context is completely replaced and cannot be refer-
enced anymore. Extra content can be appended to the link to be able to cache some data
from the previous context.
All links in an anchor tag are hardcoded, to create dynamic links the developer has to use
JavaScript to replace the content of the href property of the link. In HTML it is dicult to
return to previous contexts. One way to circumvent this is by using the built-in JavaScript
history.go() function. There is no guarantee however that the user will end up at the correct
page.
Because the previous context is deleted and a new one is created it is hard to animate the
changes between contexts. One would then have to animate the new context directly while
it is being loaded. HTML does not specify exactly when content should be displayed, which
means that unwanted behavior can occur.
27
VB.NET PDF - View PDF with WPF PDF Viewer for VB.NET
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert & pages edit, C#.NET PDF pages extract, copy, paste, C# Abilities to zoom in and zoom out PDF page
saving pdf forms in acrobat reader; how to extract data from pdf to excel
VB.NET PDF- HTML5 PDF Viewer for VB.NET Project
Extract Field Data. Data: Auto Fill-in Field Data. Field: Insert VB.NET convert PDF to text, VB.NET extract PDF pages, VB PDF page and zoom in or zoom out PDF page
make pdf form editable in reader; extract pdf form data to excel
3. COMPARISON
3.2.4 Font support
QML and QtWebKit both automatically support the fonts which are installed on the users
system. Both technologies also support loading additional fonts.
QtWebKit supports loading additional fonts through CSS. The @font-face CSS3 rule has
to be used to load these custom fonts.
@font-face
{
font-family’Nokia Sans’;
src: url(’Nokia_Sans.ttf’);
}
The Nokia
Sans.ttf font can now be used as any font in CSS. The developer has to use the
name used in the font-family property of the @font-face rule.
h1
{
font-family"Nokia Sans";
}
Loading additional fonts in QML is possible through the FontLoader element.
FontLoader
{
id: nokiaFont
source: "Nokia_Sans.ttf"
}
FontLoader
{
id: webFont
source: "http://www.princexml.com/fonts/steffmann/Starburst.ttf"
}
The FontLoader element loads the font from a source, which can be either a local le or a
network resource which will be downloaded automatically.
The special fonts can now be used by setting the font-family of a QML element containing
text to the name of the loaded font.
Text
{
font-family: nokiaFont.name /* or "Nokia Sans" */
}
3.2.5 Media playback
Media playback functionality between QtWebKit and QML is almost the same even though
QtWebKit uses Phonon and QML uses the QtMobility frameworks to play back media con-
tent. These frameworks give access to all codecs which are installed on the user system.
HTML5 allows a developer to use the browser default media controls by specifying con-
trols="true" on an audio or video element. Controls can also be developed using JavaScript
28
VB.NET PDF - WPF PDF Viewer for VB.NET Program
Field Data. Data: Auto Fill-in Field Data. Field: Insert & pages edit, C#.NET PDF pages extract, copy, paste rotate PDF pages, zoom in or zoom out PDF pages and go
can reader edit pdf forms; pdf form field recognition
VB.NET PDF File & Page Process Library SDK for vb.net, ASP.NET
Moreover, when you get a PDF document which is out of order, you need to adding a page into PDF document, deleting unnecessary page from PDF file and changing
extracting data from pdf forms to excel; how to save editable pdf form in reader
3.2 Functional comparison
and CSS.
QML does not contain default controls for multimedia elements. QML does add a SoundEf-
fect element, which is a low-level implementation usable for short sounds. The SoundEect
element is based on QSound, which depending on the platform, enables functionality to use
only WAVE les or also give functionality to use other codecs.
3.2.6 Object placement
Object placement is about getting the content at the position where the designer wants the
content to be. Lets explain how all of this works by using a simple example layout which
will be used in this subsection:
Figure 3.11: Simple table-style layout - A simple example of what an application layout can
look like.
This layout contains two rows and elements with are double-height an double-width.
QML provides three dierent layouting options: relative to parent, positioners and anchor
layout. All QML elements are automatically layout relative to their parents. Lets take the
following example:
Rectangle
{
color: "red"
id: redRectangle
height: 100
width: 100
x: 100
y: 0
Rectangle
{
color: "green"
height: 100
width: 100
x: 100
y: 0
}
}
Rectangle
{
color: "blue"
height: 100
width: 100
x: 200
y: redRectangle.height + redRectangle.y
}
29
3. COMPARISON
This example will be rendered as seen in gure 3.12. Notice how the green rectangle
is positioned at (200,0). This is because of the relative layouting to its parent (the red
rectangle). The blue rectangle is position vertically using QML property bindings. These
bindings will make sure that when either or both the height and y-position of the red
rectangle change, the position of the blue rectangle will be updated automatically.
0
0
100
200
300
400
100
200
Figure 3.12: QML layout - An example of a QML layout. This will be rendered without the
dashed lines
Positioners are used to layout QML Elements in columns, rows, a grid or a ‘ ow’. Columns
and rows speak for themselves, the grid places elements in a grid. This grid does not
however contain functionality which allows elements to have a width or height that span
multiple rows or columns. The ‘Flow’ positioner aligns elements side by side while wrapping
as necessary. The layout displayed in 3.12 cannot be developed using positioners.
The QML anchorlayout can also be used to develop the layout displayed in gure 3.12:
Rectangle
{
color: "red"
id: redRectangle
height: 100
width: 100
x: 100
y: 0
}
Rectangle
{
anchors.left: redRectangle.right
anchors.verticalCenter: redRectangle.verticalCenter
color: "green"
height: 100
width: 100
}
Rectangle
{
anchors.left: redRectangle.right
anchors.top: redRectangle.bottom
color: "blue"
height: 100
width: 100
}
30
3.2 Functional comparison
The left of the green rectangle will always be aligned to the right of the red rectangle and
the green rectangle will always be vertically centered with the red rectangle, so if the height
of the red rectangle increases the green rectangle will move down. The blue rectangle is
also aligned to the right of the red rectangle and to the bottom of the red rectangle. These
concepts can also be applied to develop the table layout in gure 3.11. The QML code for
this layout which is completely scalable can be found in appendix F. Note that half of the
border width is on the inside of the element and half on the outside, therefore the whole
canvas is 602x202 pixels to display a 600x200 table with 2 pixel borders.
HTML provides three dierent layouting options: layout using tables, layout using divs
and the HTML5 canvas. Tables and divs are the original HTML way of layouting items,
where text is the content that should be visible best. When the text does not t within
the table cells, or div, the rendering engine will automatically resize the table cell or div to
accommodate the extra content. The HTML5 canvas on the other hand is completely pixel
oriented and does not resize elements automatically. The HTML <table> element is used
to create tables. Within a table there are table rows and table cells which use the <tr>
and<td> elements respectively. Table cells can encompass multiple rows or columns using
the rowspan and colspan properties. The HTML code to create the table as displayed in
gure 3.11 looks as follows:
<style type="text/css">
td
{
border-style: solid;
border-width1px;
}
</style>
<table width="600px" height="200px">
<tr>
<td>&nbsp;</td>
<td colspan="2">&nbsp;</td>
<td rowspan="2">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
This table can also be created using only <div> elements. The code for the table created
using <div> elements can be found in appendix E. The thing that is immediately clear
when looking at the source code for the div-table is the amount of CSS needed to create
the table layout. <div> elements are only invisible containers that can be modied, this
modication has to be done through CSS. An interesting point is the need for an invisible
cell and extra subdivision cells to create double-height and double-width cells. Since the
table and div element both automatically resize according to their content, there has to
be at least some content in the elements. &nbsp; prints a non-breakable whitespace. The
elements will look empty, but there is content. The div and table elements can only use
percentage and pixel widths and heights. It is impossible to specify the width of a div
31
3. COMPARISON
relative to the size of another div using plain HTML/CSS. Relative sizes can be used when
the DOM-tree is modied using JavaScript.
The nal possibility to create the table layout is using the new HTML5 <canvas> element.
Like the div-element the canvas is only a container. A big dierence between the div and
the canvas however is the fact that the canvas has to be lled through JavaScript and is
pixel-based. As such the canvas does not contain objects that can be lled. The text is
completely separate from the drawing elements. The canvas element will also not resize to
t its contents automatically. Extra content will be clipped o.
<head>
<script type="text/javascript">
function fillCanvas()
{
var elem = document.getElementById(’myCanvas’);
var context = elem.getContext(’2d’);
context.lineWidth = 2;
context.strokeRect(11150100);
context.strokeRect(1511300100);
context.strokeRect(4511150200);
context.strokeRect(1101150100);
context.strokeRect(151101150100);
context.strokeRect(301101150100);
}
window.onload = fillCanvas;
</script>
</head>
<body>
<canvas id="myCanvas" width="602" height="202"></canvas>
</body>
The above code is used to create the table layout using the 2d-version canvas element, the
getContext() method is used to select either a 2d or a 3d context.. Notice how the topleft
rectangle has to start on (1,1). This is the result of the automatic clipping of the canvas
element. All strokes that are painted have half of their stroke on the inside and the other
half on the outside. Since the selected lineWidth is 2, there should be a spacing of 1 pixel
to not clip o half of the line. To make sure there is also no clipping at the bottom right
corner the width of the canvas has to be at least 602x202 to accomodate the table which
is 600x200.
3.2.7 Storage access
Both QML and QtWebKit can use the HTML5 LocalStorage API to store data. This Lo-
calStorage API is however only to be used as a temporary cache, since the LocalStorage
API does not oer any guarantees about data availability [33].
For persistent data storage both QML and QtWebKit support Qt C
++
-objects and an
HTTP REST application service. When using Qt C
++
-objects the developer extends the
runtime in which the application runs. In the case of QtWebKit this can be seen as a
32
Documents you may be interested
Documents you may be interested