how to download pdf file from folder in asp.net c# : Bookmark pdf documents SDK control service wpf azure winforms dnn e12-a041-part1804

OnusingH
E
V
E
A
33
H
E
V
E
Ahandles the special comments as \begin{toimage}.. . \end{toimage},
while LAT
E
X ignore them (since they are comments!). As a consequence the
image file now includes the above definition of \Z. Then, it suffices to adopt
the following definition for \Z in the projetX.hva file:
\newcommand{\Z}{\begin{toimage}\Z\end{toimage}\imageflush}
This definition only appears absurd, it is not. It is intended for the consumption
of H
E
V
E
Aand occurrences of \Z result in outputting the following two lines into
the image file.
\Z
\clearpage
The
first
line
results
from
the
interpretation
of
\begin{toimage}\Z\end{toimage} while the second line results from
the interpretation of \imageflush.
As they stand, the two solutions for the \Z command problem are not com-
patible, since we now have two conflicting definitions for \Z in the projetX.hva
file. In practice we adopted a different solution, which we describe at the end
of the next section.
5.2. Included images
Many authors shipped images with their document. Authors use various
commands to include their images. For instance the document solide.tex uses
the \epsfbox command from the epsf package. To translate these Postscript
images into gif images automatically, it suffices to define \epsfbox in the
projetX.hva file.
\newcommand{\epsfbox}[1]
{\begin{toimage}\epsfbox{#1}\end{toimage}\imageflush}
Observe that this example is more involved than the previous one, since the
parameter #1 needs to be substituted. As a consequence of this substitution,
the solide.image.tex file includes the following lines:
\epsfbox{solide.eps}
\clearpage% page: 0
\epsfbox{deplacement.eps}
\clearpage% page: 1
Bookmark pdf documents - 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
bookmark pdf in preview; how to bookmark a pdf in reader
Bookmark pdf documents - 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 preview; copy bookmarks from one pdf to another
34
Luc Maranget
Some authors are attentive readers of the LAT
E
X“reference” books [6, 2], those
authors use the \includegraphics command from the graphics or graphicx
packages. H
E
V
E
Aimplements these packages, with definitions similar to the one
we just saw.
It is worth noticing that we finally solved the the problem of command \Z
in a general way by defining command \mathbb as follows:
\newcommand{\mathbb}[1]
{\begin{toimage}$\mathbb{#1}$\end{toimage}\imageflush}
6. A real difficulty
The one problem that frightened me the most was the absence of an H
E
V
E
A
implementation of the algorithm package.
One author shipped us a quite obsolete version of some algorithm package,
as an algorithm.sty file and used it to typeset a rather lengthy algorithm:
\begin{algorithm}{LLL$(b_1,b_2,\ldots,b_n)$}
\\ $b_1^*$\=$b_1$, $B_1$\=$<b_1^*,b_1^*>$
\\ \For $i$\=$2$ \To $n$ \Do
\> \\ $b_i^*$\=$b_i$
\\ \For $j$\=$1$ \To $i-1$ \Do
\> \\ $\mu_{i,j}$\=$<b_i,b_j^*>/B_j$,
$b_i^*$\=$b_i^*-\mu_{i,j}b_j^*$
\<
\\ $B_i$\=$<b_i^*,b_i^*>$
...
\end{algorithm}
The key commands are \\, which starts a new line, \>, which increases inden-
tation, and \< which decreases indentation. This can be confirmed by looking
at latex output, then one also discovers line numbers.
An easy solution would of course have been to insert \begin{toimage},
\end{toimage} and \imageflush somewhere. But, in some sense, this is giving
up and I was ready for a slightly more involved solution. Thus, I started writing
an algorithm.hva file. My first attempt was rather minimal.
\input{algorithm.sty}
C# PDF Print Library: Print PDF documents in C#.net, ASP.NET
view, Annotate,Convert documents online using ASPX. extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET
bookmarks pdf files; create bookmarks in pdf reader
VB.NET PDF Print Library: Print PDF documents in vb.net, ASP.NET
view, Annotate,Convert documents online using ASPX. extract, copy, paste, C#.NET rotate PDF pages, C#.NET search text in PDF, C#.NET edit PDF bookmark, C#.NET
excel print to pdf with bookmarks; create bookmarks pdf file
On using H
E
V
E
A
35
Doing so, I hoped that the algorithm package was written using more LAT
E
X
than T
E
X. Then I ran hevea, without even looking at algorithm.sty. To
my surprise, hevea did not crash and there was not even a single warning.
Unfortunately, the output (see figure 1) was almost right. Everything looks
Figure 1: A first attempt of adapting algorithm for H
E
V
E
A.
fine except line numbers, which should remain on the left instead of sticking to
algorithm lines.
Now, we have to look at algorithm.sty in order to understand where
line numbers are produced. One quickly finds an algorithmline LAT
E
Xstyle
counter (defined with \newcounter) and the following command:
\def\instr@{\refstepcounter{algorithmline}%
\item[{\algonumberstyle\thealgorithmline}\hfill]}
Obviously, the \instr@ command outputs the line numbers and the algorithm
environment must be some kind of list environment.
In fact, such list environments are nested in algorithm presentation. The
\> command starts a new list environment with augmented \labelspace
(space between label and item), while the \< closes it and restore \labelstep to
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
VB.NET Guide and Sample Codes to Merge PDF Documents in VB.NET Project. Batch merge PDF documents in Visual Basic .NET class program.
bookmarks pdf reader; export excel to pdf with bookmarks
C# PDF Library SDK to view, edit, convert, process PDF file for C#
quality PDF conversions to or from multiple supported images and documents. for editing PDF document hyperlink (url) and quick navigation link in PDF bookmark.
delete bookmarks pdf; create bookmarks in pdf from excel
36
Luc Maranget
its previous value (the indentation value is kept into a length register and such
registers are global). Moreover \instr@ is some internal name for \\ (i.e. there
is a definition \let\\=\instr@ somewhere). As a consequence \\ increases and
then typesets the line number, then LAT
E
Xinserts some \labelspace space, the
value of \labelspace being controlled by the nesting of list environment. All
this explains the above browser rendering, since H
E
V
E
Atranslates list environ-
ments into DL (description list) elements, ignoring \labelspace. Furthermore,
my browser systematically indents nested DL elements.
The package is cleanly written, with internal names for all commands. which
makes it easier to change the behavior of some commands by redefining them
after the package is loaded. First I decide to get rid of list environments,
because of the systematic indentation introduced by browsers. This can be
done by redefining the Blo@ck environment, which is the internal version of \>
and \<, the former being defined in algorithm.sty as \begin{Blo@ck} and
the latter as \end{Blo@ck}. The algorithm.hva file now is:
\input{algorithm.sty}
\renewenvironment{Blo@ck}{}{}
A test run of hevea now gives a lot of “\item outside a list-making
environment” warnings and line breaks and line numbers have disappeared
(see figure 2).
Figure 2: Suppressing list environments.
One easily restores them with the following redefinition of \instr@.
\renewcommand{\instr@}{\@br%
\refstepcounter{algorithmline}{\algonumberstyle\thealgorithmline}}
Command \@br is one of H
E
V
E
A internal commands: it outputs a <BR> tag,
which browsers interpret as a line break. Now, output (see figure 3) is almost
perfect, except for indentation which is missing.
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Thus, how to compress large-size existing PDF documents is quite useful for increasing the efficiency and productiveness of existing document management system
create bookmark in pdf automatically; add bookmark pdf
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
C#.NET PDF Library - Merge PDF Documents in C#.NET. Provide NET components for batch combining PDF documents in C#.NET class. Powerful
display bookmarks in pdf; bookmarks in pdf from word
On using H
E
V
E
A
37
Figure 3: Restoring line breaks and line numbers.
Restoring the indentation is more involved. H
E
V
E
A does not implement
length registers, but it features counters. A block@depth counter is introduced,
and the Blo@ck environment now keep track of its nesting level.
\newcounter{block@depth}
\renewenvironment{Blo@ck}
{\stepcounter{block@depth}}
{\addtocounter{block@depth}{-1}}
It remains, given an integer value d, to output some space quantity d times.
Let us first assume that such a command \do@indent exists, then we have our
final implementation of \instr@.
\renewcommand{\instr@}{\@br%
\refstepcounter{algorithmline}{\algonumberstyle\thealgorithmline}%
\@doindent{\value{block@depth}}}
To write \@doindent, I use another counter and the \whiledo command from
the ifthen package.
\usepackage{ifthen}%optional, hevea loads ifthen by default
\newcounter{algo@}
\newcommand{\algo@indent}{\hspace{10ex}}
\newcommand{\@doindent}[1]
{\setcounter{algo@}{#1}%
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Create fillable and editable PDF documents from Excel in Visual Basic .NET class. Change Excel hyperlink to PDF hyperlink and bookmark.
creating bookmarks in pdf from word; bookmark page in pdf
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Split PDF document by PDF bookmark and outlines in VB.NET. file to one-page PDF files or they can separate source PDF file to smaller PDF documents by every
add bookmarks pdf; split pdf by bookmark
38
Luc Maranget
\algo@indent%
\whiledo{\value{algo@} > 0}
{\algo@indent\addtocounter{algo@}{-1}}}
Figure 4: Final rendering of the algorithm.
Rendering (see figure 4) is almost perfect, except for line numbers which should
be right-justified, a minor problem. Overall, I was extremely lucky, implement-
ing packages for H
E
V
E
Ausually is more complicated. Here, the package performs
arather simple task, and above all it is written in LAT
E
X that H
E
V
E
Aunder-
stands. As a benefit of the approach of slightly altering the original package,
observe that we did not need to worry about other commands from this pack-
age, such as the algorithm environment itself (it shows a number and a title)
and the various keywords (e.g. \For, which gets translated to pour).
C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
watermark and save PDF text, image, table, hyperlink and bookmark to Word without losing format. Powerful components for batch converting PDF documents in C#
convert word pdf bookmarks; adding bookmarks to pdf document
On using H
E
V
E
A
39
7. Writing a paper and a screen version at the same
time
I authored one document and was aware that it was to be processed by
H
E
V
E
A. This enabled me to perform a few actions to make this translation
easier. The first action is to load the hevea package:
\usepackage{hevea}
The hevea package is a LAT
E
Xpackage (H
E
V
E
Aignores \usepackage{hevea}),
it provides definitions for constructs which H
E
V
E
Ais aware of by default.
7.1. Commands for hypertext links
The hevea package provides a innocuous definitions for the toimage environ-
ment and for the \imageflush command. But it also features a LAT
E
Xversion
of high-level hypertext commands. Figure 5 describes the most significant such
commands, with H
E
V
E
Aand LAT
E
Xbehavior.
Figure 5: High-level hypertext commands
Macro
H
E
V
E
A
LAT
E
X
\ahref{url}{text}
make text an hyperlink
to url
echo text
\footahref{url}{text}
make text an hyperlink
to url
make url a footnote to
text, url is shown in
typewriter font
\ahrefurl{url}
make url an hyperlink
to url.
typeset url in type-
writer font
\ahrefloc{label}{text}
make text an hyperlink
to label inside the doc-
ument
echo text
\aname{label}{text}
make text an hyperlink
target with label label
echo text
\mailto{address}
make
address
a
“mailto”
link
to
address
typeset address in type-
writer font
As a first example, defined the author as follows:
\author{Luc Maranget\footnote{\mailto{Luc.Maranget@inria.fr}}}
40
Luc Maranget
As a consequence, both html and paper versions of my document include a
footnote with my email address, furthermore the footnote is clickable.
Since I encouraged students to contact me by giving them my email address
in a footnote, I also wished to collect my answers to their questions on another
web page (in French, La page de suivi), and I wanted all students to be aware
of this page. This is a perfect job for the \footahref command:
Important, il existe une
\emph{page de \footahref{\base/suivi.html}{suivi}}.
The word suivi gets decorated with a footnote in the L
A
T
E
Xversion and with
an hyperlink in the html version. The command \base is defined somewhere
else as the URL where my text will finally be. It can be a good idea to define
it as “.” for H
E
V
E
Aand as an absolute URL for LAT
E
X.
I also intended to make both versions of the document to reference the
other. Here I need to have different texts in both versions. To that end, I used
the T
E
Xstyle \ifhevea command, which H
E
V
E
Asees as true and LAT
E
Xsees as
false (provided of course the hevea package is loaded).
\begin{center}\large
\ifhevea
Cet inonci en \ahref{\base/anagramme.ps}{Postscript}.
\else
La page~web de cet inonci est disponible
en \ahrefurl{\base/anagramme.html}.
\fi
\end{center}
Finally, the document has a small bibliography, including a reference to a
paper which is down-loadable. Here, the explicit URL should appear in both
versions and I used the \ahrefurl command.
\bibitem{tst} Jon Bentley and Bob Segdgewick,
‘‘\emph{Fast Algorithms
for Sorting and Searching}’’,
Proceedings of the 8th Annual ACM-SIAM Symposium on Discrete
Algorithms, Juanary 1997.
\ahrefurl{\url{http://www.cs.princeton.edu/~rs/strings/}}.
Notice that the argument to \ahrefurl is first processed by the \url command
from the url package. For our purposes we can see \url command as echoing
On using H
E
V
E
A
41
its argument verbatim, as LAT
E
X \verb does. Indeed the URL includes the
active character ~, which is not to be interpreted with its usual meaning of
non-breakable space. That way, inserting the link and typesetting the URL
remains two separate tasks. It requires a bit of typing from users, but they can
understand more easily what happens in case of problem. Furthermore, writing
the LAT
E
Xversion of \ahrefurl is trivial, which is not the case of \url whose
implementation has been performed by someone else, who arguably knows T
E
X
much better than I do.
7.2. Anticipated usage of the image feature
My document includes a PIC image. Such an image is described in a specific
language [4], and can then be translated into T
E
Xby a specific gpic (Unix)
command. For instance I have an image dico.pic and I translate it into T
E
X
by issuing the (Unix) command:
# gpic -t < dico.pic > dico.tex
Just after tex has processed the source included in the dico.tex file, the image
is present in the box \graph and hence can be put somewhere by \box\graph.
My code for the inserting the dico image reads as follows:
\begin{gpic}\input{dico.tex}\end{gpic}
That is, I follow the practice of hiding gory details by a clean LAT
E
Xinterface,
here an environment. The L
A
T
E
Xdefinition of the gpic environment resides in
some local gpic.sty file:
\newenvironment{gpic}{\begin{center}}{~\box\graph~\end{center}}
The H
E
V
E
Adefinition of the gpic environment resides in some local gpic.hva
file:
\newenvironment{gpic}
{\begin{toimage}}
{\box\graph\end{toimage}\begin{center}\imageflush\end{center}}
My document includes the line \usepackage{gpic}, so that both latex and
hevea find the proper definition.
It is worth noticing that in H
E
V
E
A case, \imageflush appears centered,
since this is where the final link to the gif image is inserted. Whether the
\box\graph is centered or not is irrelevant, since this is food for the latex run
imagen, which later crops all margins.
42
Luc Maranget
8. Conclusion
Ihope that the few examples described in this paper are enough to convince
the readers that H
E
V
E
A is worth a try. Above all, I hope that it will help
H
E
V
E
A users to appreciate H
E
V
E
A verbose reaction in front of source code it
cannot translate. I would like them to consider such numerous warnings more
as an assistance than as a nuisance.
Bibliography
[1] E. Gurari, TeX4ht: LAT
E
X and T
E
X for Hypertext. Software and docu-
mentation, http://www.cis.ohio-state.edu/~gurari/TeX4ht/.
[2] M. Gooseens, F. Mittelbach, A. Samarin. The LAT
E
X Companion
Addison-Websley, 1994.
[3] I. Hutchinson. TTH, the T
E
X to HTML translator. Software and docu-
mentation, http://hutchinson.belmont.ma.us/tth/
[4] B.W. Kernighan. PIC – A Graphics Language for Type•setting (User
Manual). AT&T Bell Laboratories, Computing Science Technical Re-
port No. 116. http://cm.bell-labs.com/cm/cs/cstr/116.ps.gz, re-
vised May, 1991.
[5] D.E. Knuth. The T
E
Xbook. Addison-Websley, 1984.
[6] L. Lamport. A Document Preparation System System, LAT
E
X, User’s
Guide and Reference Manual. Addison-Websley, 1994.
[7] D. Ragget, A. Le Hors and I. Jacobs. HTML 4.0 Reference Specification.
http://www.w3.org/TR/REC-html40, 1997.
Documents you may be interested
Documents you may be interested