mvc display pdf from byte array : Extract images from pdf file software control cloud windows azure html class epslatex4-part1881

Itisimportanttonotethatthefile-searchingassociatedwith\graphicspathdirec-
toriesismuchslowerthanthatassociatedwithTEXINPUTSdirectories.Furthermore,
eachfilesearchdoneina\graphicspathdirectoryconsumesadditionalpoolspace
(seeSection13.4onPage41).
Duetothese inefficiencies,useof f \graphicspath h isgenerally discouraged. . In-
stead,itisusuallybettertospecifysubdirectoriesbymodifyingtheT
E
Xsearchpath
(seeSection13.1onPage39).
13.4 ConservingPoolSpace
T
E
Xreserves a portion n of its memory y calledpool space e for r its internalpassing of
strings. Whenever r T
E
X opens a file e (or tries s to o open a file), , some e pool space is
permanently used. . When n opening a large number r of files, , this s lost memory may
causeT
E
Xtorunoutofpoolspace,causinganerrorsimilarto
! TeX capacity exceeded, sorry [poolsize=72288]
Since the amount of lost pool space is a function of the length of the filename,
specifying subdirectories aggravates this pool space problem.
With the exception ofthe latest web2c version and some commercial distributions,
the only way to increase the pool size is to recompile T
E
X. Fortunately, the following
pool-conservation rules usually solve the problem.
• Avoid excessively-long file names.
• Don’t include the subdirectory names
\includegraphics{sub/file.eps}
Instead, change the T
E
Xsearch path or move the files out of the subdirectory.
• Don’t use the \graphicspath command.
\graphicspath{{dir1/}{dir2/}}
...
\includegraphics{file.eps}
causes \includegraphics to try to open the following files
file.eps
dir1/file.eps
dir2/file.eps
Each of these attempts consumes pool space. Instead of using \graphicspath,
modify the T
E
Xsearch path.
• Specify the entire filename, do not omit the files extension/suffix (e.g., .eps).
With the default \DeclareGraphicsExtensions (seeSection9.1 on Page 29),
the command
\includegraphics{file}
causes \includegraphics to try to open the following files
file.eps
file.ps
file.eps.gz
file.ps.gz
file.eps.Z
This is especially inefficient when used in conjunction with \graphicspath.
Issuing a \DeclareGraphicsExtensions command with a minimal number of
extensions minimizes the inefficiency of omitting the extension.
41
Extract images from pdf file - Select, copy, paste PDF images in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
how to extract images from pdf in acrobat; extract photos from pdf
Extract images from pdf file - VB.NET PDF Image Extract Library: Select, copy, paste PDF images in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Support PDF Image Extraction from a Page, a Region on a Page, and PDF Document
extract image from pdf c#; extract jpg pdf
Note that \includegraphics only consumes pool space when it opens or attempts to
open a file. Since \includegraphics opens files to determine the graphic’s Bound-
ingBox, an effective but inconvenient method of preventing pool space consumption
is to specify the BoundingBox parameters with the \includegraphics command’s
bb option (seeTable1on Page 25).
14 Compressed and Non-EPS Graphics Files in dvips
As described in Section 1, for dvips-style documents, LAT
E
Xshifts the graphics-
insertion burden onto the
dvi
programs. This means that a LAT
E
Xdocument can
use any graphic format which is supported by the
dvi
program.
While virtually all
dvi
-to-
ps
converters support insertion of
eps
graphics, few
converters support non-
eps
graphics. This means the using non-EPS graphics with
advips-style document generally requires converting the non-
eps
graphics into
eps
form. This can be done in two ways:
Convert the ahead of time Before
dvi
-to-
ps
conversion, usea graphics-conversion
program to convert the non-
eps
graphic into
eps
format. This converted
eps
file is stored and subsequently used by the
dvi
-to-
ps
converter.
Convert on-the-fly Duringthe
dvi
-to-
ps
conversion, the
dvi
-to-
ps
converter calls
agraphics-conversion program, with thegraphics-conversion output being piped
back into
dvi
-to-
ps
converter and inserted into the final
ps
file.
The disadvantage of converting ahead of time is that it requires storage of a sec-
ond version of the graphics file. Although the “Convert on-the-fly” procedure does
not require the additional storage, the same graphics-conversion computations are
repeated at every
dvi
-to-
ps
execution. This is a storage-vs-speed tradeoff, but most
users prefer the speed of the “Convert ahead of time”.
Rather than directly incorporating graphics-conversion routines, dvips provides
a mechanism for calling external conversion programs
19
. This mechanism can be
accessed from L
A
T
E
Xby use command argument of \DeclareGraphicsRule. This is
more flexible than direct support because it keeps the graphics-conversion uncoupled
from the
dvi
-to-
ps
conversion, allowing users to use the graphics-conversion program
of their choice.
When using dvips and an operating system which supports pipes
20
one can
use \DeclareGraphicsRule (seeSection9.2 on Page 30) to specify an operation to
be performed on the file. Making this operation a decompression command allows
compressed graphics files to be used. Making this operation a graphics-conversion
command allows non-
eps
graphics files can be used.
Since dvips is currently the only
dvi
-to-
ps
converter with this capability, every-
thing in this section requires dvips. Users need to pass the dvips option to the
graphicx package. This can be done by either specifying the dvips global option in
the \documentclass command
\documentclass[dvips,11pt]{article}
or by specifying the dvips option in the \usepackage command
\usepackage[dvips]{graphicx}
Specifying the dvips option in \documentclass it is preferred because it passes the
dvips option to all packages.
19
This requires an operating system which supports pipes. For example, Unix supports pipes
while
dos
does not.
20
For example, Unix supports pipes while
dos
does not.
42
C# PDF Text Extract Library: extract text content from PDF file in
Ability to extract highlighted text out of PDF control provides text extraction from PDF images and image extracting PDF text to another PDF file, TXT and SVG
online pdf image extractor; extract image from pdf
VB.NET PDF Text Extract Library: extract text content from PDF
Extract highlighted text out of PDF document. control provides text extraction from PDF images and image extracting PDF text to another PDF file, and other
extract image from pdf using; extract image from pdf java
14.1 Compressed EPS Example
The steps for using compressed
eps
files are
1. Create an
eps
file (file1.eps for example)
2. Store the BoundingBox line in another file (file1.eps.bb)
3. Compress the
eps
file. For example, on many platforms, the command
gzip -9 file1.eps
creates the compressed file file1.eps.gz. The -9 (or -best) option specifies
maximum compression.
4. Include theproper \DeclareGraphicsRule command before the\includegraphics
command in the LAT
E
Xfile. The \DeclareGraphicsRule command informs
L
A
T
E
X how to treat the particular suffix (see Section 9.2 on Page 30). For
example
\documentclass[dvips]{article}
\usepackage{graphicx}
\begin{document}
\DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{‘gunzip -c #1}
\begin{figure}
\centering
\includegraphics[width=3in]{file1.eps.gz}
\caption{Compressed EPS Graphic}
\label{fig:compressed:eps}
\end{figure}
\end{document}
In this particular case, the \DeclareGraphicsRule command is actually not neces-
sary because it happens to be one of the graphics rules pre-defined in dvips.def.
If another compression program or suffixes were used, the \DeclareGraphicsRule
command would be mandatory. For example, if the BoundingBox file had been stored
in file1.bb, the corresponding \DeclareGraphicsRule would be
\DeclareGraphicsRule{.eps.gz}{eps}{.bb}{‘gunzip -c #1}
14.2 Non-EPS Graphic Files
While it is easy to insert
eps
graphics into LAT
E
Xdocuments, it is not as straight-
forward to insert non-
eps
graphics (
gif
,
tiff
,
jpeg
,
pict
,etc.). A simple solution
is to determine whether the application which generated the non-
eps
graphic also
generates
eps
output. If not, a graphics-conversion program (see Section 6.2 on
Page 17) must be used to convert the graphics to PostScript.
Since a non-
eps
graphics file may be smaller than the corresponding
eps
file,
it may be desirable to keep the graphics in a non-
eps
format and convert them to
PostScript when the
dvi
file is converted to PostScript. If dvips is used, this on-the-
fly conversion can be specified by the command option in \DeclareGraphicsRule.
For example, using on-the-fly conversion to insert file2.gif into a L
A
T
E
Xdocument
requires the following steps
1. Find a
gif
-to-
eps
conversion program (assume it’s called gif2eps)
2. One needs to create a BoundingBox file which specifies the natural size of the
file2.gif graphics. To do this, convert file2.gif to PostScript and
(a) If the PostScript file contains a BoundingBox line, save the BoundingBox
line in file2.gif.bb
43
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Reduce image resources: Since images are usually or large size, images size reducing can help to reduce PDF file size effectively.
extract photo from pdf; extract image from pdf acrobat
C# PDF File Compress Library: Compress reduce PDF size in C#.net
Reduce image resources: Since images are usually or large size, images size reducing can help to reduce PDF file size effectively.
extract pdf images; extract images from pdf
(b) If the PostScript file contains no BoundingBox line, determine the appro-
priate BoundingBox (seeSection3.2 on Page 12) and place those numbers
in a %%BoundingBox: line in file2.gif.bb
3. Keep file2.gif and file2.gif.bb and delete the PostScript file.
4. Include \DeclareGraphicsRule{.gif}{eps}{.gif.bb}{‘gif2eps #1}
before the \includegraphics command in the L
A
T
E
Xfile.
When \includegraphics{file.gif} is issued, L
A
T
E
Xreads the BoundingBox from
file.gif.bb and tells dvips to use gif2eps to convert file.gif to
eps
.
14.3 GIF Example
While the commands necessary for including non-
eps
graphics are dependent on
the operating system and the graphics conversion program, this section provides
examples for two common Unix conversion programs. The commands
\DeclareGraphicsRule{.gif}{eps}{.gif.bb}{‘convert #1 ’eps:-’ }
\begin{figure}
\centering
\includegraphics[width=3in]{file2.gif}
\caption{GIF Graphic}
\end{figure}
use the convert program (part of the ImageMagick package) package to translate
the
gif
file into
eps
. The command
convert file2.gif ’eps:-’
translates file2.gif into
eps
format (specified by the “eps:” option), sending the
result to standard output (specified by the “-” specification).
Alternatively, one can use the ppm utilities in which giftoppm, ppmtopgm, and
pgmtops convert the
gif
file to
eps
via the ppm and grayscale pgm formats. In Unix,
thepipingbetween theseprograms is specified by the following \DeclareGraphicsRule
command
\DeclareGraphicsRule{.gif}{eps}{.gif.bb}{‘giftoppm #1 | ppmtopgm | pgmtops}
14.4 T
E
XSearch Path and dvips
When L
A
T
E
X encounters an \includegraphics command, it looks in the current
directory for the file. If it does not find the file in the current directory, it searches
through the T
E
Xpath for the file. When the
dvi
file is converted to PostScript,
dvips performs the same search routine and everything works well. However, when
an on-the-fly command is specified in the \DeclareGraphicsRule command, the
on-the-fly command prevents dvips from properly searching the T
E
Xpath.
For example, the rule
\DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}{‘gunzip -c #1}
specifies that the gunzip -c command be used on files having a .eps.gz suffix.
Suppose the following command is used
\includegraphics{file.eps.gz}
If file.eps.gz and file.eps.bb are in the current directory, the path-searching is
not needed and everything works well. LAT
E
Xuses file.eps.bb and dvips executes
gunzip -c file.eps.gz to uncompress the file.
However, things don’t work if file.eps.gz and file.eps.bb are not in the cur-
rent directory. If they are instead in the directory /a/b/c/ (on the T
E
Xpath), LAT
E
X
searches the path to find /a/b/c/file.eps.bb. However, problems occur when
44
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
VB.NET Components to combine various scanned images to PDF, such as tiff, jpg, png, gif, bmp, etc. Append one PDF file to the end of another one in VB.NET.
extract images from pdf c#; extract pictures from pdf
C# PDF File Merge Library: Merge, append PDF files in C#.net, ASP.
Combine scanned images to PDF, such as tiff, jpg, png, gif, bmp, etc. Merge Microsoft Office Word, Excel and PowerPoint data to PDF form. Append one PDF file to
pdf image extractor c#; extract vector image from pdf
dvips executes ‘gunzip -c file.eps.gz because gunzip cannot find file.eps.gz.
If the T
E
Xdistribution uses a recent kpathsea library (as does the teTeX distribu-
tion), this problem can be solved by the following graphics rule
\DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}%
{‘gunzip -c ‘kpsewhich -n latex tex #1‘}
which uses kpsewhich to find the file for gunzip. The
‘kpsewhich -n latex tex #1
command causes dvips look for the compressed file on the T
E
Xsearch path. The
full filename (including subdirectories) is then appended to the gunzip -c command,
allowing gunzip to find the file even though it is not in the current directory.
While this new \DeclareGraphicsRule command can be placed at the begin-
ning of every document, it may be more convenient to add the following to the
graphics.cfg file
\AtEndOfPackage{%
\DeclareGraphicsRule{.eps.gz}{eps}{.eps.bb}%
{‘gunzip -c ‘kpsewhich -n latex tex #1‘}}
and leaving the existing \ExecuteOptions{dvips} line.
15 The PSfrag Package
While there are many drawing and analysis packages which produce
eps
files, most
do not support symbols and equations as well as LAT
E
X. The
ps
frag package allows
LAT
E
Xusers to replace text strings in
eps
files with LAT
E
Xtext or equations.
Table 5: PSfrag Options
PStext
Text in
eps
file to be replaced.
posn
(Optional, Defaults to [Bl].) Position of placement point relative to new LAT
E
X
text.
PSposn
(Optional, Defaults to [Bl].) Position of placement point relative to existing
eps
text.
scale
(Optional, defaults to 1.) Scaling factor for the text. For best results, avoid using
the scaling factor and instead use L
A
T
E
Xtype-size commands such as \small and
\large
rot
(Optional, defaults to zero.) When an angle is specified, it is the angle of rotation
of the new text relative to the existing text. The angle is in degrees with a counter-
clockwise rotation being positive.
This option is especially useful when dealing with applications which only allow
horizontal text in their
eps
files.
text
The LAT
E
Xtext to insert into the
eps
graphic.
Like regular LAT
E
Xtext, math formulas must be enclosed by dollar signs (e.g.,
$\frac{1}{2}$ or $x^2$).
ps
frag 3.0 was totally re-written and released in November 1996. Previous ver-
sions of
ps
frag required running a preprocessor (such as ps2frag or ps2psfrag) to
identify and tag all the text in the
eps
file. Since
ps
frag 3.0 requires no preprocess-
ing, it does not require any external programs such as perl or ghostscript.
ps
frag
3.0 only requires a recent L
A
T
E
Xand the graphics bundle distributed with L
A
T
E
X.
Reference [29] provides complete documentation on
ps
frag 3.0.
45
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
Dim outputFilePath As String = Program.RootPath + "\\" 1.pdf" newDoc.Save( outputFilePath). VB.NET: Extract All Images from PDF Document.
some pdf image extractor; extract images pdf
C# PDF File Split Library: Split, seperate PDF into multiple files
Application. Best and professional adobe PDF file splitting SDK for Visual Studio .NET. outputOps); Divide PDF File into Two Using C#.
extract pdf pages to jpg; extract pictures pdf
An additional benefit of
ps
frag rewrite is that it now supports compressed
eps
graphics. However, the \tex command (described inSection15.3 on Page 48) cannot
be used to embed L
A
T
E
Xtext in compressed graphics.
To use
ps
frag, create an
eps
file and then perform the following steps
1. Include \usepackage{psfrag} in the preamble of the LAT
E
Xdocument.
2. In the document, use the \psfrag command to specify the
eps
text to replace
and the L
A
T
E
Xstring to replace it. This makes the specified substitution occur
in any subsequent \includegraphics command issued in the same environ-
ment.
3. Use the \includegraphics command as usual.
The LAT
E
X\psfrag command has the following syntax
\psfrag{PStext}[posn][PSposn][scale][rot]{text}
with its arguments described inTable5.
The posn and PSposn options are one of the 12 points (such as [tl], [br], [cc])
shown inFigure3on Page 28. If the optional arguments are not issued, the point
defaults to [Bl]. Any missing letters default to c (e.g., [] and [c] are equivalent
to [cc], [l] is equivalent to [lc]). See [29] for examples of various combinations of
placement points.
Note that \psfrag matches entire text strings. Thus the command
\psfrag{pi}{$\pi$}
replaces the string pi with π, but does not affect the strings pi/2 or 2pi. Separate
\psfrag commands must entered for these strings.
ps
frag cannot perform the replacement unless the entire
eps
stringis constructed
Problems
with Kerning
with a single PostScript command. Some programs break string up into sub-strings
or individual letters in order to perform kerning. For example, Corel Draw produced
the following
eps
code to place the string “Hello World”
0 0 (Hello W) @t
1080 0 (orld) @t
Since
ps
frag sees this as two unrelated strings “Hello W” and “orld”, it cannot
perform any replacement of “Hello World”. If the kerning cannot be manually turned
off, using Courier or other monospaced fonts often prevents the kerning
21
. If the
kerning cannot be avoided, only single-character replacement strings can be used.
15.1 PSfrag Example #1
The commands
\includegraphics{pend.eps}
include the graphic without any
ps
frag replacement, producingFigure9. The com-
mands
\psfrag{q1}{$\theta_1$}
\psfrag{q2}{$\theta_2$}
\psfrag{L1}{$L_1$}
\psfrag{L2}{$L_2$}
\psfrag{P1}[][]{$P_1$}
\psfrag{P2}[][]{\large $P_2$}
\includegraphics{pend.eps}
21
In order to avoid kerning, the font may need to be set to Courier before the text is created.
That is, creating the text and then converting it to Courier may still result in kerning.
46
include the graphic with
ps
frag replacement, producing Figure 10. The first four
\psfrag commands position the new L
A
T
E
Xtext such that its left baseline point cor-
responds to the left baseline point of the
eps
text. The last two \psfrag commands
use the [][] options to position the L
A
T
E
X text such that its center corresponds
to the center of the
eps
text. Note that the N tag inFigure10 is left unchanged,
showing that not all
eps
text has to be replaced.
L1
N
P1
q1
q2
L2
P2
Figure 9: Without PSfrag Replacement
N
θ
1
θ
2
L
1
L
2
P
1
P
2
Figure 10: With PSfrag Replacement
15.2 PSfrag Example #2
This example demonstrates how the \shortstack, \colorbox, and \fcolorbox com-
mands can be used with \psfrag.
shortstack The \shortstack command allows text to be stacked vertically, which
can be used to substitute multiple lines of text for a single line of text. The
lines of text are separated by the \\ command.
colorbox The \colorbox command (part of the color package, which is distributed
with LAT
E
X) places a rectangular color background behind an object. The
distance that the background extends beyond the object is controlled by the
\fboxsep length. For example,
\colorbox{white}{text}
places a rectangular white background behind text. See the graphics bundle
documentation [7] for details on \colorbox.
With
ps
frag, \colorbox is useful for placing text at a location where lines or
shading would make it difficult to view the text. Placing a white background
behind the text prevents the drawing from obstructing the text.
fcolorbox The \fcolorbox command (also part of the color package) is similar to
the \colorbox command, except that a frame is drawn around the background.
The command \fcolorbox{black}{white}{text} puts a white background
with a rectangular black frame behind text.
The thickness of the frame is controlled by the length \fboxrule and the
spacing between the frame and the text/object is controlled by the length
\fboxsep.
Figure 11showsthegraphicwithout
ps
frag substitution. The commands
\psfrag{q1}[][]{\colorbox{white}{$q_1$}}
\psfrag{base}{\fcolorbox{black}{white}{Base}}
\psfrag{Actuator}[l][l]{\shortstack{Hydraulic\\ Actuator}}
\includegraphics{mass.eps}
use
ps
frag to produce the graphics inFigure12.
47
q1
Actuator
base
Figure 11: Without PSfrag Replace-
ment
q
1
Base
Hydraulic
Actuator
Figure 12: With PSfrag Replacement
15.3 L
A
T
E
XText in EPS File
The recommended and most popular method for using
ps
frag is the \psfrag com-
mand described in the previous section. An alternative, less efficient, method for
using
ps
frag is the \tex command, which embeds the L
A
T
E
Xtext directly in the
eps
file. See [29] for more information.
15.4 Figure and Text Scaling with PSfrag
If a graphic using
ps
frag is scaled, the
ps
frag text is scaled along with the graphic.
As a result, a subtlety of the graphicx package affects the size of the text.
• When the width, height, or totalheight options are used to size the graphic
\includegraphics[width=3in]{file.eps}
the
ps
frag text is inserted after the scaling. Conversely,
\resizebox{3in}{!}{\includegraphics{file.eps}}
Includes the graphic at its natural size, inserts the
ps
frag text, and then scales
both the graphics and the text.
• Similarly, when scaling options are specified before rotation
\includegraphics[width=3in,angle=30]{file.eps}
the scaling is implicitly handled by the graphics inclusion function. However,
when scaling options are specified after rotation
\includegraphics[angle=30,width=3in]{file.eps}
the graphic is first included at its natural size, then rotated, and then scaled.
Since
ps
frag replaces the new text during the graphics inclusion, the second
command scales the new
ps
frag text while the first command does not. When
the included size of the
eps
graphic greatly differs from its natural size, the
two commands produce very different results.
See [29] for more information on the scaling of
ps
frag text.
15.5 PSfrag and PDFT
E
X
ps
frag cannot be used with pdfT
E
X. If
ps
frag substitution is needed, one option is
to use the L
A
T
E
X-to-
dvi
-to-PostScript-to-
pdf
route that was used before pdfT
E
X.
While this allows
ps
frag substitution, users lose the advantages that pdfT
E
Xpro-
vides.
A better (although more laborious) method is to use
ps
frag indirectly with
pdfT
E
X. This allows
ps
fragsubstitution while also keepingthe advantages of pdfT
E
X.
48
1. For each graphic that uses
ps
frag, create a separate L
A
T
E
X file containing
the
ps
frag commands and the \includegraphics command. You must use
\pagestyle{empty} to prevent page numbers from being placed on the page.
Assume these
ps
frag LAT
E
Xfiles are named
GraphicFrag00.tex
GraphicFrag01.tex
...
2. At the operating system command line, perform the following steps
latex GraphicFrag00.tex
dvips -E GraphicFrag00
epstool --copy --bbox GraphicFrag00.ps GraphicFrag00.eps
epstopdf GraphicFrag00.eps
The first command creates
GraphicFrag00.dvi
. The second command cre-
ates
GraphicFrag00.ps
. The third command calculates the BoundingBox for
GraphicFrag00.ps
and inserts the BoundingBox and contents of
GraphicFrag00.ps
into
GraphicFrag00.eps
. The last command converts
GraphicFrag00.eps
into
pdf
format.
3. Repeat step 2 for
GraphicFrag01.tex
,.. .
4. Use \includegraphics to include the resulting
pdf
files
GraphicFrag00.pdf
GraphicFrag01.pdf
...
into the original LAT
E
Xfile.
5. Process the LAT
E
Xfile with pdflatex.
16 Including An EPS File Multiple Times
When the same
eps
graphic is inserted multiple times, its
eps
code appears multiple
times in the final
ps
file. In particular, this often happens when a logo or other
graphics are inserted into a document’s header or footer. This section describes
improved methods for inserting a graphic multiple times
22
.
There are four common methods for including the same
eps
graphics many times
1. Use \includegraphics{file.eps} wherever you want the graphic. This has
two problems
(a) LAT
E
Xmust find and read the file every time \includegraphics is used.
(b) The
eps
graphics commands are repeated in the final
ps
file, producing
alarge file.
2. Save the graphics in a LAT
E
X box and use the box wherever you want the
graphic. This saves LAT
E
Xtime since it must only find and read the file once.
However, it does not reduce the size of the final PostScript file.
At the beginning of the file, include the following commands
\newsavebox{\mygraphic}
\sbox{\mygraphic}{\includegraphics{file.eps}}
22
Although this document does not yet document it, users are encouraged to consider the
graphicx-psmin package[20], which provides a way to include a repeated PostScript graphic only
once in a PostScript document. This package only works when the
dvi
file is post-processed with
dvips version 5.95b or later.
49
Then use the command \usebox{\mygraphic} wherever you want the graphic.
(The graphics can bescaled by placing the \usebox command inside a \scalebox
or \resizebox command.)
3. When the
eps
file contains vector graphics (as opposed to bitmapped graphics),
it is possible to write a PostScript command which draws the graphics
23
. The
graphic can then be included by issuing the PostScript command wherever the
graphic is needed. Section16.1 on Page 50 describes this procedure.
Since the final PostScript file includes the graphics commands only once, the
final PostScript file is much smaller. Note that since the graphics commands
are stored in printer memory while the final PostScript file is being printed,
this method may cause the printer to run out of memory and not print the
document.
Although this method results in a small final PostScript file, it still requires
LAT
E
Xto find and read the file containing the PostScript commands.
4. Likethe previous method, define aPostScript command which draws thegraph-
ics, but include this command in a LAT
E
Xbox. This results in a small final
PostScript file and only requires LAT
E
Xto find and read the file once.
16.1 Defining a PostScript Command
This section describes how to created a PostScript command which draws the graph-
ics from an
eps
file containing vector graphics. This procedure does not work if the
eps
file contains bitmapped graphics.
To convert the
eps
graphics into a PostScript command, the
eps
file must be
broken into two files, one which defines the PostScript dictionary and the graphics
commands, and another which includes the header information and the uses the
previously-defined PostScript command. For example, an
eps
file created by Xfig
has the form
%!PS-Adobe-2.0 EPSF-2.0
%%Title: /tmp/xfig-fig017255
%%Creator: fig2dev Version 2.1.8 Patchlevel 0
%%CreationDate: Sun Sep 3 15:36:01 1995
%%Orientation: Portrait
%%BoundingBox: 0 0 369 255
%%Pages: 0
%%EndComments
/$F2psDict 200 dict def
$F2psDict begin
...
%%EndProlog
$F2psBegin
...
$F2psEnd
23
While it is possible to construct a PostScript command which draws vector graphics, it turns out
to be a “feature” of
eps
that is impossible to construct such a command for bitmapped graphics.
Bitmapped graphics are usually converted to
eps
by having the image (or colorimage) PostScript
operators read the current file as data. It is not possible to put such constructs into a PostScript
procedure. It is possible to change the
eps
file so that it passes theimage data as PostScript strings
rather than reading the file, but this is difficult to automate and generally requires a fair amount of
hand editing of the PostScript.
Since most people are not PostScript experts, hand-editing the PostScript is generally not an
option. If the graphic can be described by PostScript vector primitives, it may be possible to use
the
kvec
program (see page19) to successfully convert the graphic to vector format.
50
Documents you may be interested
Documents you may be interested