itextsharp pdf to xml c# : Copy pdf bookmarks software Library project winforms asp.net web page UWP document1-part1687

 AgoodwebbrowserlikeMozillaisreallyuseful.
 Thelatestbug-xesforT
E
X4ht, available from [2].
Locate the tex4ht.env conguration le and store it in a convenient place
for editing as explained below. You can also use the one supplied in the le
package mentioned in section 5.
Also locate your default texmf.cnf le and copy it into a convenient place,
e.g. your working directory. During large projects T
E
X will almost certainly
run out of capacity. When this happens, locate the appropriate variable in the
conguration le and modify it.
4.2 Step 1: Creating the scripts
Fetch the T
E
X4ht conguration le tex4ht.env. Edit the lines starting with a
G. They should look like this:
G./cscript.sh %%1 %%2 %%3 2
You will need the aforementioned cscript.h, of course. Either get it from
[6] or copy the listing at the end of this guide. (Note that you may need to
change the location of the bash binary at the beginning.)
4.3 Step 2: Preparing your L
A
T
E
Xsource
Most of the time, T
E
X4ht will accept every bit of LAT
E
Xcode you have written.
This is because T
E
X4ht works on a level just between T
E
Xand LAT
E
X, so that
every macro gets special treatment.
There is one dierence, however, and it is an important one: Always place
your macro denitions after the \beginfdocumentg-command. This has subtle
reasons, and I recommend that you look it up in [1] if you are curious.
It might happen thatone or two ofyour macros won’t compile. In that case,
it is a bug in T
E
X4ht. Either nd a workaround or report the bug if it is serious,
although it is unlikely.
6
You might also get strange errors seemingly not related to a macro, but
it probably is. Let’s say you have encountered an error at line 2651 in your
document. It still might be your macro that isn’t working correctly; just pay
attention to exactly where in the line the error occurs.
Now I have said a lot about errors, and you might get the impression that
errors is something you’ll have to deal with a lot. This is not so, but it is good
to be prepared and not to have to spend hours at errors with an easy solution.
Now for the preamble: You’ll need to invoke the T
E
X4ht package. Use this
snippet:
\usepackage[html,png]{tex4ht}
6
Inmyworkwith verycomplexdocuments I’veencounteredfoursmallbugswhichrequired
only tinymodications of the macro code. (Not the actual document code.)
9
Copy pdf bookmarks - 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; edit pdf bookmarks
Copy pdf bookmarks - 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
how to bookmark a pdf in reader; how to add bookmarks on pdf
If you want to split your document into several html les, add an inte-
gral parameter after png and a comma. (See the above part on parameters to
T
E
X4ht.) For a big book project, 3 is typically a good value.
This is probably everything that is needed: One line of code in addition to
moving your macros to after \beginfdocumentg.
You may also want to set an option that forces every tiny inline equation
to become a bitmap. By default T
E
X4ht creates html code for as many inline
equations as possible, with varying degree of success. This option is described
in [2] in detail:
\Configure{$}{\PicMath}{\EndPicMath}{}
Place the option after \beginfdocumentg. Similar settings exist also for other
math environments.
4.4 Step 3: Compiling and error checking
You are now ready to compile. You can for example run the command
ht latex basefilename
as describedpreviously. You may also compose your ownarrangement of latex,
tex4ht and t4ht commands if theprevious doesn’t x all the tables et.c. (This
is typical in a big project.)
Note that in csript.sh you specify the bitmap quality. Due to the long
conversion times for included PostScript gures, I reccomend that you start
with a quality setting of 0 until you are happy with the look of the rest of the
html document. The quality setting will not aect the rest of the html gen-
erating process.
You can of course preview your html pages in a web browser. The base le
has the same name as your document.
4.5 Step 4: The web page
After you are satised with theresults, copy all the.html and .pngles to your
published web area.
Note: Whenthesurferenters your directory, andifyoudonot haveanindex.-
html, he/she will see all the les in the directory. If you don’t want that,
create an index.html to prevent this.
Note: Also note that all the les created resides in your working directory and
should beplaced in the same published directory. You can specify options
to place the .html-les in a special place, but you must modifycsript.sh
yourself to place the images there as well.
10
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
pdf bookmarks; bookmark a pdf file
VB.NET PDF File Split Library: Split, seperate PDF into multiple
Demo Code in VB.NET. The following VB.NET codes explain how to split a PDF file into multiple ones by PDF bookmarks or outlines.
pdf bookmark; create bookmarks pdf
5 Short version of the recipe
In this section wepresent a condensed version of the previous recipe, without all
the gory details. Assuming that LAT
E
X, T
E
X4ht, ImageMagick and GhostScript
are installed, you may download a le package from [6] containing the other
essentials. These include:
 A precompiled binary for dvi2bitmap.
 The cscript.sh script.
 A version of tex4ht.env adapted to use cscript.sh.
 The customlinks.tex macros for customized html links.
If you have skipped directly to this section without reading about the back-
ground for these components, you will not necessarily understand what they do
or what they are needed for. Consult the other sections if you are bewildered.
Now for the recipe for converting your LAT
E
Xdocument into html:
1. Download the le package tex4ht-files.tar.gz and decompress it into
your working directory. (That is, the directory from where you run the
latex-commands.)
2. Modify your source code:
 Add \usepackage[html,png]ftex4htg to your preamble, that is be-
fore the \beginfdocumentg command.
 Move all macro denitions (for example \newcommand and \new-
environment definitions) to after the \beginfdocumentg command.
3. Compile your document:
 You may run ht latex document, where document is the le name
of your L
A
T
E
Xdocument without extension.
 You may also run your own set of commands if the above does not
seem to cope with all your tables or similar:
latex document
latex document
latex document
tex4ht document
t4ht document
This is the sequence actually run with ht latex document. Run
additional latex commands, bibtex commands or whatever before
the tex4ht and t4ht commands.
4. If compilation succeeded, your html version is stored in document*.html
andthegraphiccontentis stored in document*.png. Additional cascading
style sheet-specications recides in document*.css. All these les must
be published in the same directory on the web for the document to be
displayed correctly.
11
C# PDF File Compress Library: Compress reduce PDF size in C#.net
NET framework. Remove bookmarks, annotations, watermark, page labels and article threads from PDF while compressing. C# class demo
add bookmarks to pdf online; acrobat split pdf bookmark
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.
auto bookmark pdf; creating bookmarks in a pdf document
6 Linking slides from prosper to T
E
X4ht
This section deals with the issue of creating hypertext links when using the
package prosper [5], and more specically hypertext links to html documents
created with T
E
X4ht. This is not meant as a guide to prosper, as the docu-
mentation that comes with the package is a good guide in itself, and since it
is not very dicult to learn anyway. But we mention that prosper allows you,
as a LAT
E
Xuser, to create high-quality presentation slides merely with simple
LAT
E
Xcode. The pdf le that results from this process is comparable to those
created with Microsoft’s PowerPoint. The most important advantages of using
prosper, is that it is free and that it supports all typical LAT
E
Xstructures, such
as mathematics. (We all know that PowerPoint is bad at this.)
Why bother with these hyperlinks?
Imagine yourselfata conference, meeting, orwhatever, displaying yourslides
for the audience. Maybe you are presenting your latest ndings in time-travel
technology or mind transfer serums. Then, at some point, you refer to some of
your articles showing detailed calculations or witty quotes. With thehyperlinks
inside your slides, you may click on this anchor and, behold, the web browser
pops up displaying the exact contents of your article! Neat.
Moreover, with the knowledge of how to put hyperlinks into prosper, you
may also link to regular web pages with relevant content. This might also be
valuable. (But then, you don’t need most of the material in this section.)
6.1 The hyperref package
The hyperref package provides a  exible interface to hypertext links. It is in-
cluded when you include prosper. This means that most of the options oered
by hyperref is set \behind the curtains," but for most uses this should not be a
hindrance. A thorough description of hyperref is found in [1], and we will only
deal with the basics here.
Aplain, vanilla hypertext link is inserted with the \href command:
\href{url}{text}
Here, urlis thefully expanded URL to the desired page, and text is theanchor
shown visually. Note that characters such as # and ~ should not be escaped.
Note also that the link must be fully expanded. If not, the link wil typically
get a file: in front. This unfortunately makes thedocument less portable. To
overcome this problem a bit, a command \hyperbaseurl is provided.7 Set this
to e.g. http://www.something.com/user/ and you can omitthefull expansion
of the hyperlinks. (You may still expand external links, of course.)
Because of the colorizing parameters being obscured by the early inclusion
of hyperref, one has to use other means for creating colored links. One way is
7
Due to a minor (?) bug, inserting a tilde in the adress results in an error. Try to work
around this in some way, e.g. by using \string~ to insert a tilde.
12
How to C#: Basic SDK Concept of XDoc.PDF for .NET
create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut This class describes bookmarks in a PDF document.
adding bookmarks to a pdf; excel pdf bookmarks
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.
pdf export bookmarks; excel print to pdf with bookmarks
\newcommand{\myhref}[2]{\href{#1}{\begin{blue}%
\underline#2\end{blue}}}
whose usage is the same as the original \href command.
6.2 The missing links inside T
E
X4ht
Now, we turn to the creation of human readable anchors inside the html les
generated with T
E
X4ht. We wish to be able to direct our hypertext links inside
the prosper presentation to a given chapter, section or page. In html, this is
donewith <a name=’whatnot’> tags; anchor tags. T
E
X4ht creates such tagsby
default for internal cross linking between equation references, gure references
and so on. Unfortunately, the format of these are not known a priori, and we
must supply reliable tags ourselves.
This might seem clumsy at rst: why not use the tags already present? The
simple implementation we choose and the usage proves the method to be ne,
though. Analyzing T
E
X4ht’s behaviour may be a tedious task, and that’s why
we decide on the presented technique.
The main ingredients of the implementation is to exploit T
E
X4ht’s \hooks."
When theauthor issues e.g. a sectioning command, congurable hooksgenerate
html material in the tex4ht post-processing stage. This allows us to create
anchors with literal description of the section. The needed congurations and
macros are collected in customlinks.tex, whose usage is described next.
To invokethecustomhooks, simply \input the macro leimmediately after
the \beginfdocumentg command. On every chapter, section and subsection, a
html anchor is created. One can also issue custom-made anchors with the
commands \customlink and \pagelink:
 \pagelink creates an anchor to the current page on the form pnnn, where
nnn is the page. This feature seems rather silly, but it might prove useful.
 \customlinkfnameg creates an anchornamed nameatthecurrentposition
in the web document.
Note: When using these commands, do not insert empty lines on both sides of
them. If you do, it will result in an empty but visible paragraph in the
document. (The ancors still work, of course, whether you remember this
or not.)
Whenever a custom hook is encountered, the macros issue a message to the
log. To extract the interesting messages, issue the command
cat doc.log | grep Customlink >links.txt
to generate a le containing a description of the links. Typically a line reads:
--- Customlinks says: Link to section 2.1: doc.html#sec2-1
13
VB.NET PDF: Basic SDK Concept of XDoc.PDF
create, load, combine, and split PDF file(s), and add, create, insert, delete, re-order, copy, paste, cut This class describes bookmarks in a PDF document.
export pdf bookmarks; display bookmarks in pdf
VB.NET PDF Page Replace Library: replace PDF pages in C#.net, ASP.
edit, C#.NET PDF pages extract, copy, paste, C# page with another PDF page from another PDF file text, images, interactive elements, such as links and bookmarks.
split pdf by bookmark; adding bookmarks to pdf document
So, when one needs to link to section 2.1, use this link.
Thecustomlinks.texcontains onlybasicLAT
E
Xprogramming, so extending
it to ones own need should be no dicult task. As for now, starred sections are
not implemented, for example.
The le customlinks.tex is available alongside this document from [6]. In
addition, it is included in the le package described in section 5.
6.3 An example
On the web page [6] you may view an example showing how to link prosper
documents to html documents and html documents created with T
E
X4ht in
particular.
The example consists of several les:
 dracula.tex: This is the document that is being converted with T
E
X4ht.
 dracula.html: This is the document after conversion with T
E
X4ht.
 customlinks.tex: The previously mentioned le that denes T
E
X4ht
hooks for customized anchors inside the LAT
E
Xdocument.
 slides.tex: Prosper slides utilizing the anchors genereated during com-
pilation of dracula.tex.
 slides.pdf: The compiled prosper presentation; clickable and all.
Take a look at the source codes. Hopefully this will in conjunction with the
above paragraphs be informative.
7 Making a Simula report from your L
A
T
E
Xdoc-
ument
In this section we state theprocedurefor adding the ocial Simula report cover
to your L
A
T
E
X document. We include this description inside this document,
because usually when creating Simula reports, one also publish it on the web in
html format | thus having the recipes all in one place might be a good idea.
Adding the Simula cover is really simple, but remember that some L
A
T
E
X
packages that you use might turn out to be incompatible with the Simula cover
style. We will return to this issue later.
For moreinformationontheusageandbugreporting, seetheSimula intranet
[7].
To add a Simula-cover, three simple steps are needed:
1. Include the simulacover package just after the \documentclass declara-
tion:
\usepackage{simulacover}
14
2. If you need or want another way to display author names etc. on the
cover, add one or more of the following commands:
 \simdoctitlefAlternate titleg
 \simdocauthorfAlternate author descriptiong
 \simdoctypefFor example ‘‘memo’’g
 \simdoctextfThis goes on the front cover as wellg
 \simdocnumberfReport numberg
3. Add the command
\makesimulacover
just before the \maketitle command. This will create the cover with the
author names, the title of the document and so on.
The simulacover package is installed on Simula, and is available on all local
machines. Ifyouwanttocompileyourdocumentona laptop oranother machine
running L
A
T
E
X, get a copy of the latest8 version of the package and put it into
the same directory as your document. L
A
T
E
Xwill then nd the package and
include it properly. There is no need for actually installing it to your L
A
T
E
X
system.
Ifitturnsoutthatfor somereason, yourdocumentdoesnotcompilecorrectly
ordoes notcompileatall, theproblemisprobablythatinclusion ofsomepackage
interfers with simulacover. Currently, the fancybox package is known to exhibit
this behaviour.
Asimple solution to this problem is to create a new document containing
only the Simula cover, and no text. Create a PostScript version of this and add
the two rst pages to the PostScript version of your original document.
Alternatively, work around the incompatibilities in some other way; using
dierent packages or similar.
8 Listings
Here are the listings for various les mentioned. They can also be downloaded
from [6].
8.1 cscript.sh
#!/bin/bash
echo ’CSCRIPH.SH -- convert dvi to bitmap.’
8
Note: Theversion on the Simula intranet web siteisat thetime of writing outdated! We
suggest that onelocates thepackage on oneof Simula’s Linux stationsand copies thisto ones
own computer.
15
#
# verison 1.5
#
# exit statii and their meanings:
# 0 - success
# 1 - bad command line
#proper invocation:
# cscript.sh thedvifile thepage theoutputfile quality
#
# quality is a parameter describing the quality of the converting process
# when using the horribly slow plan-b-method.
# 0-dirty, 1-low, 2-medium, 3-high.
#
# check if command line arguments exists
if [[ ! "$1" || ! "$2" || ! "$3" || ! "$4" ]]
then
echo "CSCRIPT.SH> Error: bad command line"
echo "
proper invocation: CSCRIPT.SH thedvifile thepagenumber theoutputfile quality"
exit 1
fi
#check quality settings ...
quality=$4
if [[ "$quality" -lt 0 ]]
then
quality=0
fi
if [[ "$quality" -gt 3 ]]
then
quality=3
fi
echo "CSCRIPT.SH> quality set to $quality"
#try to convert with dvi2bitmap.
rm -f $3
success=0
if ./dvi2bitmap --font-mode=ibmvga --page-range=$2 --magnification=4 -s 4 --output-type=png --resolution=110 --process=transparent=false --output=$3 $1
then success=1
fi
#./dvi2bitmap -fp /var/spool/texmf/pk/ibmvga/public/cm:/var/spool/texmf/pk/ibmvga/public/latex::/var/spool/texmf/pk/ibmvga/ams/cmextra -fm ibmvga -Pt -pp $2 -m 4 -s 4 -t png -r 110 -o $3 $1
#check if the outputfile was generated.
#if not, create image with dvips/gs/convert.
if [[ -e "$3" ]]
#if (( success = 1 ))
then
echo "CSCRIPT.SH> dvi2bitmap made it!"
# enhance the bitmap.
#convert -unsharp 1.0x0.5 $3 fisk_og_slips.gif
#convert fisk_og_slips.gif $3
else
echo "CSCRIPT.SH> dvi2bitmap failed! running the dvips/gs/convert-process..."
dvips -Pcmz -Pamz -mode ibmvga -D 220 -f $1 -pp $2 > TEMPORARY.ps
if [[ "$quality" = 0 ]]
then
res_str=’-r25x25’
scale_str=’440%’
fi
if [[ "$quality" = 1 ]]
then
res_str=’-r110x110’
scale_str=’100%’
fi
if [[ "$quality" = 2 ]]
then
res_str=’-r160x160’
scale_str=’68.75%’
fi
if [[ "$quality" = 3 ]]
then
res_str=’-r220x220’
scale_str=’50%’
fi
16
gs -sDEVICE=ppm -sOutputFile=TEMPORARY.ppm $res_str -q -dbatch -dNOPAUSE TEMPORARY.ps -c quit
convert -crop 0x0 -density 110x110 -antialias -scale $scale_str -transparent ’#FFFFFF’ TEMPORARY.ppm $3
rm TEMPORARY.ps
rm TEMPORARY.ppm
fi
echo "CSCRIPT.SH> finished."
8.2 customlinks.tex
%
% These are commands that configure tex4ht to produce internal
% human readable links into the HTML code.
%
\newcommand{\logcomment}{ --- Customlinks says: }
\newcommand{\chapterlink}{\HCode{<a name=’ch\arabic{chapter}’></a>}}
\newcommand{\sectionlink}{\HCode{<a name=’sec\arabic{chapter}-\arabic{section}’></a>}}
\newcommand{\subsectionlink}{\HCode{<a name=’subsec\arabic{chapter}-\arabic{section}-\arabic{subsection}’></a>}}
\newcommand{\subsubsectionlink}{\HCode{<a name=’subsubsec\arabic{chapter}-\arabic{section}-\arabic{subsection}-\arabic{subsubsection}’></a>}}
\newcommand{\reportchapterlink}{\typeout{\logcomment Link to
chapter \thechapter: \FileName\#ch\arabic{chapter}}}
\newcommand{\reportsectionlink}{\typeout{\logcomment Link to
section \thesection:
\FileName\#sec\arabic{chapter}-\arabic{section}}}
\newcommand{\reportsubsectionlink}{\typeout{\logcomment Link to
subsection \thesubsection:
\FileName\#subsec\arabic{chapter}-\arabic{section}-\arabic{subsection}}}
\newcommand{\reportsubsubsectionlink}{\typeout{\logcomment Link to
subsubsection \thesubsubsection:
\FileName\#subsubsec\arabic{chapter}-\arabic{section}-\arabic{subsection}-\arabic{subsubsection}}}
\newcommand{\reportcustomlink}[1]{\typeout{\logcomment Custom link named ’#1’: \FileName\##1 }}
\newcommand{\customlink}[1]{\HCode{<a name=’#1’></a>}\reportcustomlink{#1}}
\newcommand{\thispage}{\arabic{page}}
\newcommand{\reportpagelink}{\typeout{\logcomment Page-link at page
\thispage: \FileName\#p\thispage}}
\newcommand{\pagelink}{\HCode{<a name=’p\thispage’></a>}\reportpagelink}
\Configure{chapter}{\chapterlink\reportchapterlink}{}{}{}
\Configure{section}{\sectionlink\reportsectionlink}{}{}{}
\Configure{subsection}{\subsectionlink\reportsubsectionlink}{}{}{}
\Configure{subsubsection}{\subsubsectionlink\reportsubsubsectionlink}{}{}{}
%
% End of internal link code.
%
%
% To generate a report of links generated:
%
%
cat bok.log | grep Customlinks > links.txt
%
%
%
% Note that when inserting ‘‘custom links,’’ don’t insert blank lines
% after the \customlink-command. This will generate an extra (empty
% but visible) paragraph!
%
8.3 tex4ht.env
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% tex4ht.env / .tex4ht
%
%
%
% Notes:
%
% 1. empty lines are harmful
%
% 2. place this file in your work
%
%
directory and/or root directory
%
%
and/or in directory ‘xxx’ of your
%
%
choice. In the latest case, compile %
%
tex4ht.c with ‘#define HTFDIR xxx’, %
17
%
or provide the address of the file %
%
to tex4ht throught the -e switch
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% * Replace ‘path’ and ‘tfmpath/...’
%
% * A ! requests recursive search into
%
%
subdirectories
%
% * Multiple entries of each type are
%
%
allowed
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%ttfmpath/tex/texmf/fonts/tfm/!
%ipath/tex4ht.dir/ht-fonts/iso8859/!
%ipath/tex4ht.dir/ht-fonts/alias/!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Replace ‘path’
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% bookkeeping for searched files
%lpath/tex4ht.dir/tex4ht.fls
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Default scripts
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
s--- needs --- %%1.idv[%%2] ==> %%3 ---
b--- characters ---
g.png
% remove protection
S*
%
% invoke cscript.sh; a script to convert from dvi to bitmap.
%
G./cscript.sh %%1 %%2 %%3 2
%
% t4ht -d%%2
Mmv %%1 %%2
Ccp %%1 %%2
% t4ht -d%%2 -m%%1
Achmod %%1 %%2%%3
% empty gifs
Ecp empty.pic %%1%%2
% validations, XSTL tranformations,...
Xmake -f NSGMLS name=%%1 ext=%%2
% end of file
18
Documents you may be interested
Documents you may be interested