pdf viewer c# winform : Adding images to pdf Library software class asp.net winforms .net ajax Patel_Devang3-part2244

21 
Simple 
Distributed 
Multithreaded 
Dynamic 
Portable 
Secure 
High performance 
Java code is written in any of the plain text file and this text file saves as .java 
extension. Created java file run by .class file through java complier and .class file is nothing 
but it is store the byte code to understand the machine language. After the compilation Java 
need java virtual machine to run the application because java virtual machine is deploy on 
any of operating system like as Microsoft operating system, Mac operating system, Solaris 
operating system and Linux operating system. 
Figure 3.5 [18] describe the overview of the software development process for java 
language. 
Figure 3.5. Overview of the software development process the java tutorial. 
Source: J
AVA
About the Java technology. Java, 
http://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html, accessed 
February 2012, n.d. 
3.5
J
AVA 
P
LATFORM
Platform is the environment in which software and hardware runs. Java platform is 
different from all other platforms because it is software based platform and can run on any 
other hardware-software platforms. 
There are 2 components of Java platform:  
1.  Java Virtual Machine (JVM) 
Adding images to pdf - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
how to add a picture to a pdf file; add png to pdf preview
Adding images to pdf - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
add image to pdf file; add image to pdf acrobat reader
22 
JVM is base for the java platform and runs onto the various hardware-based 
platforms.  
2.  Java Application Programming Interface ( Java API) 
The API is the collection of different software components and it provides useful 
capabilities. It is combined in to classes and interfaces which is known as the 
package. 
Android SDK includes many java libraries likes data structure, math libraries, 
graphics, networking and android libraries which supports rich android application 
development. 
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Feel free to define text or images on PDF document and extract accordingly. Capable of adding PDF file navigation features to your VB.NET program.
add photo to pdf file; add image to pdf java
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Support adding PDF page number. Offer PDF page break inserting function. DLLs for Adding Page into PDF Document in VB.NET Class. Add necessary references:
add photo pdf; add picture pdf
23 
CHAPTER 4 
PROJECT IMPLEMENTATION 
This chapter will give the detailed information about internal structure of PDF file. It 
will also cover some basic introduction of open source library that is widely used to parse the 
PDF file. Later part of the chapter covers project implementation details with screen shots. 
4.1
I
NTERNAL 
S
TRUCTURE OF 
PDF 
PDF document consists of three layers. The lowest layer contains data for the 
document. The next above layer is the COS layer and it contains the simple independent 
object. The top most layers is called PD layer and this layer combines all the independent 
objects together to implement the structure like images, fonts and paragraphs. All the layers 
have their own independent rules. PDF file is created with some text and binary data. It also 
contains direct and indirect objects. PDF documents support basic seven types of objects as 
described below: 
Booleans : Always in form of two values - True and False 
Streams : Contains images, page contents and embedded fonts  
Arrays : Contains the list of all the objects 
Strings: Describe the sequences of characters 
Names : It is predefined value in a PDF document, and typically used as a key in a 
dictionary 
Dictionaries : Contains the map of name-value pair  
Numbers: Supports two types of numbers - integer and real. Integer numbers are 
described by signed and unsigned constants whereas; real numbers are described by 
decimal format 
Figure 4.1 [4] indicates the PDF file document structure on client side. 
PDF file description uses various levels of contents such as interactive online view 
and copy image on printer side. Lowest level of the page structure is the object which is used 
to create the documents. There are seven types of the objects used in the PDF file format 
such as array, Boolean, numbers, dictionary, string, Stream and name. Middle level of the  
C# PDF Page Insert Library: insert pages into PDF file in C#.net
By using reliable APIs, C# programmers are capable of adding and inserting (empty) PDF page or pages from various file formats, such as PDF, Tiff, Word, Excel
add image pdf; add image to pdf reader
C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
add a picture to a pdf file; add jpg to pdf form
24 
Figure 4.1. PDF document structure at client side. Source: K.
T
HOMAS
Portable 
document format: An introduction for programmers. MacTech, 
http://www.mactech.com/articles/mactech/Vol.15/15.09/PDFIntro/index.html, 
accessed January 2012, n.d. 
page structure is PDF file structure and it is used to store and retrieves the root level of the 
objects. Higher level of the page structure is the document structures which are organized 
into pages, index, chapter, sections, etc. 
PDF file structure is divided into four major parts: 
Header 
Body 
Cross reference table 
Trailer 
Figure 4.2 [4] describes the physical structure of PDF file with four major parts  
4.1.1 Header 
Header is the first part of PDF document. Header describes the version of the PDF 
and is written in the PostScript style. For example, if the PDF file is created in 1.4 versions,  
VB.NET Image: How to Draw Annotation on Doc Images with Image SDK
to mark and annotate your local images (such as page TIFF, Microsoft Office Word and PDF file other image annotating tutorials besides adding annotation using VB
adding image to pdf form; how to add picture to pdf
VB.NET Image: Adding Line Annotation to Images with VB.NET Doc
NET full sample codes for printing line annotation on images. VB.NET Image Line Annotation Overview. Mature image processing library for adding line annotation
add a jpg to a pdf; how to add an image to a pdf
25 
Figure 4.2. PDF physical structure of PDF file. Source:
K.
T
HOMAS
Portable document format: An introduction for programmers
MacTech, 
http://www.mactech.com/articles/mactech/Vol.15/15.09/PDFIntro/ind
ex.html, accessed January 2012, n.d. 
then the header of the document is “% PDF-1.4". Header can change based on the version 
used to create PDF file.  
4.1.2 Body 
Body is the second part of the PDF file. The PDF body contains different types of 
objects like integer, Boolean, string, dictionary, images, graphics. We can put images, text, 
values in any of the order. User can easily implement the logical structure in a body with the 
use of objects. User can also give the security of the document by implementing the security 
features within the body. User can protect the contents from the unauthorized editing, 
printing, and viewing [19]. Body part of the PDF structure also supports two values - one is 
integer and second is real numbers. Figure 4.3 shows the example of the body of the PDF 
files structure. 
C# PDF Library SDK to view, edit, convert, process PDF file for C#
Support protecting PDF file by adding password and digital signatures with C# sample code in .NET Class. Feel free to define text or images on PDF document and
add jpg signature to pdf; add image field to pdf form
VB.NET PDF insert text library: insert text into PDF content in vb
VB.NET PDF - Insert Text to PDF Document in VB.NET. Providing Demo Code for Adding and Inserting Text to PDF File Page in VB.NET Program.
how to add a jpeg to a pdf; add picture to pdf preview
26 
Figure 4.3. Example of body. 
4.1.3 Cross Reference Table 
Cross reference table is the third component of the PDF file structure. It is easy to 
access any object by its ID number thus, there is no need to read whole document. A PDF file 
contains one cross reference table and this table further contains one or more sections. The 
cross reference table changes according to any change in the document. The cross reference 
table starts with one keyword “xref”. The address of the object is 20 byte long and it is 
included at the end of line. Figure 4.4 shows the example of the cross reference table. 
Figure 4.4. Example of cross reference table. 
Figure 4.4 describes that each cross reference starts with two header numbers. The 
first number indicates the object number of the first entry in the subsection and the second 
number indicates number of entry in the subsection for example in “21 3”:  21 is the object 
number of the document and 3 is the number of entries of that particular object. There are 
C# PDF Annotate Library: Draw, edit PDF annotation, markups in C#.
Provide users with examples for adding text box to PDF and edit font size and color in text box field in C#.NET program. C#.NET: Draw Markups on PDF File.
add picture to pdf document; add picture pdf
27 
two types of entries in the object, out of which, one is used and the other one is not used. In 
the object, the first 10 digits of the number represent the byte offset and they specify the 
numbers of bytes from the beginning of the file. These numbers are separated from the 
generation numbers by the single name space. [20] 
4.1.4 Trailer 
Trailer is the last part of the PDF document structure and it contains the link to the 
cross reference table as well as some other object link. User can easily find a particular object 
from this trailer. The page navigation part is also stored in this section so that user can easily 
navigate the page. 
Trailer 
<</Info 6 0 R/Size 7/ID /Root 5 0 R>> 
startxref 
467783 
%%EOF 
The PDF file always ends with %%EOF and it identifies the end of the PDF file. The 
PDF file may not be processed without this line. Last line must be there in the trailer part. 
Startxref is a point to cross reference table and below the startxref line is starting address of 
the cross references table. 
4.2
A
PACHE 
PDFB
OX
Apache PDFBox is widely used in web based word to PDF converter applications. It 
is an open source java tool and widely used to handle different PDF operations. We can 
create new PDF document and manipulate an existing PDF document using the Apache 
PDFBox library. It also includes command line utilities and depends on a few external 
libraries. 
Three main components of PFDBox are pdfbox , FontBox and JempBox. The 
FontBox and JempBox components are standalone libraries and used to manage font 
information and XPM meta data. These both components have no dependencies and can be 
used by adding jar files in the classpath. The main component of this tool is pdfbox and it is 
depended on fontbox and jempbox. 
Below snippet shows declaration of PDFBox Maven dependency: 
28 
<dependency> 
<groupId>org.apache.pdfbox</groupId> 
<artifactId>pdfbox</artifactId> 
<version>...</version> 
</dependency> 
Some of the features of PDFBox are dependent on optional extended libraries and we 
need to add those libraries in the classpath. One of the most useful features is PDF 
encryption. We can include bcmail and bcprov libraries in our application using Maven 
dependencies. [21] 
<dependency> 
<groupId>org.bouncycastle</groupId> 
<artifactId>bcprov-jdk16</artifactId> 
<version>1.44</version> 
</dependency> 
<dependency> 
<groupId>org.bouncycastle</groupId> 
<artifactId>bcmail-jdk16</artifactId> 
<version>1.44</version> 
</dependency> 
The other useful optional feature is bidirectional language like Arabic. PDFBox uses 
the ICU4J library form the international components for Unicode (ICU) project to support 
such languages in PDF format. 
4.3
I
MPLEMENTATION
I have used the iText PDF and POI API for converting word to PDF file. iText PDF 
API is used for writing any data into PDF file and POI API used to read the content from 
word file. 
4.3.1 iTextPDF 
iText is a PDF library. We can create a PDF file programmatically using a iText API. 
This API supports more features related to PDF format such as generating the documents, 
add bookmarks, page numbers, adding watermark, split and concatenate pages from existing 
29 
document  and more. Any contains are not specified before, the contains describe by the 
users so we need iTextPDF API. Basically iText API is not the end user tool, we have to 
build iText API in application so we can automate the PDF creation. It is hard to create a 
PDF file manually if there are so many pages in the original document so in this case we can 
use API to convert it into the PDF. [22] 
Figure 4.5 describe the overview of the functionality users can do with PDF file. User 
can create PDF documents using high level objects and use PDF writer to achieve it. Low 
level functionality PDFContentByte class consists of series of methods which is use to draw 
arcs, circle, rectangles and more. iText is not a PDF viewer, but the PDFReader class can 
give us access to the objects that form a PDF document. Users need a PDFReader class to 
access or read the existing PDF document. The PDFStamper class contains page numbers, a 
watermark, fill the form and so on. User can split and merge PDF documents with PdfCopy, 
PdfSmartCopy, PdfCopyFields, and even using PdfImportedPage objects in combination 
with PdfWriter or PdfStamper. iText can also be used to sign existing PDF documents, as 
well as to encrypt them. [22] 
4.3.2 AndroidManifest.xml 
Each android application starts with AndroidManifest.xml. All the Android 
application should have AndroidManifest.xml file. This file is the root directory of the 
application. This file contains the entire java packages name with their unique name which is 
used in whole application. AndroidManifest.xml also describes the components of the 
android application such as activities, services, broadcast receivers and more. This file also 
allows to give the permission throughout the application which part of the application 
interact with the other application. This file also describe the minimum level of the android 
API is supported. 
In my application I have used AndroidManifest.xml file where there is tag called 
<activity> in which we will be specifying the activity's category it lies in category  
30 
Figure 4.5. PDF functionality overview. Source: 
I
T
EXT
PDF, What is iText? 
iTextPDF, http://itextpdf.com/itext.php, accessed March 2012, n.d. 
LAUNCHER or DEFAULT. Activity which lies under LAUNCHER category will be our 
first activity from which application is going to be started and activity in DEFAULT category 
will be the usual activities which is in turn launched afterwards. 
<activity 
android:name="com.action.MainActivity.WordToPDFConverterActivity" 
android:label="@string/app_name" > 
<intent-filter> 
<action android:name="android.intent.action.MAIN" />  
<category android:name="android.intent.category.LAUNCHER" />  
</intent-filter> 
</activity> 
<activity 
android:name="com.action.business.FileChooser" 
android:label="@string/app_name" > 
Launcher 
Documents you may be interested
Documents you may be interested