summaryrefslogtreecommitdiff
path: root/doc/ghostpdl.tex
diff options
context:
space:
mode:
Diffstat (limited to 'doc/ghostpdl.tex')
-rw-r--r--doc/ghostpdl.tex104
1 files changed, 44 insertions, 60 deletions
diff --git a/doc/ghostpdl.tex b/doc/ghostpdl.tex
index 0832386ef..439e97592 100644
--- a/doc/ghostpdl.tex
+++ b/doc/ghostpdl.tex
@@ -11,7 +11,7 @@ GhostPDL \footnote{PDL stands for Page Description Language} family of products:
\emph{HPGL/2} with \emph{RTL}~\cite{RTLTRM}, additionally a scaled
down \emph{PJL}~\cite{PJLTRM} interpreter is provided. The PDL
products use the Ghostscript Graphic Library for graphics, imaging and
-driver support. GhostPDL may be configured with PostScript and PDF support but these PDL's are not documented here, for these see the Ghostscript documentation at
+driver support. GhostPDL may be configured with PostScript and PDF support but these PDL's are not documented here, see the Ghostscript documentation at
\url{www.ghostscript.com/doc/} for information about these languages.
The relevant ghostscript version used by the PDL's can be found
in gs/base/version.mak. The GhostPDL product may be configured with
@@ -29,22 +29,16 @@ pcl and pxl source code directories should be consulted for
discrepancy details: Anomalies.txt (PCL), pxcet.txt (PCLXL), and
pxfts.txt (PCLXL).
-For printer customers we have GhostSwitch. GhostSwitch integrates
-Ghostscript's Postscript and PDF interpreter with GhostPCL and optionally GhostXPS in a
-language switching environment with auto language sensing and PJL job
-control as found on many modern printers.
-
In this document and the software, PCL6 refers to technology that
supports both PCL5 and PCLXL languages.
-\subsection*{Quick Start For Unix environment with GCC.}
+\subsection*{Quick Start for Unix environment with GCC.}
\begin{verbatim}
# unpack the release and go to the release directory.
-tar zxvf ghostpcl-xxx.tar.gz; cd ghostpcl-xxx
-make pcl # build pcl
-make xps # build xps
-
-NB - needs more examples - install, urwfonts, debug builds...
+tar zxvf ghostpdl-xxx.tar.gz; cd ghostpdl-xxx
+./configure
+make pcl # build pcl
+make xps # build xps
\end{verbatim}
\subsection*{Supported development environments}
@@ -124,15 +118,18 @@ have obtained the archived compressed version use:
\item[urwfonts] 80 URW TrueType fonts.
+\item[win32] Microsoft Visual C project files and instructions (ReadMe.txt) how to use them.
+
\end{description}
This directory structure is the default, but the directories can be
rearranged with minor modifications to the makefiles.
\subsection*{Building with Microsoft Visual C/C++}
-The GhostPDL tools are known to build with Visual C/C++ 4.0, 5.0 and 6.0, Visual Studio 2005 and 2008. \footnote{A subset of the components have been known to build with these tools}
-NB "makefile wrapping" no longer works in Visual Studio.
+The recommended way to build is to use the project files found in the subdirectory win32, there is a ReadMe.txt file containing instructions. The rest of this section may prove helpful if you wish to wrestle with Microsoft's NMAKE.
+
+The GhostPDL tools are known to build with Visual C/C++ 4.0, 5.0 and 6.0, Visual Studio 2005 and 2008. \footnote{A subset of the components have been known to build with these tools}. Automatic makefile wrapping to projects file stopped working some time ago, we aren't sure which Visual Studio version deprecated the functionality.
There are 2 ways of building the PCL components with Microsoft Visual
C/C++: Convert the current makefile environment to a Visual C/C++
@@ -152,7 +149,7 @@ a Visual C++ project:
\textbf{NMAKE /f pcl6\_msvc.mak DEBUG=1
DEVSTUDIO=c:$\backslash$progra~1$\backslash$micros~3}\footnote{DEBUG=1/0
- on/off will require you manually clean;  del
+ on/off will require you manually clean; del
main$\backslash$obj$\backslash$*.*}
Now set the name of the executable for debuggging to
@@ -184,7 +181,7 @@ Unix environment with GCC.
The PCL tools have been compiled on Solaris with the Sun Development
Tools and SGI with the native SGI C compiler. We only provide
makefiles for the gcc tools and assume users can customize the gcc
-makefiles such that they work with vendor's compilers.  For the Sun
+makefiles such that they work with vendor's compilers. For the Sun
Development tools the following workaround is sufficient to build the
software:
@@ -198,7 +195,7 @@ makefile should be constructed.
\subsection*{Customizing the build process}
-The build process is completely configurable.  Here is a list of
+The build process is completely configurable. Here is a list of
things that are user will most like be interested in customizing. To
change any of these see the appropriate makefile for your platform in
the ``main'' subdirectory
@@ -211,7 +208,7 @@ the ``main'' subdirectory
\item The font scaling technology.
\begin{itemize}
\item Defaults to /tmp/pjl0 and /tmp/pjl1
-\item Edit pl/pl.mak  PJL\_VOLUME\_0 and PJL\_VOLUME\_1 to match desired root
+\item Edit pl/pl.mak PJL\_VOLUME\_0 and PJL\_VOLUME\_1 to match desired root
\end{itemize}
\end{itemize}
@@ -219,14 +216,15 @@ the ``main'' subdirectory
All of these can be configured in the top level makefile or can be
specified on the make command line.
-The following make targets are available:
+Sample make targets include:
\begin{description}
\item[debug] build tools with symbols and debugging information
\item[product] builds optimized code.
-\item[pg-fp] builds profiling code for hardware with floating point.
-\item[pg-nofp] builds profiling code for hardware with no floating point (i\.e\. with floating point emulation software).
+\item[pdl-pg] builds profiling.
\end{description}
+For a complete list of targets see the top level makefile named Makefile. Each target is somewhat self explanatory.
+
\subsection*{Building only one Language}
PCL or PCL-XL can be built together in a language switching
environment or each can be built alone with the supporting PJL
@@ -234,9 +232,6 @@ interpreter. The simplest way to implement one language is simply to
remove the unwanted implementation from the pdl implementation table
located in pl/plimpl.c:
-
-NB - there are now makefile variables that can be used to select languages.
-
For example, this is the default table with two implementations: PCL and XL.
\begin{tabbing}
@@ -259,7 +254,7 @@ Few things are harder to put up with than a good example.
\end{quote}
-Most ghostscript options, as described in the  Ghostscript
+Most ghostscript options, as described in the Ghostscript
documentation \url{www.ghostscript.com/doc/}, have similar effect in
the GhostPCL system. Of course, options specific to the PostScript or
PDF language are not relevant and are ignored.
@@ -267,23 +262,14 @@ PDF language are not relevant and are ignored.
\textbf{pcl6 mypcl.pcl}
-
-
Interpret a pcl file called mypcl.pcl and render it to the default
-device.  For now the default device on systems with x11 is a full
-color x11 display, other system default to laserjet 4 output suitable
-for a monochrome laser printer.
-
+device, usually a simple display is the default, X11 on Unix like systems and the Window's display device on Windows.
\textbf{pcl6 -dTextAlphaBits=4 mypcltext.pcl}
-When rendering pcl text onn a low (screen) resolution display device,
+When rendering pcl text on a low (screen) resolution display device,
use the TextAlphaBits option to enable anti-aliasing.
-\textbf{pcl6 -sDEVICE=x11 mypcl.pcl}
-
-Interpret a pcl file called mypcl.pcl and render to the x11 device.
-
\textbf{pcl6 -sDEVICE=ljet4 -sOutputFile=''$|$ lpr'' -dNOPAUSE mypcl.pcl}
Interpret mypcl.pcl and send the Laserjet 4 formatted output to the
@@ -297,14 +283,12 @@ files named pcxpage.1, pcxpage.2, pcxpage.3, etc.
\textbf{pcl6 -r72 -sDEVICE=x11mono mypcl.pcl -r100 -sDEVICE=x11 mypcl.pcl}
Render a pcl file at 72dpi on the monochrome X11 device, then render
-the same file at 100 dpi  on color X11 device.  This demonstrates
+the same file at 100 dpi on color X11 device. This demonstrates
on-the-fly device switching.
-\textbf{pcl6 -sDEVICE=bmpamono -sOutputFile=foo.bmp mypcl.pcl}
+\textbf{./pcl6 -J"@PJL SET SYMSET = ISOL1" mypcl.pcl}
-The bmpamono (1 bit)  and bmpa16m (full color) run asynchronously.  In
-short, the language and graphics library produce bands in one thread
-while the device renders the bands in a second thread.
+PJL or PCL Job control commands can be set directly on the command line. This example sets the default symbol set to ISO Latin 1.
\textbf{pcl6 -sDEVICE=pdfwrite -sOutputFile=mypcl.pdf mypcl.pcl}
@@ -314,57 +298,57 @@ mypcl.pdf.
\textbf{pcl6}
Simply running the interpreter should generate some useful information
-about the available options and devices.  
+about the available options and devices.
\subsection*{PCL Personality}
-The PCL emulation comes in three flavors: PCL5E, PCL5C, and RTL.  The
+The PCL emulation comes in three flavors: PCL5E, PCL5C, and RTL. The
PCL5E personality thresholds colors to black and white irrespective of
-the color parameters of the output device.  PCL5C is the color
-personality, used with a monochrome device it will grayscale colors. 
+the color parameters of the output device. PCL5C is the color
+personality, used with a monochrome device it will grayscale colors.
The RTL personality can be used to print HPGL/2 RTL plot files.
-\textbf{pcl6 -PRTL myrtl.rtl}
+\textbf{pcl6 -lRTL myrtl.rtl}
run the interpreter with the rtl personality.
-\textbf{pcl6 -PPCL5E -sDEVICE=ljet4 mypcl.pcl}
+\textbf{pcl6 -lPCL5E -sDEVICE=ljet4 mypcl.pcl}
-run the interpreter with the pcl5e personality.  This will threshold
+run the interpreter with the pcl5e personality. This will threshold
colors to black and white (ljet4 is a 1 bit device).
-\textbf{pcl6 -PPCL5C -sDEVICE=ljet4 mypcl.pcl}
+\textbf{pcl6 -lPCL5C -sDEVICE=ljet4 mypcl.pcl}
-run the interpreter with the pcl5c personality.  This will grayscale
+run the interpreter with the pcl5c personality. This will grayscale
colors on the 1 bit output device. If not set on the command line the
pcl interpreter personality will be set to PCL5E if the output device
-is 1 bit per pixel otherwise it is set to PCL5C.  RTL must be
-explicitly set on the command line.  RTL always grayscales and never
+is 1 bit per pixel otherwise it is set to PCL5C. RTL must be
+explicitly set on the command line. RTL always grayscales and never
thresholds colors to black and white.
\subsection*{Fonts}
-The release is packaged with 80 high quality URW TrueType fonts.  For
+The release is packaged with 80 high quality URW TrueType fonts. For
commercial use of the GhostPCL technology these fonts can be licensed
-from Artifex.  The fonts are searched for in either the fonts,
+from Artifex. The fonts are searched for in either the fonts,
/windows/fonts, or a directory specified with the PCLFONTSOURCE
environment variable. For historical reasons the directory path must
be specified using forward slashes and must include a trailing slash.
-Fonts and a font scaler from a third-party vendor such as  Agfa  or 
-Bitstream  may also be used.  There is an existing interface for
+Fonts and a font scaler from a third-party vendor such as Agfa or
+Bitstream may also be used. There is an existing interface for
integrating the AGFA Universal Font Scaler Technology, several Artifex
-customers currently use this solution.  The software can use Hewlett
+customers currently use this solution. The software can use Hewlett
Packard FONTSMART version 1.5 or Windows TrueType fonts, using either
of these font solutions require minor PCL code modifications.
\subsection*{PCL Code changes required to use other TrueType fonts.}
To use a new set of TrueType fonts requires modifying the C code in
-the file pl/plftable.c.  The C structure resident\_table contains a
-list of Windows TrueType font names.  In the released package these
+the file pl/plftable.c. The C structure resident\_table contains a
+list of Windows TrueType font names. In the released package these
names will correspond with the Windows True Type font names in the URW
-font set.  To use a different font set these names must be replaced
+font set. To use a different font set these names must be replaced
with the new font names and the code (at least the plftable.c module)
should be recompiled and linked. The file tools/fontpage.pcl can be
run to display font samples and the pcl escape sequences required to