selectpdf c# : How to add bookmarks on pdf Library software component asp.net winforms wpf mvc dive_into_html54-part1541

< ! D D O O C T Y Y P P E  h h t t m m l >
< h t t m m l >
< h e e a a d >
< m e e t t a  c c h h a r s e e t t = " u u t t f-8" >
< t i i t t l e > > D D i v e  In n t o  HT T ML5< /t t i i t l e e >
< s c c r r i p t  s s r c = = " " m o d d e e r n i i zr r .m i i n n .js s " " > < /s s c c r i p p t t >
< /h h e e a d >
< bo o d d y>
...
< /bo d y>
< /h h t t m l >
MODERNIZR, AN HTML5 DETECTION
MODERNIZR, AN HTML5 DETECTION
LIBRARY
LIBRARY
Modernizr is an open source, MIT-licensed JavaScript library that detects support for many
HTML5 
&
CSS3 features. At the time of writing, the latest version is 1.5. You should always
use the latest version. To use it, include the following 
< s c r r i i p t >
element at the top of your
page.
 
It goes to
It goes to
your <head>
your <head>
Modernizr runs automatically. ere is no 
m o d e e r r n i zr _i n n i i t ()
function to call. When it runs,
it creates a global object called 
Mo d d e e r n i i zr
, that contains a set of Boolean properties for
ea feature it can detect. For example, if your browser supports the 
canvas API, the
Mo d e e r r n i zr .c a n n v v a s
property will be 
t r r u e
. If your browser does not support the canvas
API, the 
Mo d d e r n n i i zr .c c a a n v a a s
property will be 
fa l s s e
.
i f (Mo o d d e e r n i zr .c a a n n v a s s ) {
// l l e t 's  d d r a a w  s s o o m m e  s s h h a p e s s !
} e e l l s e  {
// n n o  n n a a t i v e  c c a n n v v a s  s s u p p o o r r t  a a v v a i l a a bl l e  :(
}
diveintohtml5.org
DETECTING HTML5 FEATURES
How to add bookmarks on pdf - 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
creating bookmarks in a pdf document; bookmarks pdf files
How to add bookmarks on pdf - 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
add bookmarks to pdf reader; export pdf bookmarks to text file
Your browser supports the canvas API.
CANVAS
CANVAS
HTML5 defines 
the <canvas> element as “a
resolution-dependent bitmap canvas that can be
used for rendering graphs, game graphics, or
other visual images on the fly.” A canvas is a
rectangle in your page where you can use
JavaScript to draw anything you want. HTML5
defines a set of functions (“the canvas API”) for
drawing shapes, defining paths, creating gradients,
and applying transformations.
Cheing for the canvas API uses 
detection tenique #2. If your browser supports the canvas
API, the DOM object it creates to represent a 
< c c a n v v a a s >
element will have a
g e t C C o o n t e e xt t ()
method. If your browser doesn’t support the canvas API, the DOM object it
creates for a 
< c a a n n v a s >
element will only have the set of common properties, but not
anything canvas-specific.
fu n n c c t i o o n  s s u p p p p o r t t s s _c a a n n v a s () {
r e t t u u r n  ! ! ! d o c c u u m e n n t t .c r r e e a t e E E l l e m e e n n t ('c c a a n v a a s s ').g e t C o o n n t e xt ;
}
is function starts by creating a dummy 
< c a n n v v a s >
element. But the element is never
aaed to your page, so no one will ever see it. It’s just floating in memory, going nowhere
and doing nothing, like a canoe on a lazy river.
r e t t u u r n  ! ! ! d o c c u u m e n n t t .
c r r e e a t e E E l l e m e e n n t ('c c a a n v a a s s ').g e t C o o n n t e xt ;
As soon as you create the dummy 
< c a n v v a a s >
element, you test for the presence of a
g e t C C o o n t e e xt t ()
method. is method will only exist if your browser supports the canvas
API.
r e t t u u r n  ! ! ! d o c c u u m e n n t t .c r r e e a t e E E l l e m e e n n t ('c c a a n v a a s s ').
g e t C o o n n t e xt t ;
diveintohtml5.org
DETECTING HTML5 FEATURES
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Bookmarks. Comments, forms and multimedia. Flatten visible layers. C#.NET DLLs: Compress PDF Document. Add necessary references: RasterEdge.Imaging.Basic.dll.
how to add bookmark in pdf; creating bookmarks in pdf files
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
document file. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. Also a preview
how to add a bookmark in pdf; create bookmark in pdf automatically
Finally, you use the double-negative tri to force the result to a Boolean value (
t r r u e
or
fa l s s e
).
r e t t u u r n  
! ! ! d d o o c c u m e n n t t .c r r e e a t e E E l l e m e e n n t ('c a n v a a s s ').g e t C o o n n t e xt ;
is function will detect support for most of the canvas API, including 
shapes
paths,
gradients 
&
paerns. It will not detect the third-party 
e xp p l l o r e r r c c a n v v a a s
library that
implements the canvas API in Microso Internet Explorer.
Instead of writing this function yourself, you can use 
Modernizr to detect support for the
canvas API.
check for canvas support
check for canvas support
i f (
Mo d d e e r n i zr .c a a n n v a s s ) {
// l l e t 's  d d r a a w  s s o o m m e  s s h h a p e s s !
} e e l l s e  {
// n n o  n n a a t i v e  c c a n n v v a s  s s u p p o o r r t  a a v v a i l a a bl l e  :(
}
ere is a separate test for the canvas text API, whi I will demonstrate next.
CANVAS TEXT
CANVAS TEXT
diveintohtml5.org
DETECTING HTML5 FEATURES
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Add necessary references: The following VB.NET codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
delete bookmarks pdf; export pdf bookmarks to text
C# PDF File Split Library: Split, seperate PDF into multiple files
Add necessary references: RasterEdge.Imaging.Basic.dll. 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; pdf export bookmarks
Your browser supports the canvas text API.
Even if your browser supports the
canvas API, it might not support
the canvas text API. e canvas
API grew over time, and the text
functions were added late in the
game. Some browsers shipped
with canvas support before the
text API was complete.
Cheing for the canvas text API
uses 
detection tenique #2. If
your browser supports the canvas
API, the DOM object it creates to represent a 
< c c a n v v a a s >
element will have the
g e t C C o o n t e e xt t ()
method. If your browser doesn’t support the canvas API, the DOM object it
creates for a 
< c a a n n v a s >
element will only have the set of common properties, but not
anything canvas-specific.
fu n n c c t i o o n  s s u p p p p o r t t s s _c a a n n v a s _t e xt t () {
i f (! ! s u u p p p o r t t s s _c a a n n v a s s ()) { r r e t t u u r n  fa a l s e e ; }
v a r  d d u m m m m y_c a a n n v a s  =  d d o o c u m e e n n t .c c r r e a t e e E E l e m m e e n t ('c a n v v a a s ');
v a r  c c o n n t t e xt  =  d d u u m m m y_c a n v a a s s .g e e t t C o n t t e e xt ('2d ');
r e t t u u r n  t t yp e o o f c c o o n n t e xt .fi l l l l T e xt  = = =  'fu u n n c c t i o o n n ';
}
e function starts by 
eing for canvas support, using the 
s u p p p p o r t t s s _c a a n n v a s ()
function
you just saw in the previous section. If your browser doesn’t support the canvas API, it
certainly won’t support the canvas text API!
i f (
! s u u p p p o r t t s s _c a a n n v a s s ()) { r r e t t u u r n  fa a l s e e ; }
Next, you create a dummy 
< c c a n v a a s s >
element and get its drawing context. is is guaranteed
to work, because the 
s u u p p p o r r t t s _c c a a n v a s s ()
function already eed that the
g e t C C o o n t e e xt t ()
method exists on all canvas objects.
v a r  d d u m m m m y_c a a n n v a s  =  d d o o c u m e e n n t .c c r r e a t e e E E l e m m e e n t ('c a n v v a a s ');
v a r  c c o n n t t e xt  =  
d u u m m m y_c a n v a a s s .g e e t t C o n t t e e xt ('2d ');
diveintohtml5.org
DETECTING HTML5 FEATURES
.NET PDF SDK - Description of All PDF Processing Control Feastures
Full page navigation, zooming & rotation; Outlines, bookmarks, & thumbnail display; PDF Text Write & Extract. Insert and add text to any page of PDF document with
adding bookmarks to a pdf; split pdf by bookmark
XDoc.Word for .NET, Advanced .NET Word Processing Features
page navigation, zooming & rotation; Outlines, bookmarks, & thumbnail Convert Word to PDF; Convert Word to HTML5; Convert Add and insert a blank page or multiple
edit pdf bookmarks; creating bookmarks pdf files
Finally, you e whether the drawing context has a 
fi l l l T T e xt t ()
function. If it does, the
canvas text API is available. Hooray!
r e t t u u r n  
t yp e o o f c c o o n n t e xt .fi l l l l T e xt  = = =  'fu u n n c c t i o o n n ';
Instead of writing this function yourself, you can use 
Modernizr to detect support for the
canvas text API.
check for canvas text support
check for canvas text support
i f (
Mo d d e e r n i zr .c a a n n v a s s t t e xt t ) {
// l l e t 's  d d r a a w  s s o o m m e  t t e e xt !
} e e l l s e  {
// n n o  n n a a t i v e  c c a n n v v a s  t t e xt  s s u p p p o o r t  a a v v a i l l a a bl e  :(
}
VIDEO
VIDEO
HTML5 defines a new element called 
< v v i i d e o >
for embedding video in your web pages.
Embedding video used to be impossible without third-party plugins su as Apple
iTime® or Adobe Flash®.
e 
< v v i d e e o o >
element is designed to be usable without any
detection scripts. You can specify multiple video files, and
browsers that support HTML5 video will oose one based
on what video formats they support. (See “A gentle
introduction to video encoding” 
part 1: container formats
and 
part 2: lossy video codecs to learn about different video
formats.)
diveintohtml5.org
DETECTING HTML5 FEATURES
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
converter toolkit SDK, preserves all the original anchors, links, bookmarks and font to Use C#.NET Demo Code to Convert PDF Document to Add necessary references
how to bookmark a pdf in reader; how to add bookmarks to pdf files
XDoc.PowerPoint for .NET, All Mature Features Introductions
navigation, zooming & rotation; Outlines, bookmarks, & thumbnail Convert PowerPoint to PDF; Convert PowerPoint to HTML5; Add a blank page or multiple pages to
how to create bookmark in pdf automatically; create bookmarks in pdf
Your browser does not support
HTML5 video. :(
Browsers that don’t support HTML5 video will ignore the
< v i d d e e o >
element completely, but you can use this to your
advantage and tell them to play video through a third-party
plugin instead. Kroc Camen has designed a solution called
Video for Everybody! that uses HTML5 video where
available, but falls ba to iTime or Flash in older
browsers. is solution uses no JavaScript whatsoever, and
it works in virtually every browser, including mobile
browsers.
If you want to do more with video than plop it on your page and play it, you’ll need to use
JavaScript. Cheing for video support uses 
detection tenique #2. If your browser supports
HTML5 video, the DOM object it creates to represent a 
< v v i i d e o o >
element will have a
c a n P P l l a yT T yp p e ()
method. If your browser doesn’t support HTML5 video, the DOM object it
creates for a 
< v i i d d e o >
element will have only the set of properties common to all elements.
You can e for video support using this function:
fu n n c c t i o o n  s s u p p p p o r t t s s _v i i d d e o () {
r e t t u u r n  ! ! ! d o c c u u m e n n t t .c r r e e a t e E E l l e m e e n n t ('v v i i d e o o ').c a a n P l a a yT T yp p e e ;
}
Instead of writing this function yourself, you can use 
Modernizr to detect support for HTML5
video.
check for 
check for HTML5
HTML5 video support
video support
i f (
Mo d d e e r n i zr .v i i d d e o o ) {
// l l e t 's  p p l a a y s s o o m m e  v v i i d e o !
} e e l l s e  {
// n n o  n n a a t i v e  v v i d d e e o  s s u u p p o r r t  a a v v a a i l a bl e  :(
// m m a ybe  c c h e e c c k fo o r  Qu u i c kT T i i m e  o o r  Fl l a a s h  i i n s t t e e a d
}
In 
the Video apter, I’ll explain another solution that uses these detection teniques to
convert 
< v i i d d e o >
elements to Flash-based video players, for the benefit of browsers that
don’t support HTML5 video.
diveintohtml5.org
DETECTING HTML5 FEATURES
Your browser does not support any
video formats. :(
ere is a separate test for detecting whi video formats your browser can play, whi I will
demonstrate next.
VIDEO FORMATS
VIDEO FORMATS
Video formats are like wrien languages. An English newspaper may convey the same
information as a Spanish newspaper, but if you can only read English, only one of them will
be useful to you! To play a video, your browser needs to understand the “language” in whi
the video was wrien.
e “language” of a video is called a “codec” — this is
the algorithm used to encode the video into a stream of
bits. ere are dozens of codecs in use all over the
world. Whi one should you use? e unfortunate
reality of HTML5 video is that browsers can’t agree on
a single codec. However, they seem to have narrowed it
down to two. One codec costs money (because of patent
licensing), but it works in 
Safari and on the iPhone.
(is one also works in Flash if you use a solution like
Video for Everybody!) e other codec is free and works
in open source browsers like 
Chromium and 
Mozilla
Firefox.
Cheing for video format support uses 
detection tenique #3. If your browser supports
HTML5 video, the DOM object it creates to represent a 
< v v i i d e o o >
element will have a
c a n P P l l a yT T yp p e ()
method. is method will tell you whether the browser supports a
particular video format.
is function es for the patent-encumbered format supported by Macs and iPhones.
fu n n c c t i o o n  s s u p p p p o r t t s s _h 264_ba a s s e l i i n n e _v i i d d e o () {
diveintohtml5.org
DETECTING HTML5 FEATURES
i f (! ! s u u p p p o r t t s s _v i i d d e o ()) { r r e t u u r r n  fa a l l s e ; }
v a r  v  =  d d o c u u m m e n t t .c c r e e a a t e E l l e e m e n n t t (" v i i d d e o " " );
r e t t u u r n  v v .c a n n P P l a yT yp e e ('v v i d d e e o /m m p p 4; c c o o d e c c s s = " a a v v c 1.42E 01E ,
m p 4a .40.2" ');
}
e function starts by 
eing for HTML5 video support, using the 
s u u p p p o r r t t s _v v i i d e o ()
function you just saw in the previous section. If your browser doesn’t support HTML5 video,
it certainly won’t support any video formats!
i f (
! s u u p p p o r t t s s _v i i d d e o ()) { r r e t u u r r n  fa a l s e ; }
en the function creates a dummy 
< v i d d e e o >
element (but doesn’t aa it to the page, so it
won’t be visible) and calls the 
c a n n P P l a yT T yp p e ()
method. is method is guaranteed to be
there, because the 
s u p p p o o r t s s _v v i d d e e o ()
function just eed for it.
v a r  
 =  d d o c c u u m e n t t .c c r e e a a t e E l l e e m e n n t t (" v v i i d e o " " );
A “video format” is really a combination of different things. In tenical terms, you’re asking
the browser whether it can play H.264 Baseline video and AAC LC audio in an MPEG-4
container. (I’ll explain what all that means in 
the Video apter. You might also be interested
in reading 
A gentle introduction to video encoding.)
r e t t u u r n  v v .c a n n P P l a yT yp e e ('
v i d d e e o /m m p p 4; c c o o d e c c s s = " a a v v c 1.42E 01E , m m p p 4a a .40.2"
');
e 
c a a n P l l a a yT yp p e e ()
function doesn’t return 
t r r u e
or 
fa l l s s e
. In recognition of how
complex video formats are, the function returns a string:
" p r o o ba a bl y"
if the browser is fairly confident it can play this format
" m a ybe "
if the browser thinks it might be able to play this format
" "
(an empty string) if the browser is certain it can’t play this format
is second function es for the open video format supported by Mozilla Firefox and other
open source browsers. e process is exactly the same; the only difference is the string you
pass in to the 
c a a n n P l a yT yp e e ()
function. In tenical terms, you’re asking the browser
diveintohtml5.org
DETECTING HTML5 FEATURES
whether it can play eora video and Vorbis audio in an Ogg container.
fu n n c c t i o o n  s s u p p p p o r t t s s _o g g g g _t h e e o o r a _v i d e o o () {
i f (! ! s u u p p p o r t t s s _v i i d d e o ()) { r r e t u u r r n  fa a l l s e ; }
v a r  v  =  d d o c u u m m e n t t .c c r e e a a t e E l l e e m e n n t t (" v i i d d e o " " );
r e t t u u r n  v v .c a n n P P l a yT yp e e (
'v i d d e e o /o o g g g ; c c o o d e c c s s = " t t h h e o r a a , v v o o r r bi s " " ');
}
Finally, 
WebM is a newly open-sourced (and non-patent-encumbered) video codec that will be
included in the next version of major browsers, including Chrome, 
Firefox, and 
Opera. You
can use the same tenique to detect support for open WebM video.
fu n n c c t i o o n  s s u p p p p o r t t s s _w e e bm m _v i i d d e o () {
i f (! ! s u u p p p o r t t s s _v i i d d e o ()) { r r e t u u r r n  fa a l l s e ; }
v a r  v  =  d d o c u u m m e n t t .c c r e e a a t e E l l e e m e n n t t (" v i i d d e o " " );
r e t t u u r n  v v .c a n n P P l a yT yp e e (
'v i d d e e o /w w e e bm ; c c o d e e c c s = " " v v p 8, v v o r bi s " ');
}
Instead of writing this function yourself, you can use 
Modernizr (1.5 or later) to detect support
for different HTML5 video formats.
check for 
check for HTML5
HTML5 video formats
video formats
i f (Mo o d d e e r n i zr .v i i d d e o ) {
// l l e t 's  p p l a a y s s o o m m e  v v i i d e o !  bu u t  w w h a t  ki i n n d d ?
i f (
Mo d d e e r n i zr .v i i d d e o .w e bm m ) {
// t t r y We e bM
} e e l l s e  i i f (
Mo d e r r n n i zr r .v v i d e e o o .o g g g ) {
// t t r y O O g g  T T h h e o r r a  + Vo o r bi i s  i i n  a a n  O O g g g  c c o o n t a a i i n e r
} e e l l s e  i i f (
Mo d e r r n n i zr r .v v i d e e o o .h 264){
// t t r y H.264 v v i d d e e o  + AAC  a a u d i i o  i i n  a a n  MP P 4 c c o o n t a i i n n e r
}
}
diveintohtml5.org
DETECTING HTML5 FEATURES
Your browser does
not support HTML5
storage. :(
LOCAL STORAGE
LOCAL STORAGE
HTML5 storage provides a way for web sites to store information on
your computer and retrieve it later. e concept is similar to cookies,
but it’s designed for larger quantities of information. Cookies are
limited in size, and your browser sends them ba to the web server
every time it requests a new page (whi takes extra time and precious
bandwidth). HTML5 storage stays on your computer, and web sites can
access it with JavaScript aer the page is loaded.
ASK PROFESSOR MARKUP
ASK PROFESSOR MARKUP
Q: Is local storage really part of HTML5? Why
is it in a separate specification?
A: e short answer is yes, local storage is part
of HTML5. e slightly longer answer is that
local storage used to be part of the main
HTML5 specification, but it was split out into a
separate specification because some people in
the HTML5 Working Group complained that
HTML5 was too big. If that sounds like slicing
a pie into more pieces to reduce the total
diveintohtml5.org
DETECTING HTML5 FEATURES
Documents you may be interested
Documents you may be interested