c# pdf processing : Save data in pdf form reader software Library project winforms .net web page UWP meyn-antony_joseph_richard_thesis2-part1460

CHAPTER 3. HTML5
21
the authors of the specication. It has been debated, as to whether the
specication should be completed before implementation or vice-versa. It
has been decided that they have to go along with each other, as complet-
ing the specication rst, is quite likely to have implementation issues and
the implementation feedback is important to modify the specication. And
having the implementation done rst, restricts the specication from being
redesigned, as applications which rely on these implementations might stop
working.[33]
3.2 HTML5 and JavaScript
JavaScript has been around much before HTML5 and is one of the most
popular programming languages on the web today. It was originally de-
signed as a lightweight interpreted client-side language that would appeal
to non-professional programmers, and complement Sun Microsystem’s ‘Java’
programming language. Because it runs at the client-side (usually a web
browser), it can respond quickly to user actions making the application more
responsive. The increasing speed of JavaScript engines has also added to the
success of the language.
JavaScript is also one of the most misunderstood programming languages
and was initially not taken seriously by many professional programmers.
This misunderstanding is only exacerbated by its name. The prex Java
incorrectly suggests it is related to Java and the Script sux suggests it is
not a real programming language. Also the initial versions of the language
did not have a lot of functionality such as error handling, inheritance and
inner functions. Although these are supported now and the current version
of the language is a complete object-oriented language, the previous versions
created a low opinion about the language’s capability. JavaScript was also
known for some of its major design  aws, this had given room to a lot of
bad programming, which added to the languages bad reputation and these
bad designs cannot be easily removed, as applications depending on those
aws might fail. The literature on the language is also of very poor quality.
There are in fact very few good books, which actually portray the language
the right way.
Despite its  aws, at its core JavaScript is a very powerful, expressive pro-
gramming language. It has also emerged as the only language that most pop-
ular web browsers share support for. It is the language of the web browser
and now with HTML5 it is the only scripting language endorsed by the draft.
Save data in pdf form reader - 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
can reader edit pdf forms; extract data from pdf into excel
Save data in pdf form reader - 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
extract data from pdf using java; how to fill pdf form in reader
CHAPTER 3. HTML5
22
One of the main reasons JavaScript is popular as a browser language is
because of its support for asynchronous execution of code. Although this
feature slightly complicates the readability of the code, it brings in quite a
few advantages which make up for this. For example from a user experience
(UX) perspective this is important to ensure that web pages are responsive
and take as little time to execute. The asynchronous features of JavaScript
ensures this with function callbacks. A ‘function callback’ is a programming
feature where methods may be passed to another method as an argument.
This allows programmers to specify methods that can to be called on any
event. This does require additional eort in understanding the code  ow due
to its non-linear execution path and hencea proper understanding ofthis pro-
gramming paradigm is important for a developer to be able to write robust
code. To better understand this let us look at the following code example,
setTimeout() is an in-built JavaScript method that accepts two arguments,
1
setTimeout(function() { console.log(’Hello’); }, 3000);
the rst being a function callback and the second a duration in milliseconds.
This method invokes the function specied in the rst argument, after a time
period equal to the duration specied in the second argument.
With the above code, the string ‘Hello’ is displayed after a delay of 3 sec-
onds. If we now introduce another statement to display an additional string
as shown below, we notice a dierence in the output, This now prints the
1
setTimeout(function() { console.log(’Hello’); }, 3000);
2
console.log(’ World’);
string ‘ World’ rst and then ‘Hello’ after adelay of3 seconds. Thus thedelay
does not aect the code following it and execution proceeds. This example
highlights the asynchronous nature of execution in JavaScript. This asyn-
chronous or non-blocking feature of JavaScript is not to be confused with
concurrency. Since the browser implementation decides how non-blocking
code actually works, JavaScript is usually implemented as a single thread.
Later on in this chapter we look at how multi-threading is implemented in
JavaScript with the newly introduced HTML5 Web workers API.
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Merge Microsoft Office Word, Excel and PowerPoint data to PDF form. Append one PDF file to the end of another and save to a single PDF file.
how to save a filled out pdf form in reader; extract pdf form data to excel
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
Merge Microsoft Office Word, Excel and PowerPoint data to PDF form. enable developers to merge two or more PDF document into one and then save as another
vb extract data from pdf; change font size pdf form reader
CHAPTER 3. HTML5
23
In order tostoreand transmit information between web server and clients, we
need to dene a data interchange format. This brings us to another impor-
tant in-built feature of JavaScript. JavaScript brings with it the ‘JavaScript
Object Notation’ (JSON)[12], which is a lightweight human-readable data
interchange format. It is as the name suggests, derived from the JavaScript
language. Despite this it is a language-independent format, with parsers
available in most of the commonly used languages. The JSON format is
used for serializing and transmitting data over a network connection, and
is primarily used between web servers and clients replacing XML. A JSON
representation is basically a collection of name-value pairs. The names and
values are separated by the semi-colon character (:). An example of a JSON
representation of an object that describes a person is shown below,
1
{
2
"firstName": "John",
3
"lastName" : "Doe",
4
"age"
: 26,
5
"address" :
6
{
7
"streetAddress": "Baker Street, 5 C 391",
8
"city"
"Espoo",
9
"country"
"Finland",
10
"postalCode"
"02150"
11
},
12
"phoneNumber":
13
[
14
{
15
"type" : "home",
16
"number": "358 456-7890"
17
},
18
{
19
"type" : "fax",
20
"number": "358 123-4567"
21
}
22
]
23
}
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
this RasterEdge XDoc.PDF SDK, you can simply delete a single page from a PDF document using VB.NET or remove any page from a PDF document and save to local
how to fill out a pdf form with reader; make pdf form editable in reader
C# PDF Convert to Tiff SDK: Convert PDF to tiff images in C#.net
Description: Convert to DOCX/TIFF with specified zoom value and save it into stream. Parameters: zoomValue, The magnification of the original PDF page size.
export pdf data to excel; how to save a pdf form in reader
CHAPTER 3. HTML5
24
HTML5 consists of numerous individual features and in the remainder of
this chapter we introduce those HTML5 features which are signicant to our
P2P VOD streaming implementation. These include the following,
 The <video> element, to allow native videoplayback within the HTML
user agent.
 The File API, to access the le system.
 The IndexedDB API, to maintain and organize an index of the les
and application settings.
 The Web workers API, that enables multi-threading.
 The Web sockets API, that allows bi-directional communication be-
tween the client and servers.
 The WebRTC API, that enables browser-to-browser communication.
 JavaScript helper libraries to parse the HTML DOM and to perform
Message Integrity Checks.
One of themajor challenges ofdealingwith HTML5 at this stagewith regards
to writing this thesis, is the immaturity of the implementations and changes
in the API due to the ongoing standardization process.
3.3 The <video> tag
The video element is an important addition to HTML. It has been intro-
duced for the purpose of playing videos and movies and to replace the <ob-
ject> element, which was earlier used among other things to embed video
content intoweb pages. Theintroduction ofthis element means thatbrowsers
would need to implement native video players so that videos can be played
without the need for any plugins. Even though the video tag is a work in
progress, it has been implemented by almost all major browsers to date. To
demonstrate the media API and media events, theW3C has published a page
1
,which when viewed with a browser that supports the <video> element,
displays the properties, events and media types it supports.
When we talk about video players embedded in the browser, the next nat-
ural question would be which video formats are supported. This however is
1
http://www.w3.org/2010/05/video/mediaevents.html
C# Create PDF from Tiff Library to convert tif images to PDF in C#
Description: Convert to PDF and save it on the disk. Parameters: Name, Description, Valid Value. Description: Convert to PDF and save it into stream. Parameters:
pdf data extraction to excel; fill in pdf form reader
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
to extract single or multiple pages from adobe PDF file and save into a The portable document format, known as PDF document, is a widely-used form of file
extracting data from pdf to excel; extracting data from pdf forms to excel
CHAPTER 3. HTML5
25
not clear at the moment as the current HTML5 draft does not specify which
video formats browsers should support. Video formats are comprised of a
combination of containers and codecs. Video containers are the le formats
which contain the video stream and other related information, such as the
meta-data of the video le, the title of the video, a thumbnail picture pre-
view, the video stream bit rate, audio les with markers for synchronization
and so on. Video codecs are the implementation of the algorithms used for
renderingthe video streams. Although it would be ideal if every browser sup-
ports a standard set of video formats, this is currently not the case. For this
reason the video tag accepts multiple source URLs, and the browser plays
the rst resource that it supports. The online resource ‘Dive Into HTML5’
2
details the browser support for the various video formats[33], and since this
is constantly changing (and will continue to do so until standardized), it is
important that developers are aware of this information.
3.4 File API
The HTML5 File API specication[37] is still being drafted by the W3C Web
Applications (WebApps) Working Group. The implementation of this API
within the browser would allow HTML5 applications to handle les via the
browser in astandardized way. It has been designed to allow the web browser
to create a sandboxed lesystem for each web domain, which means if we had
two domains say www.yahoo.com and www.google.com, the les created by
each of these domains would not be accessible to each other. The JavaScript
code could request two types of lesystem storage, namely temporary and
persistent storage. In temporary storage the les stored can be removed
at the browser’s discretion and in persistent it can only be removed by the
application. Of course, neither of these would stop the user from manually
removing these les from the hard disk if they so desired. The latter storage
requires the user to grant access to the application.
It is important to note that the File API cannot be used to access the le
system outside the browsers sandboxed lesystem. Providing such access
needs to be debated and designed carefully, as it brings up security concerns.
As depicted in the Figure 3.1, each browser that supports the HTML5 File
API will have a separate sandboxed lesystem even if they are of the same
domain. Files within each of these sandboxed lesystem cannot reference
les that are outside their respective lesystem. This would mean that each
2
http://diveintohtml5.info/video.html
C# Create PDF from PowerPoint Library to convert pptx, ppt to PDF
Description: Convert to PDF/TIFF and save it on the disk. Parameters: Description: Convert to PDF/TIFF and save it into stream. Parameters:
how to save pdf form data in reader; export pdf form data to excel
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Description: Convert to PDF/TIFF and save it on the disk. Parameters: Description: Convert to PDF/TIFF and save it into stream. Parameters:
extract data out of pdf file; extract data from pdf form fields
CHAPTER 3. HTML5
26
Figure 3.1: An overview of the HTML5 browser lesystem.
last node in the Figure 3.1 would not be able to reference les outside the
respective node. This would not even be possible from the temporary to the
persistent lesystem for the same domain within the same browser. Appli-
cations could be designed to allow the moving and copying of les within
the temporary and persistent lesystem of the same domain and browser. In
order to do this with dierent browsers, the domain web server would have
to be used to relay the data.
The currently published version of the File API draft[? ] has been im-
plemented by major browser vendors.
3.5 IndexedDB API
The Indexed Database (IndexedDB) API[27] is another specication by the
W3C Web Applications (WebApps) Working Group. The W3C group has re-
cently been looking into the option of having aclient side persistent database
C# Create PDF from Word Library to convert docx, doc to PDF in C#.
Description: Convert to PDF/TIFF and save it on the disk. Parameters: Description: Convert to PDF/TIFF and save it into stream. Parameters:
cannot save pdf form in reader; edit pdf form in reader
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
key. Quick to remove watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components
extract data from pdf file to excel; html form output to pdf
CHAPTER 3. HTML5
27
within the browser. This would give applications the ability to save in-
formation within the browser, so that they may access information even
when oine. The WebSQL API was introduced so that information could
be recorded and retrieved based on well established Structured Query Lan-
guage (SQL) statements, however towardsthe end of the2010 theW3C group
decided that introducing SQL statements within JavaScript, was not a very
compatible design and dropped it. This was then replaced by the IndexedDB
API, which has a more JavaScript related API which deals with with data in
the form ofthe JavaScriptObject Notation (JSON). The HTML5IndexedDB
API allows applications to have a persistent storage of information locally
within the browser. The availability of this stored oine information is the
same as the File API discussed previously, where the information is saved
separately for dierent domains and browsers.
The indexed database consists of object stores, these are the data structures
that contain all the data. In relational databases these are known as tables.
The indexed database consists of three types of transaction modes which
allow access and modication to the object stores, they are ’readonly’, ’read-
write’ and ’versionchange’ transactions. The ’readonly’ transactions where
data is not modied, can have many instances running in parallel, as these
instances would not have any impact on each other. The ’readwrite’ trans-
action on the other hand can only have one instance accessing a given object
store running at a time, in order to ensure that transactions are mutually
exclusive. It is also important to note that the object store schema cannot be
modied in this transaction mode. Finally the ’versionchange’ transaction
mode is the only one in which the object store schema can be modied.
The IndexedDB API brings in a unique problemas to how thebrowser should
handle the data when the object store schema has been updated. We should
remember that when a new version has been deployed, all previous versions
would be available with the user base, so if the designed application cannot
aord to lose previously stored data, it would have to write code that han-
dles the smooth transition of data from all the previous versions to the new
object store schema. This is a problem that is specic to having a database
on the client side, as server side databases would only have to be migrated
from one schema version to another and would be re ected globally. This is
also where the ’versionchange’ transaction mode becomes important.
CHAPTER 3. HTML5
28
3.6 Web Workers
The Web Workers API[18] is another specication by the W3C Web Ap-
plications (WebApps) Working Group. One of the obstacles to porting of
server-heavy applications to client-side JavaScript is the single-threaded en-
vironment of JavasScript. JavaScript does allowing asynchronous execution
but this does not necessarily mean concurrency. As the asynchronous non-
blocking code need not necessarily mean that threads are employed. In order
to handle computationally intensive tasks, the HTML5 Web Workers API
was introduced. This species an API to spawn background scripts in web
applications.
With this it is now possible to run separate JavaScript les concurrently.
Workers can utilize thread-like message passing ,to pass strings or JSON ob-
jects to JavaScript code that spawned the worker. Workers are meant for
resource intensive task and are not meant to be used in large numbers as
it could hog up the users system resources. It should ideally be used for
CPU intensive scripts that would otherwise keep the application from being
responsive.
It is important to free the worker by calling the close() method after it has
completed its task. If not this might keep the allocated resources from being
used. Workers are not thread safe, and for this reason they have some re-
strictions, such as accessing the DOM or the document object. Workers can
spawn other workers, this can help break down resource intensive tasks to
complete faster. Employing workers is an important design decision, which
can help make heavy client-side computation quicker.
3.7 Web Sockets
The Web Sockets API[17] is also a specication maintained by the W3C Web
Applications (WebApps) Working Group. A server push and a client pull are
means of delivering content from a server computer (web server) to a client
computer (browser). Unitl now browsers only supported client pull mecha-
nisms, and server push was not directly provided to web developers. This is
amajor drawback, as servers were not able to inform clients when they had
any updated information.
There have been several workarounds in achieving server push mechanisms
they are namely Pushlets, Long polling, Browser plug-ins and third party
CHAPTER 3. HTML5
29
JavaScript libraries. Some of the best practices of abusing the HTTP proto-
col such as long polling have been discussed in RFC 6202[25]. The HTML5
WebSocket API is the rst standardization to help browsers implement a
common mechanism of server push delivery.
The WebSocket protocol[13] has been designed for the the WebSocket API,
this protocol helps with bi-directional communication i.e. allowing a server
to communication with a client and vice-versa. It helps to achieve this by
using a single Transmission Control Protocol (TCP)[34] connection, rather
than by creatinga new TCP connection each time the server or client want to
communicate with each other. This protocol is an independent TCP-based
protocol, and is treated as a HTTP upgrade during the handshakeprocedure.
Just like HTTP, it can work on the default port 80, and for secure connection
it works on port 443 which is based on the Transport Layer Security (TLS)
protocol[38].
Unlike most of the previously discussed HTML5 APIs, this Web Sockets API
requires support from a server component as well. Hence it is not enough if
the browser alone implements the Web Sockets API, the server would also
have to implement the protocol to support this communication. There are a
number of server side implementations of the Web Socket protocol in most
of the well known languages like Python, C sharp, Java and even JavaScript.
It might be a little surprising to know that JavaScript is used outside the
browser, however this has been around for some time now (in fact it has
been available soon after JavaScript was released for the browser in 1994).
Node.js
3
is one recent notable example of a server-side implementation of
JavaScript.
3.8 Additional libraries
In addition to the above discussed API’s our HTML5 implementation of
the Browser-to-browser video streaming application uses a few JavaScript
libraries that are brie y described here.
3.8.1 jQuery
jQuery is a JavaScript library designed to simplify client-side scripting of
HTML, It is designed to make it easy to navigate and manipulate the DOM,
3
http://nodejs.org/
CHAPTER 3. HTML5
30
select DOM elements and handle events (among several others things). It
simplies web application development on the client-side and makes the
JavaScript code more readable. We make use of this library to ease the
development of our video streaming web application.
3.8.2 WebToolKit MD5
In our implementation of video streaming over a P2P network, we need to
ensure the integrity of the pieces of the video stream received by a peer from
another host on the network. One way to do this is with use of Message
Integrity Codes (MIC). A MIC algorithm ensures that a given message will
always produce the same MIC, assuming the same algorithm is used at both
ends.
The MD5 Message-Digest Algorithm is a widely used cryptographic hash
function that produces a 128-bit hash value[42]. MD5 is commonly used to
check data integrity. An MD5 hash is typically expressed as a 32-character
hexadecimal number. The WebToolKit MD5 script is a JavaScript imple-
mentation of the MD5 algorithm, and is used to process a variable length
message into axed-length output of128bits. Wemakeuse ofthis JavaScript
library to generate a MIC for each piece of the video stream received by the
web browser.
The list of HTML5 APIs discussed in this chapter, is by no means ex-
haustive. HTML5 oers many more APIs for development of rich web ap-
plications. We have conned our discussion to the HTML5 features / APIs
that are relevant to the implementation of our P2P VOD solution.
Documents you may be interested
Documents you may be interested