c# winforms pdf viewer control : Cut pdf pages application software tool html winforms asp.net online FULLTEXT011-part1218

10 
2.3 The Android platform and devices 
Android [3] is a software platform initially developed for smartphones, but is 
t is 
now also developed for tablet use. Android’s SDK supplies tools and APIs 
necessary to be able to develop for the Android platform, with Java as pri-
mary programming language. Android is based on a modified Linux kernel. 
The operating system’s software consists of Java applications that run on an 
object oriented application structure. Android was developed by Android 
Inc., which later was bought by Google the year of 2005. 
An “Acer Iconia Tab A500” device is used for testing and is based on the 
ased on the 
Honeycomb 3.0 operating system for Android. It has a 10.1-inch screen with 
with 
a resolution of 1280 x 800 WXGA and a 16:10 aspect ratio. 
2.4 Human-Computer Interaction 
When developing for mobile devices and tablets the importance of HCI be-
comes more significant. On a computer screen the resolution is high and the 
user navigates using the cursor, which gives very high accuracy. This ena-
bles buttons, text and graphical components to be very small. It also enables 
a lot of information to be crammed into the workspace without it feeling 
cluttered. When it comes to mobile and tablet design we have to rethink our 
layouts a bit more thoroughly. The workspace is an issue and choosing the 
right content to show in the right moment becomes crucial.  
The importance of a seamless mobile system becomes more important than 
for traditional computer environments. The user should not need to look 
around in an application for different functions, as we are used to with to-
o-
day’s computer software. For a mobile device the intuitivity of a solution is 
is 
the first most important factor when using an application. 
Cut pdf pages - copy, paste, cut PDF pages in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others
extract one page from pdf file; delete page from pdf file
Cut pdf pages - VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Detailed VB.NET Guide for Extracting Pages from Microsoft PDF Doc
extract one page from pdf; delete page from pdf reader
11 
 Methods and design development 
3.1 User Interface 
To find a suitable User Interface for the purpose of creating a user-friendly 
iendly 
environment, I will look into mobile and portable device guidelines supplied 
ied 
by Android and information from previous courses taken in Human Com-
m-
puter Interaction. 
An initial proposal was made during early stages of the research process, this 
this 
image is actually an image mockup based on an iPad framework, Figure 1,  
It was only intended to be used as a proposal and a way to build further ideas 
from. On the top a progress indication and the four buttons represent, from 
from 
left to right; send slide to server (teacher), previous slide, next slide and draw 
on slide.  
Figure 1. A initial proposal of the layout. 
VB.NET PDF copy, paste image library: copy, paste, cut PDF images
VB.NET PDF - Copy, Paste, Cut PDF Image in VB.NET. Copy, paste and cut PDF image while preview without adobe reader component installed.
delete pages from pdf in reader; copy one page of pdf
C# PDF copy, paste image Library: copy, paste, cut PDF images in
C#.NET PDF SDK - Copy, Paste, Cut PDF Image in C#.NET. C#.NET Demo Code: Cut Image in PDF Page in C#.NET. PDF image cutting is similar to image deleting.
a pdf page cut; delete pages from pdf in preview
12 
3.2 Server-Client network model 
The obvious model for this type of application is of course a client-server 
er 
network model. Since the existing server is built upon a solution based on 
the Bonjour protocol and thus on UDP, the idea is that the client will be im-
be im-
plemented to seamlessly connect with this system. When the user starts the 
s the 
application a discovery service starts up in the background looking for the 
server and connects to it. What I will do is to explore how this could be 
solved using Android in conjunction with the existing server. 
3.1.1  Bonjour 
The Bonjour networking protocol [11] is an implementation of Zero configu-
figu-
ration, a protocol for discovery of network services. Bonjour can discover 
devices such  as printers, computers and other devices’  services that  are 
available on a local network.  
Bonjour  uses something called  multicast  Domain  Name System,  mDNS 
[12]. This means that each computer on the local network stores a list of 
DNS resource records and then joins the mDNS multicast group. When a 
client wants to know the IP address of other devices, given its name, the 
mDNS client sends a retrieval request to an already known multicast ad-
dress, the device with the corresponding record will reply with its IP address 
and port number. This is then used to create a socket connection, using either 
ther 
TCP or UDP. 
3.2 Image Processing 
The client as we know is provided with the broadcasted slides from the serv-
v-
er. Some of these slides contain information that the users can interact with, 
for instance multiple-choice questions. First of all what needs to be done is 
e is 
to convert the Power Point-formatted slides to a suitable image file type, in 
in 
our case JPEG is fine.  
To be able to distinguish what is a question slide and what is just an infor-
mation slide we use something called horizontal projection [6] within image 
mage 
processing.  
To complete this functionality within the client’s implementation we would 
probably need library functions for the Power Point to JPEG conversion. 
Then it is necessary to apply an algorithmic solution for the horizontal pro-
o-
jection to determine where to create clickable links, possibly using histo-
sto-
grams to distinguish text from background. 
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
Page: Delete Existing PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Delete PDF Page. How to VB.NET: Delete Consecutive Pages from PDF.
deleting pages from pdf file; copy page from pdf
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Page: Delete Existing PDF Pages. Provide C# Users with Mature .NET PDF Document Manipulating Library for Deleting PDF Pages in C#.
cut pages from pdf; copy pdf page to clipboard
13 
 Results 
4.1 Implementation Android 
The Android framework is based on one or more application components; 
activities, services, content providers and broadcast receivers. In this appli-
li-
cation we will focus on activities and services.  
Content providers manage the data stored within the system, such as an 
an 
SQLite database, content on the Internet or another local storage location. At 
this stage of the implementation Content providers is not necessary. Second-
ond-
ly, broadcast receivers are components that respond to announcements made 
ade 
by the system, such as; a picture has been captured or the battery is low. 
These broadcasts are also of little concern for us at this stage. 
Back to the activities, an activity represents a single screen with a user inter-
-
face. I implemented three activities; one main screen, which handles the 
login process which requests a user ID, the discovery service for connection 
tion 
to the server and the actual slider part with the pictures. The user can in theo-
eo-
ry jump between these activities by pressing the ‘back’ button (application 
icon) supplied by the OS and then start certain activities again, figure 2. 
gure 2. 
Figure 2. The three main activities. 
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Page: Insert PDF Pages. |. Home ›› XDoc.PDF ›› VB.NET PDF: Insert PDF Page. Add and Insert Multiple PDF Pages to PDF Document Using VB.
cut pdf pages online; deleting pages from pdf in preview
C# PDF Page Insert Library: insert pages into PDF file in C#.net
Page: Insert PDF Pages. |. Home ›› XDoc.PDF ›› C# PDF: Insert PDF Page. Add and Insert Multiple PDF Pages to PDF Document Using C#.
extract pages from pdf without acrobat; export one page of pdf preview
14 
The connection between activities is something called an Intent object; it 
it 
binds individual components together and creates a bridge between them. It 
provides a means for communication between activities, by passing along 
messages for instanceIn example 1 you can see the code that creates a but-
ut-
ton that in turn creates the Intent object and bounds it with Slider.class and 
starts its activity. 
/*!Button!that!starts!the!slider!and!shows!the!images!*/!
!
Button!startSlider!=!(Button)!findViewById(R.id.Button02);!
!
startSlider.setOnClickListener(new!View.OnClickListener()!{!
!
!!!!public!void!onClick(View!view)!{!
!
!!!!!!!!Intent!myIntent!=!new!Intent(view.getContext(),!!
!
!!!!!!!!Slider.class);!
!
!!!!!!!!startActivityForResult(myIntent,!0);!
!!!!}!!!!!!!!!
});!
Example 1. Code to create 
a button that creates the Intent object and bounds it 
with Slider.class and starts its activity.
The discovery service is actually at this stage a foreground activity and not a 
service. The reason for this is that it is easier to work with activities in the 
foreground and make sure they work properly before we transfer them to 
work as a background service. However, the Android implementation guide-
e-
lines discourage the use of network activities in the foreground, as they tend 
to consume too many resources. Although as a proof of concept, we accept 
cept 
this at the time being. 
4.1.1  Differences from the Java point of view 
What differentiates typical Java programming that I am used to, from the one 
used when programming for Android is that of the different application 
components, mentioned before. When the Main.class is started for instance, 
ce, 
we need to extend the Activity object to create something visual, a first 
screen. Then what we need to do here is to override the onCreate method 
with says what we shall do with our new activity object. In this case we 
bound the activity with a layout file called main.xml that structures visual 
object such as buttons and text fields for instance, see example 2. 
public!void!onCreate(Bundle!savedInstanceState)!{!
!
!!!!super.onCreate(savedInstanceState);!
!
!!!!setContentView(R.layout.main);!
!
!!!!...!
}!
Example 2. Code that sets the visual properties, run when Main.class is started. 
How to C#: Basic SDK Concept of XDoc.PDF for .NET
example, you may easily create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut, rotate, and save PDF page(s
combine pages of pdf documents into one; extract one page from pdf reader
VB.NET PDF: Basic SDK Concept of XDoc.PDF
example, you may easily create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut, rotate, and save PDF page(s
extract pages from pdf reader; delete page from pdf acrobat
15 
Below is a graphical representation of the activity lifecycle, see figure 3. 
These methods are all part of the Android API and are crucial in the man-
agement of activities. This framework is built upon Java as mentioned but 
tightly connected to hardware functions within the Android devices, this is 
one of the core differences when programming for Android compared with 
regular Java programming. 
Figure 3. The activity lifecycle. (developer.android.com). 
16 
4.1.2  Network solution 
The initial idea was for the client to have a built in service discovery algo-
rithm for picking up the server’s broadcasted IP. Connect to the server, let its 
user send their student ID and begin receiving content from the server, in 
in 
form of previous mentioned Power Point slides. As it turned out the Android 
platform does not really support the Bonjour library, which the server uses, 
s, 
this because of the simple fact that there is no implementation made for An-
n-
droid by Apple [1]. 
What some developers has managed to do is to use a software library called 
lled 
jmDNS [7], which is a Java based library built for Zero configuration com-
m-
munication. The jmDNS works as a broadcast search for devices, in similari-
ty with the Bonjour library.  
Initially I only had access to a HTC device running Android to test the al-
al-
ready existing solution that was built in Java by the other student, however it 
it 
seemed  that these devices  had  some  bugs [4] when  it  comes  to DNS-
NS-
broadcasting [5]. 
Another issue is that, even though jmDNS and Bonjour are built on the same 
idea of Zero configuration, the API is totally different and would require the 
re-writing the methods of the jmDNS library to function properly with the 
he 
Bonjour library methods. 
In a latter stage of the work process I acquired an Android 3.0 tablet from 
ablet from 
the task assigner to test the jmDNS library for service discovery. It turned 
ed 
out that the Android device actually could find other services of Zero con-
n-
figuration kind in the vicinity when I did a live test. However, although the 
the 
one-to-one computing server was running next to the device, the tablet client 
ient 
was unable to successfully pick up its broadcast. 
With some consultation with the task assigner and the other student who 
developed the server we agreed upon leaving the networking part aside, and 
and 
continue as if it had worked. One solution to this problem could to be im-
im-
plementing an alternative way of connecting to the server, using a direct 
ect 
socket connection with the server’s IP given beforehand. In other words this 
this 
would mean to hard-code the connection on the client to the server, bypass-
, bypass-
ing the broadcasting part. Doing this would require the server code to be re-
e-
written and tested in close conjunction with my system. However this was 
something that was beyond my control and influence and will probably be 
considered in a future version of the server software. 
17 
4.2 Human Computer Interaction 
4.2.1  User Interface 
Smartphone applications are generally designed to show as little information 
as possible to make them easy to navigate and understand. However when it 
comes to tablets we have to re-think this general ideology a little bit. All of a 
of a 
sudden we are supplied with high resolution and large screens, but still with 
with 
smartphone features. We are in this situation stuck somewhere in a boundary 
ry 
country between a smartphone and a computer. 
According to Android UI Design Patterns [9] the general idea of “less is 
more” is emphasized. For instance, it is encouraged that not more that four to 
four to 
six possible choices, or buttons, are presented on each screen to avoid clut-
t-
tering. However since they refer to smartphones and not tablets using An-
n-
droid, this is not really our concern. However we should still keep this in 
mind since the user still uses its fingers to navigate and there shall be enough 
space  around clickable items to make the user feel comfortable and not 
afraid to miss-click. In our case the application does not really have a lot of 
lot of 
functionality so staying within the guidelines is done with ease.  
After the connection is established to the server an input text box appears 
centered on the screen, asking for the student ID-number, the virtual key-
y-
board is set to appear. The user input its ID number and presses confirm 
which is a button directly under the input field, see Figure 4. 
The slides sent from the server appear on the screen, and the device is now 
now 
connected to the server and the teacher can broadcast all slides to the stu-
-
dents.  
18 
Figure 4. _The Login screen. 
What is shown on the screen is now the current slide and the Android action 
d action 
bar, located at the top, with a few buttons. If the user presses anywhere on a 
n a 
slide image a toast message appear, displaying the number of the current 
current 
slide out of the total number, for instance ‘3 of 14’. A toast message is a 
is a 
quick little message that pops up on the screen and stays there for a brief 
a brief 
period of time, then fading away. This is a very useful way of informing the 
g the 
user of the current progress through the slides requiring no additional inter-
r-
action from the user. 
On top of the screen is where the action bar is located. To the left of it is the 
is the 
application name with a corresponding application icon. Pressing this icon 
s icon 
will bring the user ‘up’ one level or back to the Android OS menu if the user 
is on the root level of the application, otherwise just back to the previous 
activity. On the rightmost side are four buttons, Previous, Next, Draw and 
raw and 
Send, see Figure 5. The Previous and Next are self-explanatory, however the 
however the 
Draw and Send buttons, need some explanations.  
When the user presses the Draw button a toast message appears for a brief 
ef 
moment indicating that the user is in Draw mode and they will be able to 
le to 
draw on the screen with their fingers, and when they are done they simply 
press the Draw button again. This could, for instance, be used to mark words 
mark words 
or point out things of interest to the teacher.  
19 
Figure 5. The Slide Screen.  
When the user presses the Send button, the actual screen the user sees is sent 
sent 
to the teacher and a status toast message displays that the action is pro-
pro-
cessing, ‘Sending slide...’. The feedback is given since it is important to 
nt to 
show the user what is going on when an action is commenced. 
To slide from one image to the next or previous image the user just swipes 
the finger in the opposite direction of the new image, e.g. swipe finger to the 
left for next image. 
The slides are shown as fixed size images, in order to fit the resolution of the 
the 
actual Android device. Therefore they will look good on any 10-inch screen 
with similar resolution. Although for the final application to be considered 
dered 
ready  for launch, it needs to be scalable to handle different resolutions, 
screen sizes, new models etc. since we don’t want to restrict the system to 
just tablets of a fixed screen size.  
Android has thought about this and implemented good solutions to handle 
these kinds of matters. The use of XML-sheets for the layout description 
ption 
makes it easier to organize your code and follow the MCV-standard if used 
sed 
correctly, in other words avoiding putting layout features in the model rather 
than in the view. This makes it fairly easy to implement different styling 
ng 
schemes and layouts for various kinds of DPIs, as Android call it.  
As most tablets have gyros they can sense their position, if they are held in 
landscape view or portrait view.  
Documents you may be interested
Documents you may be interested