view pdf in asp net mvc : C# extract text from pdf Library control component .net azure asp.net mvc memman13-part852

6.6. Lower level headings
second line of text following the heading ...
3.5 Heading Title
Start of text . ..
.. .end of last line of preceding text.
?
beforeskip +\baselineskip (ofheading font)
-
indent
-
afterskip (< 0)
Figure 6.3: Run-in sectional headings
Table 6.2: Default display sectioning layout parameter values
section
subsection
subsubsection
beforeskip (-ex)
3.5+1-.2
3.25+1-.2
3.25+1-.2
indent
0
0
0
afterskip (ex)
2.3+.2
1.5+.2
1.5+.2
font
\Large\bfseries \large\bfseries
\bfseries
Table 6.3: Default run-in sectioning layout parameter values
paragraph
subparagraph
beforeskip (+ex)
3.25+1-.2
3.25+1-.2
indent
0
\parindent
afterskip
-1em
-1em
font
\bfseries
\bfseries
Table 6.4: Values for
S
in section styling macro names.
S sec
subsec
subsubsec
para
subpara
section subsection subsubsection paragraph subparagraph
93
C# extract text from pdf - Library control component: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
C# extract text from pdf - Library control component: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
6. D
OCUMENT DIVISIONS
The absolute value of the skip length argument is the space to leave above the heading.
If the actual value isnegative then the first line after the heading will not be indented. The
default skip depends on the particular level of heading, but for a
\section
(i.e., when
S = sec
)it is
-3.5ex plus -1ex minus -.2ex
where the plus and minus values are the allowable stretch and shrink; note that all the
values are negative so that there is no indentation of the following text. If you wanted
indentation then you could do
\setbeforesecskip{3.5ex plus 1ex minus .2ex}
\setSindent{
length
}
The value of the length length argument is the indentation of the heading (number and
title) from the lefthand margin. This is normally 0pt.
\setSheadstyle{
font
}
This macro specifies the style (font) for the sectional number and title. As before, the de-
fault value of the font argument dependson the level of the heading. For a
\subsection
(i.e.,
S=subsec
)it is
\large\bfseries\raggedright
,to typeset in the
\bfseries
font
in the
\large
size; the title will also be set ragged right (i.e., there will be no hyphenation
in a multiline title).
Note that the very last element in the font argument may be a macro that takes
one argument (the number and title of the heading). So, if for some reason you wanted
\subsubsection
titles to be all uppercase, centered, and in the normal font, you can do
\setsubsubsecheadstyle{\normalfont\centering\MakeUppercase}
As another example, although I don’t recommend this, you can draw a horizontal line
under section titles via:
\newcommand{\ruledsec}[1]{%
\Large\bfseries\raggedright #1 \rule{\textwidth}{0.4pt}}
\setsecheadstyle{\ruledsec}
\setafterSskip{
skip
}
If the value of the skip length argument is positive it is the space to leave between the
display heading and the following text. If it is negative, then the heading will be run-
in and the value is the horizontal space between the end of the heading and the following
text. The default skip depends on the particular levelof heading, but for a
\section
(i.e.,
when
S = sec
)it is
2.3ex plus .2ex
,and for a
\subparagraph
(i.e.,
S = subpara
),
which is arun-in heading, it is
-1em
.
\@hangfrom{
code
}
\sethangfrom{
code
}
Internally all the titling macros use a macro called
\@hangfrom
which by default makes
multiline titles look like a hanging paragraph. The default definition of
\@hangfrom
(in
file
ltsect.dtx
)is effectively:
94
Library control component:C# PDF Text Extract Library: extract text content from PDF file in
C# PDF - Extract Text from PDF in C#.NET. How to C#: Extract Text Content from PDF File. Add necessary references: RasterEdge.Imaging.Basic.dll.
www.rasteredge.com
Library control component:VB.NET PDF Text Extract Library: extract text content from PDF
if you are a Visual C# .NET programmer, you can go to this Visual C# tutorial for PDF text extraction in .NET project. Extract Text Content from PDF File in VB
www.rasteredge.com
6.6. Lower level headings
\newcommand{\@hangfrom}[1]{\setbox\@tempboxa\hbox{{#1}}%
\hangindent \wd\@tempboxa\noindent\box\@tempboxa}
The argument is put into a box and its width is measured, then a hanging paragraph is
started with the argument as the first thing and second and later lines indented by the
argument’s width.
The
\sethangfrom
macro redefines
\@hangfrom
to be code. For example, to have
the titles set as block paragraphs instead of hanging paragraphs, simply do:
\sethangfrom{\noindent #1}
Note that you have to use
#1
at the position in the replacement code for
\@hangfrom
where the argument to
\@hangfrom
is to be located.
\@seccntformat{
code
}
\setsecnumformat{
code
}
Internally all the titling macros use a kernel macro called
\@seccntformat
which defines
the formatting of sectional numbers in a title. Its default definition (in file
ltsect.dtx
)is
effectively:
\newcommand{\@seccntformat}[1]{\csname the#1\endcsname\quad}
which formats the sectional numbers as
\thesec...
with a space afterwards. The com-
mand
\setsecnumformat
redefines
\@seccntformat
to be code. For example, to put a
colon and space after the number
\setsecnumformat{\csname the#1\endcsname:\quad}
Note that you have to use
#1
where you want the argument (sectional number) of
\@seccntformat
to go.
Note that
\setsecnumformat
applies to all
\section
,
\subsection
,etc. If you want
to change it only for, say,
\subsection
,use the
\setsubsechook
described below.
\hangsecnum
\defaultsecnum
The macro
\hangsecnum
is a declaration that makes sectional numbers hang in the mar-
gin. The macro
\defaultsecnum
is adeclarationthat reversesthe effect of
\hangsecnum
,
that is, sectional numbers will be typeset in their familiar places.
\Shook
\setShook{
text
}
The macro
\Shook
is called immediately before the typesetting of the title; its default def-
inition does nothing. The macro
\setShook
redefines
\Shook
to be text. You can use
this hook, for example, to insert a
\sethangfrom
or
\setsecnumformat
command into
the definition of a particular section division command. In that case, remember that if you
want to refer to the
#1
argument, in the argument for
\setsecnumformat
,then you have
to double the
#
,i.e. use
##1
,see the example below.
Here are some example lower level heads and the code used to produce them.
95
Library control component:C# PDF Image Extract Library: Select, copy, paste PDF images in C#
XDoc.PDF ›› C# PDF: Extract PDF Image. How to C#: Extract Image from PDF Document. using RasterEdge.XDoc.PDF; C#: Extract All Images from PDF Document.
www.rasteredge.com
Library control component:C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
PDF Pages in C#.NET. Easy to Use C# Code to Extract PDF Pages, Copy Pages from One PDF File and Paste into Others in C#.NET Program.
www.rasteredge.com
6. D
OCUMENT DIVISIONS
Source for example 6.1
\setsubsubsecheadstyle{\bfseries\raggedright}
\subsubsection*{Bold raggedright}
\setsubsubsecheadstyle{\scshape\raggedright}
\subsubsection*{Small caps raggedright}
\setsubsubsecheadstyle{\itshape\raggedright}
\subsubsection*{Italic raggedright}
\setsubsubsecheadstyle{\Large\centering}
\subsubsection*{Large centered}
\setsubsubsecheadstyle{\large\centering\MakeUppercase}
\subsubsection*{large centered uppercase}
\setsubsubsecheadstyle{\bfseries\centering}
\subsubsection*{Bold centered}
\setsubsubsecheadstyle{\scshape\centering}
\subsubsection*{Small caps centered}
\setsubsubsecindent{2\parindent}
\setsubsubsecheadstyle{\scshape\raggedright}
\subsubsection*{Small caps indented}
\setsubsubsecindent{0pt}
\setsubsubsecheadstyle{\itshape\raggedleft}
\subsubsection*{Italic flushright}
\newcommand*{\shortcenter}[1]{%
\sethangfrom{\noindent ##1}%
\normalfont\boldmath\bfseries
\centering
\parbox{3in}{\centering #1}\par}
\setsubsubsecheadstyle{\shortcenter}
\subsubsection*{Bold centered but taking up no more than 3 inches
if a long title}
Hang the
whole heading
in the margin
Aless traditional style is to put the whole heading into the margin. I have done this here
for a
\paragraph
heading (which is not otherwise used in this manual). The code is:
\newcommand{\marginbox}[1]{%
\parbox[t][0pt]{6em}{\itshape\raggedleft\mbox{} #1}}
\newcommand{\marginhead}[1]{%
{\llap{\marginbox{#1}\kern0.5em}}}
\setparaindent{0em}
\setafterparaskip{0em}
\setparaheadstyle{\marginhead}
\setparahook{\setsecnumformat{\csname the##1\endcsname\ }}
\paragraph{Hang the whole heading in the margin}%
The macro
\marginbox
putsitsargument, raggedleft, into a zero height
\parbox
of width
6em, aligned at the top. The
\marginhead
macro puts its argument into a
\marginbox
and puts the
\marginbox
0.5em to the left. The
\paragraph
head style is then set
96
Library control component:C# PDF insert text Library: insert text into PDF content in C#.net
|. Home ›› XDoc.PDF ›› C# PDF: Insert Text to PDF. C#.NET PDF SDK - Insert Text to PDF Document in C#.NET. C#.NET Project DLLs: Insert Text Content to PDF.
www.rasteredge.com
Library control component:C# PDF Form Data Read Library: extract form data from PDF in C#.
PDF software, it should have functions for processing text, image as field data from PDF and how to extract and get field data from PDF in C#.NET project.
www.rasteredge.com
6.7. Fancy anonymous breaks
Typeset example 6.1: A variety of subhead styles
Bold raggedright
S
MALL CAPS RAGGEDRIGHT
Italic raggedright
Large centered
LARGE CENTERED UPPERCASE
Bold centered
S
MALL CAPS CENTERED
S
MALL CAPS INDENTED
Italic flushright
Bold centered but taking up no more than 3
inches if a long title
to use
\marginhead
to typeset the heading. The format for the number is reset via
\setparahook
and
\setsecnumformat
.
Adifferent approach is to create new macros, each named by the type of sectional macro
it formats, and then make the number format call these macros. In this example we will
provide separate formatting for
\section
and
\subsection
.
\setsecnumformat{\csname #1secnumformat\endcsname}
\newcommand\sectionsecnumformat{\thesection:\quad}
\newcommand\subsectionsecnumformat{\fbox{\enspace\thesubsection\enspace}\enspace}
Since the macro is only called in the proper context, we can use
\thesection
directly in
the code for
\section
.
6.7 F
ANCY ANONYMOUS BREAKS
Often, in novels, there isaneed to break upthe text to indicate that there is amajor break in
the story, but not enough to warrant starting a new chapter. I have called these anonymous
divisions as there is neither number nor title associated with them.
\plainbreak{
num
}\plainbreak*{
num
}
\fancybreak{
text
}\fancybreak*{
text
}
The
\plainbreak
is an anonymous division. It puts num blank lines into the type-
script and the first line of the following paragraph is not indented. Another anonymous
division is
\fancybreak
which puts text centered into the typescript and the initial line
of the following paragraph is not indented. For example:
97
Library control component:VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Image: Extract Image from PDF. |. Home ›› XDoc.PDF ›› VB.NET PDF: Extract PDF Image. VB.NET PDF - Extract Image from PDF Document in VB.NET.
www.rasteredge.com
Library control component:C# PDF Text Search Library: search text inside PDF file in C#.net
|. Home ›› XDoc.PDF ›› C# PDF: Search PDF Text. C#.NET PDF SDK - Search and Find PDF Text in C#.NET. C#.NET PDF DLLs for Finding Text in PDF Document.
www.rasteredge.com
6. D
OCUMENT DIVISIONS
\fancybreak{{*}\\{* * *}\\{*}}
typesets a little diamond made of asterisks.
The starred versions of the commands indent the first line of the following paragraph.
\plainfancybreak{
space
}{
num
}{
text
}
\plainfancybreak*{
space
}{
num
}{
text
}
If a plain break comes at the top or bottom of a page then it is very difficult for a reader to
discern that there is a break at all. If there is text on the page and enough space left to put
some text after a break the
\plainfancybreak
command will use a
\plainbreak
with
num lines, otherwise (the break would come at the top or bottom of the page) it will use a
\fancybreak
withtext. The space argument is alengthspecifying the space needed for
the num blank lines and some number of text lines for after the plain break. The starred
version of the command uses the starred versions of the
\plainbreak
and
\fancybreak
commands.
Unfortunately there is an interaction between the requested, plain, and fancy break
spaces. Let P be the space (in lines) required for the plain break, F the space (in lines)
required for the fancy break, and S the space argument (inlines). From some experiments
it appears that the condition for the plain break to avoid the top and bottom of the page is
that S − P > 1. Also, the condition for the fancy break to avoid being put in the middle
of a page (i.e., not at the top or bottom) is that S − F < 3. For example, if the plain and
fancy breaks take the same vertical space then S = P +2 is the only value that matches the
conditions. In general, if F = P + n then the condition is 1 < S − P < 3+ n, which means
that for the
\plainfancybreak
command the fancy break must always take at least as
much space as the plain break.
* * *
The
\plainfancybreak
macro inserts aplainbreak in the middle of apage or if the break
would come at the bottom or top of a page it inserts a fancy break instead.
\pfbreak\pfbreak*
\pfbreakskip
\pfbreakdisplay{
text
}
The
\pfbreak
macro is an alternate for
\plainfancybreak
that may be more con-
venient to use. The gap for the plain break is given by the length
\pfbreakskip
which
is initialised to produce two blank lines. The fancy break, which takes the same vertical
space, is given by the text argument of
\pfbreakdisplay
.The default definition:
\newcommand*{\pfbreakdisplay}{*\quad*\quad*}
typesets three asterisks, asshown a few lines before this.
You can change the definition of
\pfbreakdisplay
for a different style if you wish. The
fancy break just before this was produced via:
\renewcommand{\pfbreakdisplay}{%
\ensuremath{\clubsuit\quad\diamondsuit\quad\clubsuit}}
\fancybreak{\pfbreakdisplay}
98
Library control component:C# WPF PDF Viewer SDK to view, annotate, convert and print PDF in
PDF in C#, C# convert PDF to HTML, C# convert PDF to Word, C# extract text from PDF, C# convert PDF to Jpeg, C# compress PDF, C# print PDF, C# merge PDF files
www.rasteredge.com
6.7. Fancy anonymous breaks
Iused
\fancybreak
asI’m not sure where the break will come on the page and the simple
\pfbreak
macro might just have produced a couple of blank lines instead of the fancy
display.
The paragraph following
\pfbreak
is not indented. If you want it indented use the
\pfbreak*
starred version.
§
§ §
The fancy break using fleurons just before this paragraph was produced by:
\renewcommand{\pfbreakdisplay}{%
\ding{167}\quad\ding{167}\quad\ding{167}}
\fancybreak{\pfbreakdisplay}
where the
\ding
command is from thepifontpackage.

The fancy break made with fleurons was simple to specify. There are many other symbols
that you can use in LaTeX and these can be combined in potentially attractive ways to
produce a fancy break like the one just above.
The following idea was originally suggested by Christina Thiele [Thi98], and can be
used to string together mathematical symbols. It works following the same principles as
the dot leaders in the Table of Contents.
Define a macro called with the syntax
\motif{
shape
}
,where shape is a symbol or
other shape to be repeated in a chain,
\newcommand{\motif}[1]{\cleaders\hbox{#1}\hfil}
The definition of
\motif
is basically taken from TeX, and is part of the code for mak-
ing things like dot leaders.
\hbox{
stuff
}
puts stuff into a horizontal box, and
\cleaders
box fills a specified amount of space using whatever number of copies of
the box as is needed; if there is too much space to be filled by a whole number of boxes,
the spare space is spread around equally.
\hfil
is stretchy space. The
\motif
macro
essentially says, fill up a space with with copies of shape.
We also need another macro,
\chain{
shape
}{
length
}
,where
{
shape
}
isa shape to
be repeated as many times as it takes to fill up a distance length.
\newcommand{\chain}[2]{\leavevmode\hbox to #2{\motif{#1}}}
The
\leavevmode
makes sure that we are typesetting horizontally, and
\hbox to
<length>{stuff}
puts stuff into a horizontal box with the fixed length of length.
Roughly, what
\chain
and
\motif
do together is typeset enough copies of shape to
make up a distance length.
That is what we have been aiming for. All that remains is to decide on what shape we
might want to use. Here is one consisting of diamonds.
\makeatletter
\newcommand{\diamonds}{\m@th$\mkern-.6mu \diamond \mkern-.6mu$}
\makeatother
The
\diamond
symbol can only be used in math mode, hence it is surrounded by the
shorthand
$...$
.TeX usually leavesa little space around maths but the
\m@th
command
stops that.
\mkern
adjusts space in math mode, and in this case we are eliminating the
spaces
16
that would normally be on either side of the diamond symbol. The whole effect
gives us a diamond symbol with zero space around it.
16
It is usuallya matter for experiment to find the right values for thekerning.
99
6. D
OCUMENT DIVISIONS
The fancy break at the start of this discussion was typeset by
% define \motif, \chain, \diamonds and then
\fancybreak{\chain{\diamonds}{0.25\textwidth}}
The code is not part of thememoirclass; I defined it just as indicated in the body of the
book. It would more naturally go into the preamble or a package. You might like to try
specifying your own pattern, say
\clubs
,using the
\club
math symbol but leaving some
space between them.
6.8 F
OOTNOTES IN DIVISION HEADINGS
With the sectioning commands the text of the required argument title is used as the text
for the section title in the body of the document.
When the optional argument toc-title is used in a sectioning command it is moving
and any fragile commands must be
\protect
ed, while the title argument is fixed. The
toc-title also serves double duty:
1. It is used as the text of the title in the ToC;
2. It is used as the text in page headers.
If the optional argument is not present, then the title is moving and serves the triple
duty of providing the text for the body and ToC titles and for page headers.
Some folk feelanurge to adda footnote to a sectioning title, whichshouldbe resisted. If
their flesh isweak, then the optional argument must be used and the
\footnote
attached
to the required argument only. If the optional argument isnot used then the footnote mark
and text is likely to be scattered all over the place, on the section page, in the ToC, on any
page that includes title in its headers. This is unacceptable to any reader. So, a footnoted
title should look like this:
\chapter[Title]{Title\footnote{Do you really have to do this?}}
6.9 P
REDEFINED HEADING STYLES
All LaTeX classes for typesetting books and reports provide a particular style for sectional
headings. Thememoirclass is unusual in that it provides several sets of heading styles.
Each set has different spacing around the division heads, and different fonts in different
sizes. As areference, Table 6.5lists the default fonts used for the sectional headings. These
fonts are all bold but in different sizes depending on the division level.
\makeheadstyles{
name
}{
code
}
\headstyles{
name
}
The default sectionaldivision head styles provided bymemoirform the default headstyles
and give the same appearance as the standardbook andreport classes. The set is created
via the
\makeheadstyles
macro and called for via the
headstyles
declaration.
\makeheadstyles{default}{%
\renewcommand*{\booknamefont}{\normalfont\huge\bfseries}
%% and so on down to subparagraph specification
\renewcommand*{\subparaheadstyle}{\normalfont\normalsize\bfseries}
}
\headstyles{default}
100
6.9. Predefined heading styles
Table 6.5: Default fonts for sectional headings
\booknamefont
\huge\bfseries
huge
\booknumfont
\huge\bfseries
huge
\booktitlefont
\Huge\bfseries
Huge
\partnamefont
\huge\bfseries
huge
\partnumfont
\huge\bfseries
huge
\parttitlefont
\Huge\bfseries
Huge
\chapnamefont
\huge\bfseries
huge
\chapnumfont
\huge\bfseries
huge
\chaptitlefont
\Huge\bfseries
Huge
\secheadstyle
\Large\bfseries
Large
\subsecheadstyle
\large\bfseries
Large
\subsubsecheadstyle \normalsize\bfseries
normal
\paraheadstyle
\normalsize\bfseries
normal
\subparaheadstyle
\normalsize\bfseries
normal
A somewhat different set of headstyles is used for this manual. When using
\makeheadstyles
you only need to specify things that differ from the default. Within
the class the memman set of headstyles is defined as:
\newcommand*{\addperiod}[1]{#1.}
\makeheadstyles{memman}{%
% book changes
\renewcommand*{\booknamefont}{\normalfont\huge\sffamily}
\renewcommand*{\booknumfont}{\normalfont\huge\sffamily}
\renewcommand*{\booktitlefont}{\normalfont\Huge\sffamily}
\renewcommand*{\midbookskip}{\par\vskip 2\onelineskip}%
% part changes
\renewcommand*{\partnamefont}{\normalfont\huge\sffamily}
\renewcommand*{\partnumfont}{\normalfont\huge\sffamily}
\renewcommand*{\parttitlefont}{\normalfont\Huge\sffamily}
\renewcommand*{\midpartskip}{\par\vskip 2\onelineskip}%
% chapter
\chapterstyle{demo3}
% section
\setbeforesecskip{-1.333\onelineskip
\@plus -0.5\onelineskip \@minus -.5\onelineskip}%
\setaftersecskip{0.667\onelineskip \@plus 0.1\onelineskip}%
\setsecheadstyle{\normalfont\scshape\raggedright}%
% subsection
\setbeforesubsecskip{-0.667\onelineskip
101
6. D
OCUMENT DIVISIONS
Table 6.6: Fonts used by different headstyles
Headstyles
chapter section
subsec
subsubsec para
subpara
bringhurst
CAPS
S
.
CAPS
Italic
S
.
CAPS
Italic
Italic
crosshead
Bold
CAPS
Bold
S
.
CAPS
Italic
S
.
CAPS
default
Bold
Bold
Bold
Bold
Bold
Bold
dowding
Italic
CAPS
S
.
CAPS
Italic
Italic
Italic
komalike
Sans
Sans
Sans
Sans
Sans
Sans
memman
Sans
S
.
CAPS
Bold
Italic
Italic
Italic
ntglike
Bold
Bold
Bold
Slanted
Slanted
Slanted
tandh
Bold
CAPS
Italic
Bold
Italic
Italic
wilsondob
Italic
CAPS
Italic
S
.
CAPS
Italic
Italic
\@plus -0.25\onelineskip \@minus -0.25\onelineskip}%
\setaftersubsecskip{0.333\onelineskip \@plus 0.1\onelineskip}%
\setsubsecheadstyle{\normalfont\bfseries\raggedright}%
% subsubsection
\setbeforesubsubsecskip{-0.667\onelineskip
\@plus -0.25\onelineskip \@minus -0.25\onelineskip}%
\setaftersubsubsecskip{0.333\onelineskip \@plus 0.1\onelineskip}%
\setsubsubsecheadstyle{\normalfont\normalsize\itshape\raggedright}%
% paragraph
\setbeforeparaskip{1.0\onelineskip
\@plus 0.5\onelineskip \@minus 0.2\onelineskip}%
\setafterparaskip{-1em}%
\setparaheadstyle{\normalfont\normalsize\itshape\addperiod}%
% subparagraph
\setsubparaindent{\parindent}%
\setbeforesubparaskip{1.0\onelineskip
\@plus 0.5\onelineskip \@minus 0.2\onelineskip}%
\setaftersubparaskip{-1em}%
\setsubparaheadstyle{\normalfont\normalsize\itshape\addperiod}}
You can see the effect throughout this document. This chapter is slightly different in that
Ihave used the pederson chapterstyle instead of the demo3 chapterstyle that I have nor-
mally used.
Several other sets of headstyles are provided as well and the full list is below. The
different fonts used are given in Table 6.6 and generally speaking they start off being large
for chapter heads but are normal size by the time subsubsection heads are reached, or
before.
bringhurst A set based on Bringhurst’s Elements of Typographic Style [Bri99]. It uses the
bringhurst chapterstyle (Figure B.7).
crosshead This set uses the crosshead chapterstyle and the lower level division titles are set as
crossheads.
default The default set corresponding the LaTeXbook class.
102
Documents you may be interested
Documents you may be interested