c# pdf viewer open source : How to create bookmarks in pdf file software Library dll winforms .net asp.net web forms DevPro%20HTML5%20PDF10-part1485

do you do about users with an older browser? This is where libraries such as Modernizr and CSS PIE 
come in.
Modernizr uses a technique called polyfills that lets you write code that exploits new HTML5 features, 
such as Location classes. The code degrades gracefully with older browsers that don’t have HTML5 
functionalities. CSS PIE helps level the playing field of CSS implementation across different versions of 
IE. You can code for IE 9 and let CSS PIE deal with the older versions of IE.
There are many more libraries out there to help you be productive in this complex world of web 
development; these four libraries that I’ve described are only a few. It’s well worth your time to look 
for help rather than solve all web development problems yourself.
96
Chapter 10: Ease HTML5 Web Development with jQuery, Knockout, and Modernizr Libraries
How to create bookmarks in pdf file - add, remove, update PDF bookmarks in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your C# Project with Rapid PDF Internal Navigation Via Bookmark and Outline
how to create bookmarks in pdf file; bookmarks pdf documents
How to create bookmarks in pdf file - VB.NET PDF bookmark library: add, remove, update PDF bookmarks in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Empower Your VB.NET Project with Rapid PDF Internal Navigation Via Bookmark and Outline
copy pdf bookmarks to another pdf; add bookmarks to pdf
Chapter 11: Build a jQuery  
HTML5 Web Application:  
The Account at a Glance App
Build the Account at a Glance app using cutting-edge web dev technologies: 
jQuery, HTML5, and more
By Dan Wahlin
As web technologies continue to evolve, developers have to learn new technologies so that they can 
build successful web-based applications that stand above the crowd. This can be a challenging propo-
sition, especially for developers moving from desktop or Rich Internet Application (RIA) development 
frameworks. To help developers learn the latest HTML5, Cascading Style Sheets Level 3 (CSS3), and 
JavaScript technologies, several developer colleagues and I built a sample application for demonstra-
tion at Microsoft’s MIX 11 conference. The application, called Account at a Glance, takes advantage 
of key web technologies and uses them to display brokerage account information to consumers. (See 
the end of this article for the code-download URL.)
The application was built in Q1 2011 by Dan Wahlin (client-side and server-side coding); Corey 
Schuman; Jarod Ferguson (client-side coding); and John Papa (Entity Framework Code First coding). 
John Papa, Giorgio Sardo, and Scott Guthrie also provided feedback and offered several key sugges-
tions and ideas that were incorporated into the application. Figure 1a shows the Account at a Glance 
application as it was first conceived on a whiteboard, and Figure 1b shows how it ended up after the 
project was completed.
Figure 1A: The Account at a Glance application as originally conceived
Chapter 11: Build a jQuery  HTML5 Web Application:  The Account at a Glance App 
97
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Bookmarks. below is mainly to optimize PDF file with multiple String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; 'create optimizing options
create pdf bookmarks online; bookmarks pdf reader
C# PDF File Split Library: Split, seperate PDF into multiple files
Split PDF file by top level bookmarks. The following C# codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
how to bookmark a pdf document; excel pdf bookmarks
Figure 1B: The Account at a Glance application screen—final version
We built the Account at a Glance application to demonstrate how cutting-edge web technologies can 
be used together to build a dynamic application capable of displaying account information, video 
news, quotes and charts, market news, and more without the use of plug-ins. The app loads data 
dynamically, using AJAX technologies, into tiles that are displayed within the application. As tiles are 
dragged and dropped to different locations in the interface, data is re-rendered, depending upon the 
size of the tile that is targeted, as shown in Figures 2a and 2b (small, medium, and large tile sizes 
exist). This allows data to be displayed in several different ways and provides a means for customers to 
customize how account information is displayed by moving tiles around.
Figure 2A: Dragging a tile to a different area of the screen
98
Chapter 11: Build a jQuery HTML5 Web Application: The Account at a Glance App  
VB.NET PDF File Split Library: Split, seperate PDF into multiple
how to split a PDF file into multiple ones by PDF bookmarks or outlines. value for each index: 1 to (Page Count - 1). ' Create output PDF file path list
creating bookmarks in pdf from word; add bookmarks to pdf preview
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Bookmarks. below is mainly to optimize PDF file with multiple String outputFilePath = Program.RootPath + "\\" 3_optimized.pdf"; // create optimizing options
adding bookmarks to pdf; create bookmark in pdf automatically
Figure 2B: Automatic resizing of tiles on screen, via jQuery templates
The Account at a Glance application uses these technologies:
• HTML5 features 
 Modernizr: www.modernizr.com/
•HTML5 Boilerplate: html5boilerplate.com, tinyurl.com/5v22eo9 
jQuery along with several jQuery plug-ins: jquery.com
 jQuery Templates: http://api.jquery.com/category/plugins/templates
• Canvas: tinyurl.com/66kbj2n 
• Scalable Vector Graphics (SVG): www.w3.org/TR/SVG 
• CSS3: www.w3.org/TR/CSS/#css3
• JavaScript Object Notation (JSON) and AJAX technologies
• ASP.NET MVC 3: www.asp.net/mvc 
• ADO.NET Entity Framework 4.1 Code First: tinyurl.com/6g2dlef 
• Repository Pattern for data access: tinyurl.com/43xzpet 
• Unity IoC container: unity.codeplex.com 
• SQL Server 2008: tinyurl.com/2bev6tk 
• NuGet: nuget.org 
Chapter 11: Build a jQuery HTML5 Web Application: The Account at a Glance App   
99
C# Create PDF Library SDK to convert PDF from other file formats
Create multipage PDF from OpenOffice and CSV file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc.
editing bookmarks in pdf; how to add bookmarks to pdf files
VB.NET Create PDF Library SDK to convert PDF from other file
Create multipage PDF from OpenOffice and CSV file. Create and save editable PDF with a blank page, bookmarks, links, signatures, etc.
pdf bookmarks; create pdf bookmarks
This article provides an overview of the Account at a Glance application. Part 2 will provide details 
about the client-side technologies used, including HTML5 features such as jQuery templates, SVG, 
Canvas, and video.
The Account at a Glance Solution
The Account at a Glance application is comprised of a single solution with two projects. The first 
project is named AccountAtAGlance and uses the ASP.NET MVC 3 project template. The second 
project is named AccountAtAGlance.Model and is a Class Library project. Figure 3 shows the solution 
and project structure.
Figure 3: The Account at a Glance solution
The AccountAtAGlance project follows the standard ASP.NET MVC 3 folder structure. The Control-
lers folder contains the controller classes used in the application; the views are located in the Views 
folder. The Account at a Glance application relies heavily on client-side technologies such as jQuery, 
and the scripts used in the application can be found in the Scripts folder. Several jQuery plug-ins 
were used to create the application: jQuery UI, Flot (Canvas rendering), Raphael (SVG rendering), 
and DataTables. JSON data is exchanged between the client browser and server using ASP.NET MVC 
100
Chapter 11: Build a jQuery HTML5 Web Application: The Account at a Glance App  
.NET PDF SDK - Description of All PDF Processing Control Feastures
page navigation, zooming & rotation; Outlines, bookmarks, & thumbnail Create PDF from Jpeg images; Create PDF from CSV. to Jpeg images; More about PDF Conversion
acrobat split pdf bookmark; creating bookmarks in pdf documents
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
by C#.NET PDF to HTML converter toolkit SDK, preserves all the original anchors, links, bookmarks and font style that are included in target PDF document file.
bookmark a pdf file; how to add bookmarks to a pdf
actions and rendered using jQuery Templates that are dynamically loaded from the server. CSS is used 
heavily throughout the application. The .css files are located in the Content folder.
The AccountAtAGlance.Model project contains the application’s data-access functionality. The project 
contains the Code First classes that define the structure of model classes used throughout the applica-
tion and also a DbContext class named AccountAtAGlance.cs. The Repository folder contains data-
access classes that perform Create, Read, Update, and Delete (CRUD) operations on behalf of the 
application. LINQ technologies are used in the application to simplify the data-access code and pro-
vide filtering and sorting functionality. The application makes RESTful service calls to ASP.NET MVC 3 
actions that expose data and objects defined in the AccountAtAGlance.Model project. It also calls out 
to a Google financial service to retrieve stock quotes and simulates random market index quotes on a 
timed basis.
The next sections provide details on the data-access technologies and web framework used in the 
application.
Code First and the Repository Pattern
When we started building the Account at a Glance application, we used Entity Framework 4.0’s 
Model First option. However, Entity Framework Code First was about to be released, so we converted 
to that technology in the middle of the project (thanks to Scott Guthrie for the suggestion to go with 
Code First and John Papa for doing the conversion from Model First). If you’re new to Code First, 
Entity Framework 4.1 provides a Code First approach that shifts the focus to working with Plain Old 
CLR Objects (POCO), which keeps your data model classes nice and clean. To use Code First, install 
NuGet, then go to View, Other Windows, Package Manager Console and type the following com-
mand at the prompt, as shown in Figure 4:
Install-Package EntityFramework
Figure 4: Using the NuGet Package Manager Console to install Entity Framework 4.1 and Code First
POCOs are used to define entities used in the application. Figure 5 shows an example of the Bro-
kerageAccount POCO class, which defines several different properties as well as three navigation 
properties.
Chapter 11: Build a jQuery HTML5 Web Application: The Account at a Glance App   
101
Figure 5: The BrokerageAccount class
namespace AccountAtAGlance.Model 
public class BrokerageAccount 
public BrokerageAccount() 
Positions = new HashSet<Position>(); 
Orders = new HashSet<Order>(); 
// Primitive properties 
public int Id { get; set; } 
public string AccountNumber { get; set; } 
public string AccountTitle { get; set; } 
public decimal Total { get; set; } 
public decimal MarginBalance { get; set; } 
public bool IsRetirement { get; set; } 
public int CustomerId { get; set; } 
public decimal CashTotal { get; set; } 
public decimal PositionsTotal { get; set; } 
public int WatchListId { get; set; } 
// Navigation properties 
public ICollection<Position> Positions { get; set; } 
public ICollection<Order> Orders { get; set; } 
public WatchList WatchList { get; set; }  
}
}POCO classes defined in the application are used to automatically generate the database that the 
application uses. A class named AccountAtAGlance that derives from DbContext is used to query the 
database, as shown in Figure 6. This class is located in the AccountAtAGlance.Model project’s Reposi-
tory folder.
Figure 6: The AccountAtAGlance class, which is used to query the database
using System.Data.Entity; 
namespace AccountAtAGlance.Model.Repository 
public class AccountAtAGlance : DbContext 
public AccountAtAGlance() : base(“name=AccountAtAGlance”) { } 
public DbSet<BrokerageAccount> BrokerageAccounts { get; set; } 
public DbSet<Customer> Customers { get; set; } 
public DbSet<Exchange> Exchanges { get; set; } 
102
Chapter 11: Build a jQuery HTML5 Web Application: The Account at a Glance App  
public DbSet<MarketIndex> MarketIndexes { get; set; } 
public DbSet<Order> Orders { get; set; } 
public DbSet<OrderType> OrderTypes { get; set; } 
public DbSet<Position> Positions { get; set; } 
public DbSet<Security> Securities { get; set; } 
public DbSet<MutualFund> MutualFunds { get; set; } 
public DbSet<Stock> Stocks { get; set; } 
public DbSet<WatchList> WatchLists { get; set; } 
public int DeleteAccounts() 
//return base.Database.SqlCommand(“DeleteAccounts”); 
return base.Database.ExecuteSqlCommand(“DeleteAccounts”); 
public int DeleteSecuritiesAndExchanges() 
return base.Database. 
ExecuteSqlCommand(“DeleteSecuritiesAndExchanges”); 
protected override void OnModelCreating(DbModelBuilder modelBuilder) 
// base.OnModelCreating(modelBuilder);            
// inherited table types 
// Map these class names to the table names in the DB 
modelBuilder.Entity<Security>().ToTable(“Securities”); 
modelBuilder.Entity<Stock>().ToTable(“Securities_Stock”); 
modelBuilder.Entity<MutualFund>().ToTable(“Securities_MutualFund”); 
// Many to many resolver 
// Map the WatchList and Securities navigation property using  
// the WatchListSecurity Many-to-Many table. 
// To avoid a Cycle condition, WatchList has Securities,  
// but Security does not have WatchLists. 
modelBuilder.Entity<WatchList>().HasMany(w =>  
w.Securities).WithMany()  
.Map(map => map.ToTable(“WatchListSecurity”) 
.MapRightKey(“SecurityId”) 
.MapLeftKey(“WatchListId”)); 
}
The AccountAtAGlance class relies on the new fluent API to map some POCO classes to database 
tables, such as mapping Security to Securities and Stock to Securities_Stock. This is accomplished by 
overriding the OnModelCreating() method and defining the necessary mappings.
Chapter 11: Build a jQuery HTML5 Web Application: The Account at a Glance App   
103
Classes that follow the Repository Pattern are located in the Repository folder of the AccountAtA-
Glance.Model project. Several different classes are provided to handle various query functionality. 
Figure 7 shows a section of the AccountRepository class that handles querying customer account 
information. It uses the AccountAtAGlance DbContext class to perform the query.
Figure 7: The AccountRepository class, which uses DbContext to query the database for customer 
account information
namespace AccountAtAGlance.Model.Repository 
public class AccountRepository : RepositoryBase<AccountAtAGlance>,  
IAccountRepository 
public Customer GetCustomer(string custId) 
using (var context = DataContext) 
return context.Customers 
.Include(“BrokerageAccounts”) 
.Where(c => c.CustomerCode == custId).SingleOrDefault(); 
}
JSON and MVC Actions
I’m a big fan of ASP.NET MVC because it provides complete control over the HTML returned from 
the server, provides a solid architecture and well-defined conventions, and allows JSON objects to be 
returned from the server easily with minimal code (to name just a few of MVC’s great features). Most 
of the Account at a Glance application’s functionality occurs on the client side with JavaScript, but the 
application still needs to get data from the server. We initially planned on using Windows Communi-
cation Foundation (WCF) REST features to serve up JSON, but because we were using ASP.NET MVC 
as the application framework, we decided to use controller actions instead.
Using controller actions provides a simple way to return custom JSON objects back to the client 
where they can be manipulated using jQuery templates. jQuery APIs such as getJSON() are used to 
call the ASP.NET MVC actions. (I’ll provide additional details in the next article.) Figure 8 shows an 
example of actions that return account details and security quotes.
Figure 8: Serializing CLR objects into JSON using the Json() method available in controller classes
public ActionResult GetAccount(string acctNumber) 
return Json(_AccountRepository.GetAccount(acctNumber),  
JsonRequestBehavior.AllowGet); 
public ActionResult GetQuote(string symbol) 
104
Chapter 11: Build a jQuery HTML5 Web Application: The Account at a Glance App  
return Json(_SecurityRepository.GetSecurity(symbol),  
JsonRequestBehavior.AllowGet); 
}
Each action calls into the appropriate repository class, which handles retrieval of data from the 
database. Once the data is retrieved and mapped to model objects, the objects are serialized to 
JSON using the built-in Json() method in ASP.NET MVC controllers and passed back to the client for 
processing.
An Integrated Approach
The Account at a Glance application provides a robust example of how different technologies can 
integrate together from server side to client side. In this first article you’ve seen how the application 
solution is structured and the different technologies that were used on the server side, including Entity 
Framework Code First and ASP.NET MVC. In the next article I’ll provide more details about the client-
side coding and scripts that were used, including patterns that the team used to structure JavaScript 
code. Until then, you can download the application code at the URL below if you’d like to explore it 
in more detail.
Download the Account at a Glance application at 
dl.dropbox.com/u/6037348/AccountAtAGlance.zip.
Chapter 11: Build a jQuery HTML5 Web Application: The Account at a Glance App   
105
Documents you may be interested
Documents you may be interested