mvc pdf viewer : Convert pdf to word text online Library control API .net web page wpf sharepoint memman46-part908

D.3. Repetitions
Picas
0
10
20
Points
0
100
200
Millimeters
0
20
40
60
80
100
Inches
0
1
2
3
4
Figure D.4: Some measuring scales
The
(
dx, dy
)
argument is a pair of (decimal) numbers that specify the amount that
the object shall be moved at each repetition. The first of this pair specifies the horizontal
movement and the second the vertical movement. Positive values shift to the right or up,
and negative numbers shift to the left or down. The num argument specifies how many
times the object is to be drawn.
The code below produces Figure D.4. This example also shows that a
picture
can
be placed inside another
picture
. Often it is useful to break a complex diagram up into
pieces, with each piece being a separate
picture
. The pieces can then be individually
positioned within the overall diagram.
\begin{figure}
\setlength{\unitlength}{1pc}
\centering
\begin{picture}(21,26)
% Draw Pica scale
\put(2,2){\begin{picture}(5,24)
\put(0,-0.5){\makebox(0,0)[t]{\textbf{Picas}}}
\thicklines \put(0,0){\line(0,1){24.0}}
423
Convert pdf to word text online - Library control API:C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net, ASP.NET MVC, WinForms, WPF application
C# PDF to Text (TXT) Converting Library to Convert PDF to Text
www.rasteredge.com
Convert pdf to word text online - Library control API:VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net, ASP.NET MVC, WinForms, WPF application
VB.NET Guide and Sample Codes to Convert PDF to Text in .NET Project
www.rasteredge.com
D. P
ICTURES
\thinlines \multiput(0,0)(0,1){25}{\line(1,0){1}}
\multiput(0,0)(0,10){3}{\line(1,0){2}}
\put(-1,0){\makebox(0,0)[br]{0}}
\put(-1,10){\makebox(0,0)[br]{10}}
\put(-1,20){\makebox(0,0)[br]{20}}
\end{picture}}
% Draw Points scale
\put(7,2){\begin{picture}(5,24)
\put(0,-0.5){\makebox(0,0)[t]{\textbf{Points}}}
\thicklines \put(0,0){\line(0,1){24.2}}
\thinlines \multiput(0,0)(0,0.8333){30}{\line(1,0){1}}
\multiput(0,0)(0,8.333){3}{\line(1,0){2}}
\put(-1,0){\makebox(0,0)[br]{0}}
\put(-1,8.333){\makebox(0,0)[br]{100}}
\put(-1,16.667){\makebox(0,0)[br]{200}}
\end{picture}}
% Draw Millimeter scale
\put(12,2){\begin{picture}(5,24)
\put(0,-0.5){\makebox(0,0)[t]{\textbf{Millimeters}}}
\thicklines \put(0,0){\line(0,1){24.2}}
\thinlines \multiput(0,0)(0,0.4742){15}{\line(1,0){1}}
\multiput(0,0)(0,2.3711){11}{\line(1,0){2}}
\put(-1,0){\makebox(0,0)[br]{0}}
\put(-1,4.742){\makebox(0,0)[br]{20}}
\put(-1,9.484){\makebox(0,0)[br]{40}}
\put(-1,14,226){\makebox(0,0)[br]{60}}
\put(-1,18.968){\makebox(0,0)[br]{80}}
\put(-1,23.71){\makebox(0,0)[br]{100}}
\end{picture}}
% Draw Inch scale
\put(17,2){\begin{picture}(5,24)
\put(0,-0.5){\makebox(0,0)[t]{\textbf{Inches}}}
\thicklines \put(0,0){\line(0,1){24.1}}
\thinlines \multiput(0,0)(0,0.60225){41}{\line(1,0){1}}
\multiput(0,0)(0,6.0225){5}{\line(1,0){2}}
\put(-1,0){\makebox(0,0)[br]{0}}
\put(-1,6.0225){\makebox(0,0)[br]{1}}
\put(-1,12.045){\makebox(0,0)[br]{2}}
\put(-1,18.0675){\makebox(0,0)[br]{3}}
\put(-1,24.09){\makebox(0,0)[br]{4}}
\end{picture}}
\end{picture}
\setlength{\unitlength}{1pt}
\caption{Some measuring scales} \label{flpic:scales}
\end{figure}
424
Library control API:VB.NET PDF Convert to Word SDK: Convert PDF to Word library in vb.
Convert PDF document to DOC and DOCX formats in Visual Basic control to export Word from multiple PDF files in Create editable Word file online without email.
www.rasteredge.com
Library control API:C# PDF Convert to Word SDK: Convert PDF to Word library in C#.net
Quick to remove watermark and save PDF text, image, table Convert PDF to multiple MS Word formats such as .doc Create editable Word file online without email.
www.rasteredge.com
D.4. Bezier curves
Typeset example D.11: Picture: repetitions
r
r
r
r
r
r
r
r
r
r
r
r
You can also make regular two-dimensional patterns by using a
\multiput
pattern in-
side another
\multiput
.As LaTeX will process each
\multiput
every time it is repeated
it is often more convenient to store the results of the first
\multiput
in a bin and then use
this as the argument to the second
\multiput
.
Source for example D.11
\setlength{\unitlength}{1mm}
\begin{picture}(32,14)
\put(0,0){\framebox(32,14){}}
\savebox{\Mybox}(8,8){\multiput(0,0)(4,4){3}{\circle*{1}}}
\multiput(4,4)(6,0){4}{\usebox{\Mybox}}
\sbox{\Mybox}{}
\end{picture}
\setlength{\unitlength}{1pt}
Remember that a storage bin must have been declared via a
\newsavebox
command
before it canbe used. I originally declared and usedthe
\Mybox
bin in §D.2.2. As the above
example shows, you can change the contents of a storage bin by utilising it in another
\savebox
.Storage bins can use up a lot of LaTeX’s memory. After you have finished with
astorage bin empty it via the
\sbox
command with an empty last argument, as shown in
the example.
D.4 B
EZIER CURVES
Standard LaTeX providesone further drawing command — the
\qbezier
command. This
can be used for drawing fairly arbitrary curves.
\qbezier[
num
](
Xs, Ys
)(
Xm, Ym
)(
Xe, Ye
)
The command will draw what geometers call a quadratic Bezier curve from the point
(
Xs,
Ys
)
to the point
(
Xe, Ye
)
.The curve will pass somewhere near to the point
(
Xm, Ym
)
.
Bezier curves are named after Pierre Bezier who first used them in 1962. They are
widely used in Computer Aided Design (CAD) programs and other graphics and font
design systems. Descriptions, with varying degrees of mathematical complexity, can be
found in many places: when I was a practicing geometer these included [FP80], [Mor85]
425
Library control API:VB.NET Create PDF from Word Library to convert docx, doc to PDF in
PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view PDF online, C# convert PDF to tiff
www.rasteredge.com
Library control API:VB.NET PDF - Convert PDF Online with VB.NET HTML5 PDF Viewer
PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view PDF online, C# convert PDF to tiff
www.rasteredge.com
D. P
ICTURES
and [Far90]; no doubt there are more recent sources available and there is a brief review
in [Wil04a].
Figure D.5 shows two of these curves. The figure was produced by the code below.
\begin{figure}
\setlength{\unitlength}{1mm}
\centering
\begin{picture}(100,100)
\thicklines % first curve
\qbezier(10,50)(50,90)(50,50)
\thinlines % draw lines joining control points
\put(10,50){\line(1,1){40}}
\put(50,90){\line(0,-1){40}}
% label control points
\put(10,45){\makebox(0,0)[t]{\texttt{(10,50)}}}
\put(50,95){\makebox(0,0)[b]{\texttt{(50,90)}}}
\put(55,50){\makebox(0,0)[l]{\texttt{(50,50)}}}
\thicklines % second curve
\qbezier[25](50,50)(50,10)(90,50)
\thinlines % draw lines joining control points
% \put(50,50){\line(0,-1){40}}
% \put(50,10){\line(1,1){40}}
% label control points
\put(50,5){\makebox(0,0)[t]{\texttt{(50,10)}}}
\put(90,55){\makebox(0,0)[b]{\texttt{(90,50)}}}
\end{picture}
\setlength{\unitlength}{1pt}
\caption{Two Bezier curves}
\label{lpicf:bez}
\end{figure}
The three points used to specify the position and shape of the Bezier curve are called
control points. The curve startsat the first control point and istangent to the line joining the
first and second control points. The curve stops at the last control point and is tangent to
the line joining the last two control points.
In Figure D.5 the lines joining the control pointsfor the first curve have been drawn in.
The locations of all the control points for the two curves are labeled.
The second Bezier curve is the same shape as the first one, but rotated 180 degrees.
The first control point of this curve is the same as the last control point of the first curve.
This means that the two curves are joind at this point. The line, although it is not drawn,
connecting the first two control points of the second curve is in the same direction as the
line joining the last two control points of the first curve. This means that the two curves
are also tangent at the point where they join. By stringing together several Bezier curves
you can draw quite complex curved shapes.
\qbeziermax
426
Library control API:C# HTML5 PDF Viewer SDK to convert and export PDF document to
PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view PDF online, C# convert PDF to tiff
www.rasteredge.com
Library control API:C# PDF Text Extract Library: extract text content from PDF file in
But sometimes, we need to extract or fetch text content from source PDF document file for word processing, presentation and desktop publishing
www.rasteredge.com
D.4. Bezier curves
(10,50)
(50,90)
(50,50)
(50,10)
(90,50)
Figure D.5: Two Bezier curves
The Bezier curves are actually drawn as a linearized form using a series of rectangular
blobs of ink. Left to itself, LaTeX will attempt to pick the number of blobs to give the
smoothest looking curve, up to a maximum number. (Each blob takes up space in LaTeX’s
internal memory, and it may run out of space if too many are used in one picture.) The
maximum number of blobs per Bezier curve is set by the
\qbeziermax
command. This
can be adjusted with the
\renewcommand
command. For example:
\renewcommand{\qbeziermax}{250}
will set the maximum number of blobs to be 250.
Another method of controlling the number of blobs is by the optional num argument
to the
\qbezier
command. If used, it must be apositive integer number whichtellsLaTeX
exactly how many blobs to use for the curve.
427
Library control API:VB.NET PDF Text Extract Library: extract text content from PDF
Best VB.NET PDF text extraction SDK library and component for free download. Online Visual Basic .NET class source code for quick evaluation.
www.rasteredge.com
Library control API:C# Convert: PDF to Word: How to Convert Adobe PDF to Microsoft
C# Convert: PDF to Word: How to Convert Adobe PDF to Microsoft Word (.docx) File. Empower C# users to easily convert PDF document to Word document.
www.rasteredge.com
Library control API:C# HTML5 PDF Viewer SDK to view PDF document online in C#.NET
PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files, C# view PDF online, C# convert PDF to tiff
www.rasteredge.com
E
LaTeX and TeX
Strictly speaking, LaTeX is a set of macros built on top of the TeX program originally de-
veloped by Donald Knuth [Knu86, Knu84] in the early 1980’s. TeX is undoubtedly one of
the most robust computer programs to date.
Leslie Lamport says that most TeX commands can be used with LaTeX and lists those
that cannot be used [Lam94, Appendix E]. Apart from this he says nothing about any TeX
commands. I have used some TeXmacrosin the code examplesand so I need to talk alittle
bit about these.
Ilike to think of the commandsand macros as falling into one of several groups.
 TeX primitives. These are the basic constructs of the TeX language.
 TeX commandsor macros. These are part of the plain TeX systemand are constructed
from the TeX primitives.
 LaTeX kernel commands or macros. These are defined in the LaTeX kernel and
are based on plain TeX primitives or commands. In turn, some higher level ker-
nel macros are constructed from more basic aspects of the kernel. The kernel does
redefine some of the plain TeX commands.
 Class command. These are mainly built up on the kernel commands but may use
some basic TeX.
 Package commands. These are similar to the class commands but are less likely to
directly use TeX macros.
 User commands. Typically these are limited to the commands provided by the class
and any packages that might be called for, but more experienced users will employ
some kernel commands, like
\newcommand
,to make their authoring more efficient.
Although TeX is designed as a language for typesetting it is also a ‘Turing complete’
language which means that it can perform any function that can be programmed in any
familiar programming language. For example, an interpreter for the BASIC language has
been written in TeX, but writing this kind of program using TeX is something that only an
expert
1
might consider.
Nevertheless, you may have to, or wish to, write a typesetting function of your own.
This chapter presents a few of the programming aspects that you may need for this, such
1
Probably alsoa masochist with plenty oftime.
Chapter lastupdated2013/04/24 (revision 442)
429
E. L
A
T
E
X
AND
T
E
X
as performing some simple arithmetic or comparing two lengths. For anything else you
will have to read one or more of the TeX books or tutorials.
In England witnesses at a trial have to swear to ‘Tell the truth, the whole truth, and
nothing but the truth’. I will try and tell the truth about TeX but, to misquote Hamlet
There are more things in heaven and TeX, Horatio,
Than are dreamt of in your philosophy.
E.1 T
HE
T
E
X
PROCESS
As we are delving deeper than normal and because at the bottom it is the TeX language
that does all the work, it is useful to have an idea of how TeX processes a source file to
produce a
dvi
file. It is all explained in detail by Knuth [Knu84] and also perhaps more
accessibly by Eijkhout [Eij92]; the following is a simplified description. Basically there are
four processes invloved and the output from one process isthe input to the following one.
Input The input process, which Knuth terms the ‘eyes’, readsthe source file and converts
what it sees into tokens. There are essentially two kinds of token. A token is either a
single character such as a letter or a digit or a punctuation mark, or a token is a con-
trol sequence. A control sequence consists of a backslash and either all the alphabetic
characters immediately following it, or the single non-alphabetic following it. Con-
trol sequence is the general term for what I have been calling a macro or a command.
Expansion The expansion processor is what Knuth calls ‘TeX’s mouth’. In this process
some of the tokens from the input processor are expanded. Expansion replaces a
token by other tokens or sometimes by no token. The expandible tokens include
macros, conditionals, and a number of TeX primitives.
Execution The execution process is TeX’s ‘stomach’. This handles all the tokens output
by the expansion processor. Control sequences that are not expandible are termed
executable, and the execution processor executes the executable tokens. Character
tokens are neither expandible nor executable. It handles any macro defintions and
also builds horizontal, vertical and mathematical lists.
Layout The layout processor (TeX’s ‘bowels’) breaks horizontal lists into paragraphs,
mathematical lists into formulae, and vertical lists into pages. The final output is
the
dvi
file.
In spite of the sequential nature implied by thisdescriptionthe overall process includes
some feedback from a later process to an earlier one which may affect what that does.
It is probably the expansion processor that needs to be best understood. Its input is
asequence of tokens from the input processor and its output is a sequence of different
tokens.
In outline, the expansion processor takes each input token in turn and sees if it is ex-
pandible; if it is not it simply passes it on to the output. If the token is expandible then it
is replaced by its expansion. The most common expandible tokens are control sequences
that have been defined as macros. If the macro takes no argumentsthen the macro’s name
is replaced by its definition. If the macro takes arguments, sufficient tokens are collected
430
E.2. LaTeX files
to get the values of the arguments, and then the macro name is replaced by the defini-
tion. The expansion processor then looks at the first token in the replacement, and if that
is expandible it expands that, and so on.
Nominally, the eventual output from the expansion processor is a stream of non-
expandible tokens. There are ways, however of controlling whether or not the expansion
processor will actually expand an expandible token, and to control the order in which
things get expanded, but that is where things get rapidly complicated.
The layout processor works something like this. Ignoring maths, TeX stores what you
type in two kinds of lists, vertical and horizontal. As it readsyour words it puts them one
after another in a horizontal list. At the end of a paragraph it stops the horizontal list and
addsit to the vertical list. At the beginning of the next paragraphit startsa new horizontal
list and adds the paragraph’s words to it. And so on. This results in a vertical list of
horizontal lists of words, where each horizontal list contains the words of a paragraph.
It then goes through each horizontal list in turn, breaking it up into shorter horizontal
lists, one for each line in the paragraph. These are put into another vertical list, so con-
ceptually there is a vertical list of paragraphs, and each paragraph is avertical list of lines,
and each line is a horizontal list of words, or alternatively one vertical list of lines. Lastly
it chops up the vertical list of lines into page sized chunks and outputs them a page at a
time.
TeX is designed to handle arbitrary sized inserts, like those for maths, tables, sectional
divisions and so forth, in an elegant manner. It does this by allowing vertical spaces on a
page to stretch and shrink a little so that the actual height of the typeblock is constant. If
apage consists only of text with no widow or orphan then the vertical spacing is regular,
otherwise it is likely to vary to some extent. Generally speaking, TeX is not designed to
typeset on a fixed grid, but against this other systems are not designed to produce high
quality typeset mathematics. Attempts have been made to tweak LaTeX to typeset on a
fixed grid but as far as I know nobody has been completely successful.
TeX works somewhat more efficiently than I have described. Instead of reading the
whole document before breaking paragraphs into lines, it does the line breaking at the end
of each paragraph. After each paragraph it checks to see if it has enough material for a
page, and outputs a page whenever it is full. However, TeX is also a bit lazy. Once it has
broken a paragraph into lines it never looksat the paragraph again, except perhaps to split
it at a page break. If you want to change, say, the width of the typeblock on a particular
page, any paragraph that spills over from a previous page will not be reset to match the
new measure. This asynchronous page breaking also has an unfortunate effect if you are
trying to put a note in say, the outside margin, as the outside is unknown until after the
paragraph has been set, and so the note may end up in the wrong margin.
E.2 L
A
T
E
X
FILES
The
aux
file is the way LaTeX transfers information from one run to the next and the
process works roughly like this.
 The
aux
file is read at the start of the
document
environment. If
\nofiles
has
not been specified a new empty
aux
file is then created which has the side effect of
destroying the original
aux
file.
431
E. L
A
T
E
X
AND
T
E
X
 Within the
document
environment there may be macros that write information to
the
aux
file, such asthe sectioning or captioning commands. However, these macros
will not write their information if
\nofiles
has been specified.
 At the end of the
document
environment the contents of the
aux
file are read.
Under normal circumstances new output files are produced each time LaTeX is run, but
when
\nofiles
is specified only the
dvi
and
log
files will be new — any other files are
unchanged.
In the case of the sectioning commands these write macros into the
aux
file that in turn
write information into a
toc
file, and the
\tableofcontents
command reads the
toc
file
whichcontainsthe information for the Table of Contents. To make this abit more concrete,
asLaTeX processes anew document through the first two runs, the following eventsoccur.
1. Initially there is neither an
aux
nor a
toc
file. At the start of the
document
environ-
ment a new empty
aux
file is created.
2. During the first run the
\tableofcontents
typesets the Contents heading and cre-
ates a new empty
toc
file.
During the run sectional commands write information into the new
aux
file. At the
end of the
document
environment the
aux
file is read. Contents information in the
aux
file is written to the
toc
file. Lastly all the output files are closed.
3. For the second run the
aux
file from the previous run is read at the start of the
document
environment; no information can be written to a
toc
file because the
toc
file is only made available by the
\tableofcontents
command. The
aux
file from
the previous run is closed and the new one for this run is created.
This time the
\tableofcontents
reads
toc
file that was created during the previ-
ous run which contains the typesetting instructions for the contents, and then starts
anew
toc
file.
And so the process repeatsitself.
The
aux
file mechanism means that, except for the simplest of documents, LaTeX has to
be run at least twice in order to have all the information to hand for typesetting. If sections
are added or deleted, two runs are necessary afterwards to ensure that everything is up
to date. Sometimes three, or even more, runs are necessary to guarantee that things are
settled.
E.3 S
YNTAX
The LaTeX syntax that you normally see is pretty regular. Mandatory arguments are en-
closed in curly braces and optional arguments are enclosed in square brackets. One excep-
tion to this rule is in the
picture
environment where coordinate and direction pairs are
enclosed in parentheses.
The TeX syntax is not regular in the above sense. For example, if in LaTeX you said
\newcommand*{\cmd}[2]{#1 is no. #2 of}
\cmd{M}{13} the alphabet. % prints: M is no. 13 of the alphabet
432
Documents you may be interested
Documents you may be interested