itextsharp add annotation to existing pdf c# : Add links to pdf file application Library utility html .net winforms visual studio 1485-part1772

Of the examples I just gave, only the first (
rel="stylesheet"
) is a link to an external
resource. The rest are hyperlinks to other documents. You may wish to follow those
links, or you may not, but they’re not required in order to view the current page.
Most often, link relations are seen on 
<link>
elements within the 
<head>
of a page. Some
link relations can also be used on 
<a>
elements, but this is uncommon even when al-
lowed. HTML5 also allows some relations on 
<area>
elements, but this is even less
common. (HTML 4 did not allow a 
rel
attribute on 
<area>
elements.) See the full chart
of link relations to check where you can use specific 
rel
values.
Ask Professor Markup
Q: Can I make up my own link relations?
A: There seems to be an infinite supply of ideas for new link relations. In an attempt to
prevent people from just making stuff up, the WHAT Working Group maintains a
registry of proposed 
rel
values and defines the process for getting them accepted.
rel = stylesheet
Let’s look at the first link relation in our example page:
<link rel="stylesheet" href="style-original.css" type="text/css" />
This is the most frequently used link relation in the world (literally). 
<link rel="style
sheet">
is for pointing to CSS rules that are stored in a separate file. One small
optimization you can make in HTML5 is to drop the 
type
attribute. There’s only one
stylesheet language for the Web, CSS, so that’s the default value for the 
type
attribute:
<link rel="stylesheet" href="style-original.css" />
This works in all browsers. (I suppose someone could invent a new stylesheet language
someday, but if that happens, you can just add the 
type
attribute back.)
rel = alternate
Continuing with our example page:
<link rel="alternate"
type="application/atom+xml"
title="My Weblog feed"
href="/feed/" />
This link relation is also quite common. 
<link rel="alternate">
, combined with either
the RSS or Atom media type in the 
type
attribute, enables something called “feed au-
todiscovery.” It allows syndicated feed readers like Google Reader to discover that a
site has a news feed of the latest articles. Most browsers also support feed autodiscovery
by displaying a special icon next to the URL. (Unlike with 
rel="stylesheet"
, the 
type
attribute matters here. Don’t drop it!)
The <head> Element | 37
Download from Library of Wow! eBook <www.wowebook.com>
Add links to pdf file - insert, remove PDF links in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Free C# example code is offered for users to edit PDF document hyperlink (url), like inserting and deleting
add link to pdf file; clickable pdf links
Add links to pdf file - VB.NET PDF url edit library: insert, remove PDF links in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Help to Insert a Hyperlink to Specified PDF Document Page
adding links to pdf in preview; add links to pdf document
The 
rel="alternate"
link relation has always been a strange hybrid of use cases, even
in HTML 4. In HTML5, its definition has been clarified and extended to more accu-
rately describe existing web content. As you just saw, using 
rel="alternate"
in con-
junction with 
type=application/atom+xml
indicates an Atom feed for the current page.
But you can also use 
rel="alternate"
in conjunction with other 
type
attributes to in-
dicate the same content in another format, like PDF.
HTML5 also puts to rest a long-standing confusion about how to link to translations 
of documents. HTML 4 says to use the 
lang
attribute in conjunction with 
rel="alter
nate"
to specify the language of the linked document, but this is incorrect. The HTML
4 Errata lists four outright errors in the HTML 4 spec (along with several editorial nits);
one of these outright errors is how to specify the language of a document linked with
rel="alternate"
. (The correct way, described in the HTML 4 Errata document and
now in HTML5, is to use the 
hreflang
attribute.) Unfortunately, these errata were never
reintegrated into the HTML 4 spec, because no one in the W3C HTML Working Group
was working on HTML anymore.
Other link relations in HTML5
rel="archives"
(http://bit.ly/clzlyG) “indicates that the referenced document describes a collection
of records, documents, or other materials of historical interest. A blog’s index page
could link to an index of the blog’s past posts with 
rel="archives"
.”
rel="author"
is used to link to information about the author of the page. This can be a 
mailto:
address, though it doesn’t have to be. It could simply link to a contact form or
“about the author” page.
rel="external"
(http://bit.ly/dBVO09) “indicates that the link is leading to a document that is not
part of the site that the current document forms a part of.” I believe it was first
popularized by WordPress, which uses it on links left by commenters.
rel="start"
rel="prev"
, and 
rel="next"
(http://www.w3.org/TR/html401/types.html#type-links) to define relations be-
tween pages that are part of a series (like chapters of a book, or even posts on a
blog). The only one that was ever used correctly was 
rel="next"
. People used
rel="previous"
instead of 
rel="prev"
; they used 
rel="begin"
and 
rel="first"
in-
stead of 
rel="start"
; they used 
rel="end"
instead of 
rel="last"
. Oh, and—all by
themselves—they made up 
rel="up"
to point to a “parent” page.
HTML5 includes 
rel="first"
, which was the most common variation of the dif-
ferent ways to say “first page in a series.” (
rel="start"
is a nonconforming syno-
nym, provided for backward compatibility.) It also includes 
rel="prev"
and
rel="next"
, just like HTML 4 (and supports 
rel="previous"
, for backward com-
38 | Chapter 3: What Does It All Mean?
Download from Library of Wow! eBook <www.wowebook.com>
C# PDF Convert to HTML SDK: Convert PDF to html files in C#.net
HTML converter toolkit SDK, preserves all the original anchors, links, bookmarks and to Use C#.NET Demo Code to Convert PDF Document to Add necessary references
add hyperlink pdf document; pdf link open in new window
C# Create PDF Library SDK to convert PDF from other file formats
PDF with a blank page, bookmarks, links, signatures, etc. metadata adding control, you can add some additional information to generated PDF file.
add link to pdf file; adding hyperlinks to a pdf
patibility), as well as 
rel="last"
(the last in a series, mirroring 
rel="first"
) and
rel="up"
.
The best way to think of 
rel="up"
is to look at your breadcrumb navigation (or at
least imagine it). Your home page is probably the first page in your breadcrumbs,
and the current page is at the tail end. 
rel="up"
points to the next-to-last page in
the breadcrumbs.
rel="icon"
(http://bit.ly/diAJUP) is the second most popular link relation, after 
rel="style
sheet"
. It is usually found together with 
shortcut
, like so:
<link rel="shortcut icon" href="/favicon.ico">
All major browsers support this usage to associate a small icon with the page.
Usually it’s displayed in the browser’s location bar next to the URL, or in the
browser tab, or both.
Also new in HTML5: the 
sizes
attribute can be used in conjunction with the
icon
relationship to indicate the size of the referenced icon.
rel="license"
(http://bit.ly/9n9Xfv was invented by the microformats community. It “indicates
that the referenced document provides the copyright license terms under which
the current document is provided.”
rel="nofollow"
(http://bit.ly/cGjSPi “indicates that the link is not endorsed by the original author
or publisher of the page, or that the link to the referenced document was included
primarily because of a commercial relationship between people affiliated with the
two pages.” It was invented by Google and standardized within the microformats
community. The thinking was that if “nofollow” links did not pass on PageRank,
spammers would give up trying to post spam comments on blogs. That didn’t
happen, but 
rel="nofollow"
persists. Many popular blogging systems default to
adding 
rel="nofollow"
to links added by commenters.
rel="noreferrer"
(http://bit.ly/cQMSJg)  “indicates that no referrer information is to be leaked when
following the link.” No shipping browser currently supports this, but support was
recently added to WebKit nightlies, so it will eventually show up in Safari, Google
Chrome, and other WebKit-based browsers. You can find a 
rel="noreferrer"
test
case at http://wearehugh.com/public/2009/04/rel-noreferrer.html.
rel="pingback"
(http://bit.ly/cIAGXB)  specifies the address of a “pingback” server. As explained
in the Pingback specification, “The pingback system is a way for a blog to be au-
tomatically notified when other websites link to it. [...] It enables reverse linking
—a way of going back up a chain of links rather than merely drilling down.” Blog-
ging systems, notably WordPress, implement the pingback mechanism to notify
authors that you have linked to them when creating a new blog post.
The <head> Element | 39
Download from Library of Wow! eBook <www.wowebook.com>
VB.NET PDF Convert to HTML SDK: Convert PDF to html files in vb.
Embed PDF hyperlinks to HTML links in VB.NET. Add necessary references: This professional .NET solution that is designed to convert PDF file to HTML web page
change link in pdf file; clickable pdf links
.NET PDF Document Viewing, Annotation, Conversion & Processing
Add, edit, delete links. Form Process. Fill in form data programmatically. Read form data from PDF form file. Add, Update, Delete form fields programmatically.
add links in pdf; adding hyperlinks to pdf
rel="prefetch"
(http://bit.ly/9o0nMS “indicates that preemptively fetching and caching the speci-
fied resource is likely to be beneficial, as it is highly likely that the user will require
this resource.” Search engines sometimes add 
<link rel="prefetch" href="<empha
sis>URL OF TOP SEARCH RESULT</emphasis>">
to the search results page if they feel
that the top result is wildly more popular than any other. For example: using Fire-
fox, search Google for CNN, view the page source, and search for the keyword
prefetch
. Mozilla Firefox is the only current browser that supports 
rel="prefetch"
.
rel="search"
(http://bit.ly/aApkaP “indicates that the referenced document provides an inter-
face specifically for searching the document and its related resources.” Specifically,
if you want 
rel="search"
to do anything useful, it should point to an Open
Search document that describes how a browser could construct a URL to search
the current site for a given keyword. OpenSearch (and 
rel="search"
links that point
to OpenSearch description documents) has been supported in Microsoft Internet
Explorer since Version 7 and in Mozilla Firefox since Version 2.
rel="sidebar"
(http://bit.ly/azTA9D)  “indicates that the referenced document, if retrieved, is in-
tended to be shown in a secondary browsing context (if possible), instead of in the
current browsing context.” What does that mean? In Opera and Mozilla Firefox,
it means “when I click this link, prompt the user to create a bookmark that, when
selected from the Bookmarks menu, opens the linked document in a browser side-
bar.” (Opera actually calls it the “panel” instead of the “sidebar.”) Internet Ex-
plorer, Safari, and Chrome ignore 
rel="sidebar"
and just treat it as a regular link.
You can find a 
rel="sidebar"
test case at http://wearehugh.com/public/2009/04/rel
-sidebar.html.
rel="tag"
(http://bit.ly/9bYlfa)  “indicates that the tag that the referenced document repre-
sents applies to the current document.” Marking up “tags” (category keywords)
with the 
rel
attribute was invented by Technorati to help in the categorization of
blog posts. Early blogs and tutorials thus referred to them as “Technorati tags.”
(You read that right: a commercial company convinced the entire world to add
metadata that made the company’s job easier. Nice work if you can get it!) The
syntax was later standardized within the microformats community, where it was
simply called 
rel="tag"
. Most blogging systems that allow associating categories,
keywords, or tags with individual posts will mark them up with 
rel="tag"
links.
Browsers do not do anything special with them; they’re really designed for search
engines to use as a signal of what the page is about.
40 | Chapter 3: What Does It All Mean?
Download from Library of Wow! eBook <www.wowebook.com>
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
the original text style (including font, size, color, links and boldness). Add necessary references This is a C# programming example for converting PDF to Word
add url link to pdf; pdf link to email
How to C#: Basic SDK Concept of XDoc.PDF for .NET
You may add PDF document protection functionality into your C# program. to edit hyperlink of PDF document, including editing PDF url links and quick
convert a word document to pdf with hyperlinks; active links in pdf
New Semantic Elements in HTML5
HTML5 is not just about making existing markup shorter (although it does a fair
amount of that). It also defines a number of new semantic elements. The following
elements are defined by the HTML5 specification:
<section>
The 
section
element represents a generic section of a document or application. A section, in this context, is
a thematic grouping of content, typically with a heading. Examples of sections would be chapters, the various
tabbed pages in a tabbed dialog box, or the numbered sections of a thesis. A website’s home page could be
split into different sections for the introduction, news items, and contact information.
<nav>
The 
nav
element represents a section of a page that links to other pages or to parts within the page: a section
with navigation links. Not all groups of links on a page need to be in a 
nav
element—only sections that consist
of major navigation blocks are appropriate for the 
nav
element. In particular, it is common for footers to have
a short list of links to various pages of a site, such as the terms of service, home page, and copyright page. The
footer
element alone is sufficient for such cases, without a 
nav
element.
<article>
The 
article
element represents a self-contained composition in a document, page, application, or site that
is intended to be independently distributable or reusable, e.g., in syndication. This could be a forum post, a
magazine or newspaper article, a blog entry, a user-submitted comment, an interactive widget or gadget, or
any other independent item of content.
<aside>
The 
aside
element represents a section of a page that consists of content that is tangentially related to the
content around the 
aside
element, and that could be considered separate from that content. Such sections
are often represented as sidebars in printed typography. The element can be used for typographical effects like
pull quotes or sidebars, for advertising, for groups of 
nav
elements, and for other content that is considered
separate from the main content of the page.
<hgroup>
The 
hgroup
element represents the heading of a section. The element is used to group a set of 
h1
h6
elements
when the heading has multiple levels, such as subheadings, alternative titles, or taglines.
<header>
The 
header
element represents a group of introductory or navigational aids. A 
header
element is usually
intended to contain the section’s heading (an 
h1
h6
element or an 
hgroup
element), but this is not required.
The 
header
element can also be used to wrap a section’s table of contents, a search form, or any relevant logos.
<footer>
The 
footer
element represents a footer for its nearest ancestor sectioning content or sectioning root element.
A footer typically contains information about its section such as who wrote it, links to related documents,
copyright data, and the like. Footers don’t necessarily have to appear at the end of a section, though they usually
do. When the 
footer
element contains entire sections, they represent appendixes, indexes, long colophons,
verbose license agreements, and other such content.
<time>
The 
time
element represents either a time on a 24-hour clock or a precise date in the proleptic Gregorian
calendar, optionally with a time and a timezone offset.
<mark>
The 
mark
element represents a run of text in one document marked or highlighted for reference purposes.
I know you’re anxious to start using these new elements, or you wouldn’t be reading
this chapter. But first we need to take a little detour.
New Semantic Elements in HTML5 | 41
Download from Library of Wow! eBook <www.wowebook.com>
Download from Library of Wow! eBook 
<www.wowebook.com>
VB.NET PDF: Basic SDK Concept of XDoc.PDF
You may add PDF document protection functionality into your VB.NET program. to edit hyperlink of PDF document, including editing PDF url links and quick
pdf link; adding hyperlinks to pdf documents
VB.NET Create PDF Library SDK to convert PDF from other file
save editable PDF with a blank page, bookmarks, links, signatures, etc. Add necessary references class programming, you can use specific APIs to create PDF file.
add hyperlink pdf; c# read pdf from url
A Long Digression into How Browsers Handle
Unknown Elements
Every browser has a master list of HTML elements that it supports. For example,
Mozilla Firefox’s list is stored in nsElementTable.cpp. Elements not in this list are
treated as “unknown elements.” There are two fundamental questions regarding un-
known elements:
How should the element be styled?
By default, 
<p>
has spacing on the top and bottom, 
<blockquote>
is indented with
a left margin, and 
<h1>
is displayed in a larger font.
What should the element’s DOM look like?
Mozilla’s nsElementTable.cpp includes information about what kinds of other el-
ements each element can contain. If you include markup like 
<p><p>
, the second
paragraph element implicitly closes the first one, so the elements end up as siblings,
not parent and child. But if you write 
<p><span>
, the 
span
does not close the para-
graph, because Firefox knows that 
<p>
is a block element that can contain the inline
element 
<span>
. So the 
<span>
ends up as a child of the 
<p>
in the DOM.
Different browsers answer these questions in different ways. (Shocking, I know.) Of
the major browsers, Microsoft Internet Explorer’s answer to both questions is the most
problematic.
The first question should be relatively simple to answer: don’t give any special styling
to unknown elements. Just let them inherit whatever CSS properties are in effect wher-
ever they appear on the page, and let the page author specify all styling with CSS.
Unfortunately, Internet Explorer (prior to Version 9) does not allow styling on un-
known elements. For example, if you had this markup:
<style type="text/css">
article { display: block; border: 1px solid red }
</style>
...
<article>
<h1>Welcome to Initech</h1>
<p>This is your <span>first day</span>.</p>
</article>
Internet Explorer (up to and including IE 8) will not put a red border around the article.
As I write this, Internet Explorer 9 is still in beta, but Microsoft has stated (and devel-
opers have verified) that Internet Explorer 9 will not have this problem.
The second problem is the DOM that browsers create when they encounter unknown
elements. Again, the most problematic browser is Internet Explorer. If IE doesn’t ex-
plicitly recognize the element name, it will insert the element into the DOM as an empty
node with no children. All the elements that you would expect to be direct children of
the unknown element will actually be inserted as siblings instead.
42 | Chapter 3: What Does It All Mean?
Download from Library of Wow! eBook <www.wowebook.com>
Here is some ASCII art to showcase the difference. This is the DOM that HTML5
dictates:
article
|
+--h1 (child of article)
 |
 +--text node "Welcome to Initech"
|
+--p (child of article, sibling of h1)
|
+--text node "This is your "
|
+--span
 |
 +--text node "first day"
|
+--text node "."
But this is the DOM that Internet Explorer actually creates:
article (no children)
h1 (sibling of article)
|
+--text node "Welcome to Initech"
p (sibling of h1)
|
+--text node "This is your "
|
+--span
 |
 +--text node "first day"
|
+--text node "."
There is a wondrous workaround for this problem. If you create a dummy 
<article>
element with JavaScript before you use it in your page, Internet Explorer will magically
recognize the 
<article>
element and let you style it with CSS. There is no need to ever
insert the dummy element into the DOM. Simply creating the element once (per page)
is enough to teach IE to style the element it doesn’t recognize. For example:
<html>
<head>
<style>
article { display: block; border: 1px solid red }
</style>
<script>document.createElement("article");</script>
</head>
<body>
<article>
<h1>Welcome to Initech</h1>
<p>This is your <span>first day</span>.</p>
</article>
</body>
</html>
A Long Digression into How Browsers Handle Unknown Elements | 43
Download from Library of Wow! eBook <www.wowebook.com>
This works in all versions of Internet Explorer, all the way back to IE 6! We can extend
this technique to create dummy copies of all the new HTML5 elements at once—again,
they’re never inserted into the DOM, so you’ll never see these dummy elements—and
then just start using them without having to worry too much about non-HTML5-
capable browsers.
Remy Sharp has done just that, with his aptly named “HTML5 enabling script”. The
script has gone through several revisions, but this is the basic idea:
<!--[if lt IE 9]>
<script>
var e = ("abbr,article,aside,audio,canvas,datalist,details," +
"figure,footer,header,hgroup,mark,menu,meter,nav,output," +
"progress,section,time,video").split(',');
for (var i = 0; i < e.length; i++) {
document.createElement(e[i]);
}
</script>
<![endif]-->
The 
<!--[if lt IE 9]>
and 
<![endif]-->
bits are conditional comments. Internet
Explorer interprets them like an 
if
statement: “if the current browser is a version of
Internet Explorer less than Version 9, then execute this block.” Every other browser
will treat the entire block as an HTML comment. The net result is that Internet Explorer
(up to and including Version 8) will execute this script, but other browsers will ignore
it altogether. This makes your page load faster in browsers that don’t need this hack.
The JavaScript code itself is relatively straightforward. The variable 
e
ends up as an
array of strings like 
"abbr"
"article"
"aside"
, and so on. Then we loop through this
array and create each of the named elements by calling 
document.createElement()
. But
since we ignore the return value, the elements are never inserted into the DOM. Still,
this is enough to get Internet Explorer to treat these elements the way we want them
to be treated when we actually use them later in the page.
That “later” bit is important. This script needs to be at the top of your page—preferably
in your 
<head>
element—not at the bottom. That way, Internet Explorer will execute
the script before it parses your tags and attributes. If you put this script at the bottom
of your page, it will be too late. Internet Explorer will have already misinterpreted your
markup and constructed the wrong DOM, and it won’t go back and adjust it just
because of this script.
Remy Sharp has “minified” this script and hosted it on Google Project Hosting. (In case
you were wondering, the script itself is open source and MIT-licensed, so you can use
it in any project.) If you like, you can even “hotlink” the script by pointing directly to
the hosted version, like this:
<head>
<meta charset="utf-8" />
<title>My Weblog</title>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
44 | Chapter 3: What Does It All Mean?
Download from Library of Wow! eBook <www.wowebook.com>
<![endif]-->
</head>
Now we’re ready to start using the new semantic elements in HTML5.
Headers
Let’s go back to our example page. Specifically, let’s look at the headers:
<div id="header">
<h1>My Weblog</h1>
<p class="tagline">A lot of effort went into making this effortless.</p>
</div>
...
<div class="entry">
<h2>Travel day</h2>
</div>
...
<div class="entry">
<h2>I'm going to Prague!</h2>
</div>
There is nothing wrong with this markup. If you like it, you can keep it. It is valid
HTML5. But HTML5 provides some additional semantic elements for headers and
sections.
First off, let’s get rid of that 
<div id="header">
. This is a very common pattern, but it
doesn’t mean anything. The 
div
element has no defined semantics, and the 
id
attribute
has no defined semantics. (User agents are not allowed to infer any meaning from the
value of the 
id
attribute.) You could change this to 
<div id="shazbot">
and it would
have the same semantic value, i.e., nothing.
HTML5 defines a 
<header>
element for this purpose. The HTML5 specification has a
number of real-world examples of using the 
<header>
element. Here is what it would
look like on our example page:
<header>
<h1>My Weblog</h1>
<p class="tagline">A lot of effort went into making this effortless.</p>
...
</header>
That’s good. It tells anyone who wants to know that this is a header. But what about
that tagline? Another common pattern, which up until now had no standard markup.
It’s a difficult thing to mark up. A tagline is like a subheading, but it’s “attached” to
the primary heading. That is, it’s a subheading that doesn’t create its own section.
Headers | 45
Download from Library of Wow! eBook <www.wowebook.com>
Header elements like 
<h1>
and 
<h2>
give your page structure. Taken together, they create
an outline that you can use to visualize (or navigate) your page. Screenreaders use
document outlines to help blind users navigate through your page. There are online
tools and browser extensions that can help you visualize your document’s outline.
In HTML 4, 
<h1>
<h6>
elements were the only way to create a document outline. The
outline on the example page looks like this:
My Weblog (h1)
|
+--Travel day (h2)
|
+--I'm going to Prague! (h2)
That’s fine, but it means that there’s no way to mark up the tagline “A lot of effort went
into making this effortless.” If we tried to mark it up as an 
<h2>
, it would add a phantom
node to the document outline:
My Weblog (h1)
|
+--A lot of effort went into making this effortless. (h2)
|
+--Travel day (h2)
|
+--I'm going to Prague! (h2)
But that’s not the structure of the document. The tagline does not represent a section;
it’s just a subheading.
Perhaps we could mark up the tagline as an 
<h2>
and mark up each article title as an
<h3>
? No, that’s even worse:
My Weblog (h1)
|
+--A lot of effort went into making this effortless. (h2)
|
+--Travel day (h3)
|
+--I'm going to Prague! (h3)
Now we still have a phantom node in our document outline, but it has “stolen” the
children that rightfully belong to the root node. And herein lies the problem: HTML 4
does not provide a way to mark up a subheading without adding it to the document
outline. No matter how we try to shift things around, “A lot of effort went into making
this effortless” is going to end up in that graph. And that’s why we ended up with
semantically meaningless markup like 
<p class="tagline">
.
HTML5 provides a solution for this: the 
<hgroup>
element. The 
<hgroup>
element acts
as a wrapper for two or more related heading elements. What does “related” mean? It
means that, taken together, they create a single node in the document outline.
Given this markup:
46 | Chapter 3: What Does It All Mean?
Download from Library of Wow! eBook <www.wowebook.com>
Documents you may be interested
Documents you may be interested