selectpdf c# : Editing bookmarks in pdf application control tool html web page windows online dive_into_html511-part1525

ASK PROFESSOR MARKUP
ASK PROFESSOR MARKUP
Q: Why did you start 
x
and 
y
at 
0 . 5
? Why
not 
0
?
A: Imagine ea pixel as a large square. e
whole-number coordinates (0, 1, 2…) are the
edges of the squares. If you draw a one-unit-
wide line between whole-number coordinates,
it will overlap opposite sides of the pixel
square, and the resulting line will be drawn
two pixels wide. To draw a line that is only
one pixel wide, you need to shi the
coordinates by 0.5 perpendicular to the line's
direction.
For example, if you try to draw a line from
(1,  0 0 )
to 
(1,  3 3 )
, the browser will draw a
line covering 0.5 screen pixels on either side of
x= 1
. e screen can’t display half a pixel, so it
expands the line to cover a total of two pixels:
diveintohtml5.org
LET’S CALL IT A DRAW(ING SURFACE)
Editing bookmarks in 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
how to add bookmarks to a pdf; how to add bookmarks to pdf files
Editing bookmarks in 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
create pdf bookmarks from word; export excel to pdf with bookmarks
But, if you try to draw a line from 
(1. 5 ,  0 0 )
to 
(1. 5 ,  3 3 )
, the browser will draw a line
covering 0.5 screen pixels on either side of
x= 1. 5
, whi results in a true 1-pixel-wide
line:
anks to Jason Johnson for providing these
diagrams.
diveintohtml5.org
LET’S CALL IT A DRAW(ING SURFACE)
How to C#: Basic SDK Concept of XDoc.PDF for .NET
XDoc.PDF for .NET supports editing PDF document metadata, like Title, Subject, Author, Creator, Producer This class describes bookmarks in a PDF document.
create bookmarks in pdf reader; adding bookmarks to a pdf
VB.NET PDF: Basic SDK Concept of XDoc.PDF
XDoc.PDF for .NET supports editing PDF document metadata, like Title, Subject, Author, Creator, Producer This class describes bookmarks in a PDF document.
excel hyperlink to pdf bookmark; creating bookmarks pdf files
c o n t e xt . m o v e To (60 ,  0 0 );
c o n t e xt . l i n e To (60 ,  15 5 3 );
c o n t e xt . m o v e To (60 ,  173 3 );
c o n t e xt . l i n e To (60 ,  3 3 75 );
c o n t e xt . m o v e To (65 ,  3 3 70 );
c o n t e xt . l i n e To (60 ,  3 3 75 );
c o n t e xt . l i n e To (5 5 ,  3 3 70 );
Now let’s draw the horizontal arrow. All the lines and curves on a path are drawn in the
same color (or gradient — yes, we’ll get to those soon). We want to draw the arrow in a
different color ink — bla instead of off-white — so we need to start a new path.
A new path 
A new path 
c o n t e xt . be g i n Pa t h ();
c o n t e xt . m o v e To (0 ,  40 0 );
c o n t e xt . l i n e To (2 40 ,  40 0 );
c o n t e xt . m o v e To (2 60 ,  40 0 );
c o n t e xt . l i n e To (5 0 0 ,  40 0 );
c o n t e xt . m o v e To (495 ,  3 3 5 );
c o n t e xt . l i n e To (5 0 0 ,  40 0 );
c o n t e xt . l i n e To (495 ,  45 5 );
e vertical arrow looks mu the same. Since the vertical arrow is the same color as the
horizontal arrow, we do not need to start another new path. e two arrows will be part of
the same path.
 
Not a new path
Not a new path
I said these arrows were going to be bla, but the 
s t r o ke St y l l e
is still off-white. (e
fi l l St y l l e
and 
s t r o ke St y l l e
don’t get reset when you start a new path.) at’s OK,
because we’ve just run a series of “pencil” methods. But before we draw it for real, in “ink,”
we need to set the 
s t r o ke St y l l e
to bla. Otherwise, these two arrows will be off-white, and
we’ll hardly be able to see them! e following lines ange the color to bla and draw the
lines on the canvas:
c o n t e xt . s t r o ke St y l l e  =  " " #0 0 0 0 " ;
c o n t e xt . s t r o ke ();
diveintohtml5.org
LET’S CALL IT A DRAW(ING SURFACE)
.NET PDF SDK - Description of All PDF Processing Control Feastures
Viewing, editing, converting, processing, extracting, annotating Outstanding rendering of PDF documents; Full Outlines, bookmarks, & thumbnail display; Integrated
adding bookmarks to pdf reader; bookmark pdf reader
.NET PDF SDK | Read & Processing PDF files
applications with advanced document viewing, editing and clean extraction of text, hyperlinks, bookmarks and metadata; Annotate and redact in PDF documents; Fully
convert word to pdf with bookmarks; creating bookmarks in a pdf document
is is the result:
TEXT
TEXT
IE
**
FIREFOX
FIREFOX
SAFARI
SAFARI
CHROME
CHROME
OPERA
OPERA
IPHONE
IPHONE
ANDROID
ANDROID
7.0+
3.0+
3.0+
3.0+
10.0+
1.0+
1.0+
* Internet Explorer support requires the third-party 
explorercanvas library.
† Mozilla Firefox 3.0 support requires a compatibility shim.
In addition to drawing 
lines on a canvas, you can also draw text on a canvas. Unlike text on
the surrounding web page, there is no box model. at means none of the familiar CSS layout
teniques are available: no floats, no margins, no padding, no word wrapping. (Maybe you
think that’s a good thing!) You can set a few font aributes, then you pi a point on the
canvas and draw your text there.
e following font aributes are available on the 
drawing context:
fo n t
can be anything you would put in a CSS 
fo n t
rule. at includes font style, font
diveintohtml5.org
LET’S CALL IT A DRAW(ING SURFACE)
XDoc.Word for .NET, Advanced .NET Word Processing Features
Viewing, editing, converting, processing, creating, annotating and zooming & rotation; Outlines, bookmarks, & thumbnail Create Word from PDF; Create Word from
export pdf bookmarks; creating bookmarks in pdf documents
PDF Image Viewer| What is PDF
such as text extraction, hyperlinks, bookmarks and metadata with PDF Convertor or .NET PDF Convertor SDK Viewing, Editing and Conversion. RasterEdge .NET Imaging
pdf bookmark; add bookmark to pdf reader
c o n t e xt . fo n t  =  " " bo l d  12 2 px s s a n s -s e r i f" ;
variant, font weight, font size, line height, and font family.
t e e xt Al i g n
controls text alignment. It is similar (but not identical) to a  CSS 
t e xt -
a l l i g n
rule. Possible values are 
s t t a r t
e n d
l e ft
r i g h t
, and 
c e n t e r
.
t e e xt B a s e l i n e
controls where the text is drawn relative to the starting point. Possible
values are 
t o p
h a n g i n g
m i d d l l e
a l ph a be t i c
i d e o g r a ph i i c
, or 
bo t t o m
.
t e xt B B a a s e l i n e
is triy, because text is triy (English text isn’t, but you can draw any
Unicode aracter you like on a canvas, and Unicode is triy). e HTML5 specification
explains the different text baselines:
e top of the em square is roughly at the top of the glyphs in a font, the hanging
baseline is where some glyphs like आ are anored, the middle is half-way
between the top of the em square and the boom of the em square, the alphabetic
baseline is where aracters like Á, ÿ, f, and Ω are anored, the ideographic
baseline is where glyphs like 私 私  and 達 達  are anored, and the boom of the em
square is roughly at the boom of the glyphs in a font. e top and boom of the
bounding box can be far from these baselines, due to glyphs extending far outside
the em square.
For simple alphabets like English, you can safely sti with 
t o p
m i d d d d l e
, or 
bo t t o m
for the
t e xt B B a a s e l i n e
property.
Let’s draw some text! Text drawn inside the canvas inherits the font size and style of the
< c a n v v a a s >
element itself, but you can override this by seing the 
fo n n t
property on the
drawing context.
 
Change the font
Change the font
diveintohtml5.org
LET’S CALL IT A DRAW(ING SURFACE)
How to C#: Basic SDK Concept of XDoc.PowerPoint
Conversely, conversion from PDF to PowerPoint (.PPTX of PowerPoint document, including editing PowerPoint url This class describes bookmarks in a PowerPoint
create bookmarks in pdf from excel; creating bookmarks pdf
How to C#: Basic SDK Concept of XDoc.Word
Conversely, conversion from PDF to Word (.docx) is also hyperlink of Word document, including editing Word url This class describes bookmarks in a Word document
bookmark pdf documents; add bookmarks to pdf
c o n t e xt . fi l l Te xt (" x" ,  2 2 48,  43 3 );
c o n t e xt . fi l l Te xt (" y " " ,  5 5 8,  165 5 );
c o n t e xt . fo n t  =  " " bo l d  12 2 px s s a n s -s e r i f" ;
c o n t e xt . fi l l Te xt (" x" ,  2 2 48,  43 3 );
c o n t e xt . fi l l Te xt (" y " " ,  5 5 8,  165 5 );
style
style
e 
fi l l l Te xt ()
method draws the actual text.
 
Draw the text
Draw the text
ASK PROFESSOR MARKUP
ASK PROFESSOR MARKUP
Q: Can I use relative font sizes to draw text on
a canvas?
A: Yes. Like every other HTML element on
your page, the 
< c a n v a s >
element itself has a
computed font size based on your page’s CSS
rules. If you set the 
c o n t e e xt t . fo n t
property
to a relative font size like 
1. 5 e m
or 
15 0 %
,
your browser multiplies this by the computed
font size of the 
< c a n v a s >
element itself.
For the text in the upper-le corner, let’s say I want the top of the text to be at 
y= 5
. But I’m
lazy — I don’t want to measure the height of the text and calculate the baseline. Instead, I can
set 
t e e xt t B a s e l i n e
to 
t o p
and pass in the upper-le coordinate of the text’s bounding box.
c o n t e xt . t e xt B a s e l i n e  =  " " t o p" ;
c o n t e xt . fi l l Te xt (" ( 0  , 0  )" " ,  
8,  5 5 );
Now for the text in the lower-right corner. Let’s say I want the boom-right corner of the
text to be at coordinates 
(492 , 3 3 70 )
— just a few pixels away from the boom-right corner
of the canvas — but I don’t want to measure the width or height of the text. I can set
t e xt Al i g n
to 
r i g h t
and 
t e xt B a s e e l l i n e
to 
bo t t o m
, then call 
fi l l l l Te xt ()
with the
boom-right coordinates of the text’s bounding box.
diveintohtml5.org
LET’S CALL IT A DRAW(ING SURFACE)
c o n t e xt . fi l l Re c t (0 ,  0 0 ,  3 3 ,  3 3 );
c o n t e xt . fi l l Re c t (497,  3 3 72 2 ,  3 3 ,  3 3 );
c o n t e xt . t e xt Al i g n  =  " " r i i g g h t " ;
c o n t e xt . t e xt B a s e l i n e  =  " " bo t t o m " ;
c o n t e xt . fi l l Te xt (" ( 5 5 0 0  ,  3 3 75  )" " ,  
492 ,  3 3 70 0 );
And this is the result:
Oops! We forgot the dots in the corners. We’ll see how to draw circles a lile later. For now,
I’ll eat a lile and 
draw them as rectangles.
 
Draw two “dots”
Draw two “dots”
And that’s all she wrote! Here is the final product:
diveintohtml5.org
LET’S CALL IT A DRAW(ING SURFACE)
GRADIENTS
GRADIENTS
IE
**
FIREFOX
FIREFOX SAFARI
SAFARI CHROME
CHROME OPERA
OPERA IPHONE
IPHONE ANDROID
ANDROID
linear gradients
7.0+
3.0+
3.0+
3.0+
10.0+
1.0+
1.0+
radial gradients
·
3.0+
3.0+
3.0+
10.0+
1.0+
1.0+
* Internet Explorer support requires the third-party 
explorercanvas library.
Earlier in this apter, you learned how to draw 
a rectangle filled with a solid color, then 
a
line stroked with a solid color. But shapes and lines aren’t limited to solid colors. You can do
all kinds of magic with gradients. Let’s look at an example.
diveintohtml5.org
LET’S CALL IT A DRAW(ING SURFACE)
e markup looks the same as any other canvas.
< c a n v a s  i i d = " d "  w w i d t h = " 3 3 0 0 0 "  h h e i g h t = " 2 2 5 " > < / c a n v v a a s >
First, we need to find the 
< c a n v a s >
element and its drawing context.
v a r  d d _ c a n v a s  =  d d o c u m e n t t . . g e t E l e m e n t B y Id d (" d " );
v a r  c c o n t e xt  =  d d _ c a n v a s . . g g e t Co n t e xt (" 2 d " );
Once we have the drawing context, we can start to define a gradient. A gradient is a smooth
transition between two or more colors. e canvas drawing context supports two types of
gradients:
1. 
c r r e a t e Li n e a r Gr a d i e n t (x0 ,  y 0 0 ,  x1,  y 1)
paints along a line from (x0, y0) to (x1,
y1).
2. 
c r r e a t e Ra d i a l Gr a d i e n t (x0 ,  y 0 0 ,  r r 0 ,  x1,  y 1,  r r 1)
paints along a cone between
two circles. e first three parameters represent the start circle, with origin (x0, y0) and
radius r0. e last three parameters represent the end circle, with origin (x1, y1) and
radius r1.
Let’s make a linear gradient. Gradients can be any size, but I’ll make this gradient be 300
pixels wide, like the canvas.
Create a gradient object 
Create a gradient object 
v a r  m m y _ _ g r a d i e n t  =  
c o n t e e xt t . c r e a t e Li n e a r Gr a d i e n t t (0 0 ,  0 0 ,  3 3 0 0 ,  0 0 );
diveintohtml5.org
LET’S CALL IT A DRAW(ING SURFACE)
Because the 
y
values (the 2
ND
and 4
TH
parameters) are both 0, this gradient will shade evenly
from le to right.
Once we have a gradient object, we can define the gradient’s colors. A gradient has two or
more color stops. Color stops can be anywhere along the gradient. To add a color stop, you
need to specify its position along the gradient. Gradient positions can be anywhere between 0
to 1.
Let’s define a gradient that shades from bla to white.
m y _ _ g r a d i e n t . a d d Co l o r St o o p(0 0 ,  " " bl a c k" );
m y _ _ g r a d i e n t . a d d Co l o r St o o p(1,  " " w h i t e " );
Defining a gradient doesn’t draw anything on the canvas. It’s just an object tued away in
memory somewhere. To draw a gradient, you set your 
fi l l St y l l e
to the gradient and draw
a shape, like a rectangle or a line.
Fill style is a gradient 
Fill style is a gradient 
c o n t e xt . fi l l St y l l e  =  m m y _ _ g g r a d i e n t ;
c o n t e xt . fi l l Re c t (0 ,  0 0 ,  3 3 0 0 ,  2 2 2 5 );
And this is the result:
Suppose you want a gradient that shades from top to boom. When you create the gradient
object, keep the 
x
values (1
ST
and 3
RD
parameters) constant, and make the 
y
values (2
ND
and
4
TH
parameters) range from 0 to the height of the canvas.
diveintohtml5.org
LET’S CALL IT A DRAW(ING SURFACE)
Documents you may be interested
Documents you may be interested