Overview

Ghostview for Windows is a graphical interface for MS-Windows Ghostscript. Ghostscript is an interpreter for the PostScript page description language used by laser printers. For documents following the Adobe PostScript Document Structuring Conventions, Ghostview for Windows allows selected pages to be viewed or printed. Ghostview for Windows can be used with Windows Ghostscript 2.6 or later. Ghostview for Windows was inspired by Tim Theisen's X11 Ghostview program. The ability to understand DSC comments comes from X11 Ghostview.

Document Structuring Conventions

Opening a Document

Page Selection

Document Information

Printing

Clipboard

Options

Page Orientation

Page Size and Display Resolution

Running Ghostview from the File Manager

Command line options

Copyright

Common Problems

Internals


Document Structuring Conventions

Adobe has defined a set of extended comment conventions that provide additional information about the page structure and resource requirements of a postscript file. If a file contains these Document Structuring Convention (DSC) comments, Ghostview can display pages in random order using Goto and display pages in reverse order using Prev.  Selected pages can be extracted to another file or printed.

If a file does not contain DSC comments, Ghostview can only display the pages in the original order.

DSC conforming files start with the comment line:

 %!PS-Adobe-3.0

where the number 3.0 may change and is the DSC version number. Some programs write postscript files with a control-D as the first character of the file, followed by the comment line mentioned above. Ghostview will correctly report that these files are not DSC conforming, but will still display them with page selection features available. Complain to the author of the program that produced the postscript file. To make the file DSC conforming, edit it to remove the control-D character.

DSC conforming files contain lines such as:

 %%Pages: 24

 %%Page: 1 1

These lines tell Ghostview how many pages a document contains and where they start.  Ghostview uses this information to select individual pages.

Encapsulated PostScript Files (EPSF) are single page documents that contain a subset of the DSC comments and PostScript commands. EPS files start with the comment line:

 %!PS-Adobe-3.0 EPSF-3.0

EPS files are commonly used for inclusion in other documents and for this reason require the bounding box comment:

  %%BoundingBox: llx lly urx ury

where llx, lly, urx and ury are integers giving the x and y coordinates of the lower left and upper right corners of a bounding box which encloses all marks made on the page.

Some EPS files contain a preview of the postscript document. This preview can be a Windows Metafile, a TIFF file, or an Interchange preview (EPSI format). For the Windows Metafile or TIFF file preview, the EPS file under DOS contains a binary header which specifies the location and lengths of the preview and postscript language sections of the EPS file. For the Interchange format, the preview is contained in DSC comments starting with

 %%BeginPreview: width height depth lines

An EPS file with a preview can be created from an EPS file without a preview using Add EPS Preview


Opening a Document

The Open command on the File menu opens a file and displays the first page.

If the file contains DSC comments, pages can be selected using Next, Prev and Goto.

If the file does not contain DSC comments, Prev and Goto will not work.  Another file should not be selected until a last page of the file has been displayed.

When a file is open, Ghostview will display the document filename, the current page (if available) and while the cursor is over the image, the location of the cursor in default user coordinates (1/72 inch). The cursor location is useful for calculating bounding boxes.

The Select File command is similar to Open but it does not display the document. This command is useful for opening a document prior to printing it.

The Close command closes the currently open document. This should be used before the current file is changed by another program. If you do not do this and Ghostview detects that the file length or date have changed, it will close Ghostscript and rescan the document.

See also Print.


Page Selection

Next moves to the next page of a document. This works even if the document does not contain DSC comments.

Prev moves to the previous page.

Redisplay redisplays the current page.

Goto shows a dialog box which allows selection of the next page number to display.  The Select Page dialog box shows page labels since these are likely to be more useful than a sequential page number.

The Prev, Redisplay and Goto commands work only if the document contains DSC comments.


Document Information

A brief information area at the top of the window is used by Ghostview to display the document filename, the current page number and label (if available) and while the cursor is over the image, the location of the cursor in default user coordinates (1/72 inch). The cursor location is useful for calculating bounding boxes.

The Info command on the File menu shows a dialog box with the following information about the DSC comments in the current document.

File is the full pathname to the document.

Type is DSC, EPS or No DSC comments. EPS is an Encapsulated PostScript File - a single page document that contains a subset of the DSC comments and PostScript commands. EPS files are commonly used for inclusion in other documents.

Title is a text title that can be used when printing banner pages and for routing or recognising documents.

Date is the time the document was created.

BoundingBox specifies a box that encloses all the marks painted on the page.  The four integer values are the coordinates of the lower left and upper right corners of the bounding box in default user coordinates (1/72 inch).

Orientation is either Portrait or Landscape.

Default Media gives the media name followed by the width and height of that media in default user coordinates (1/72 inch).

Page Order is either Ascending, Descending or Special

Pages is the total number of pages in the document.

Page gives the page label and page number.

Bitmap is the size of the display bitmap in pixels which may be useful if you are copying the displayed image to the clipboard.


Printing

The Print command on the File menu allows printing of the document using Ghostscript. The Ghostscript printer driver and resolution are selected using the Select Device dialog box.   Pages are selected using the Select Pages dialog box.  The All, Odd and Even buttons provide quick selection of pages.

The mswinprn printer driver uses the windows printer drivers and should work with any printer with raster capabilities. Printer resolution cannot be selected from within Ghostview; use the Control Panel instead.  This driver is very slow.

With all other printer drivers, Ghostscript sends the output direct to the printer, without passing through a Windows printer driver. If you have trouble printing you may have to Print To File and then Print File or use the DOS command COPY /B FILENAME PRN.

This list of available devices and resolutions is stored in the [Devices] section of gsview.ini.  The default list of devices and resolutions is taken from the standard distribution version of Ghostscript for Windows 2.6 and may not be complete.

To print a document without displaying it, open the document using Select File.

Print To File is similar to the Print command except that Ghostscript will write the output to a file instead of sending it to a printer.

If you want to produce a bitmap, some useful drivers are bmpmono, bmp16, bmp16m and bmp256.

Print File sends a file to a local port, bypassing the Windows printer drivers. This is useful for sending a document to a PostScript printer, or for sending an output file produced by Ghostscript to a printer.

Extract allows a range of pages to be copied from the current document to a new document.  For example, ten pages can be extracted from the middle of the current document and written to another file, which will later be sent to a printer.

Properties

PS to EPS


Properties

Some printer drivers allow extra properties to be specified. If two sections are added to the gsview.ini file for these printer drivers, Ghostview will enable the Properties button which will display the Edit Properties dialog box. The following example shows how to add property information for the cdjcolor driver. First add a section which gives the current values. This section, after the first character is removed, gives the options that will appear in the Property list box. The first character is s for string or d for number.

 [cdjcolor]

 dBitsPerPixel=24

 dDepletion=1

 dShingling=2

 dBlackCorrect=4

Next add a section which gives the values to display in the Value list box.

 [cdjcolor values]

 dBitsPerPixel=1,3,8,16,24

 dDepletion=1,2,3

 dShingling=0,1,2

 dBlackCorrect=0,1,2,3,4,5,6,7,8,9

Ghostview will also add the value [Not defined] to the listbox.

When you press the OK button in the Edit Properties dialog box, the current settings are written to the gsview.ini file.

When Ghostview prints a file, it will give Ghostscript the contents of the [cdjcolor] section of gsview.ini as follows:

 -dBitsPerPixel=24 -dDepletion=1 -dShingling=2 -dBlackCorrect=3

If the value of a property is [Not defined], that property will not be sent to Ghostscript.

Some entries for the cdj family of drivers are supplied in the property.ini file that comes with Ghostview.


PS to EPS

In general, it is not possible to convert a PostScript file to EPS. However, many single page PostScript files can be converted to EPS by changing the first line of the file to

 %!PS-Adobe-3.0 EPSF-3.0

and then adding or fixing up the %%BoundingBox comment.

To convert a PostScript file to EPS, the original file must be a single page document.  If the document contains DSC comments and is multi page, extract the desired page with File | Extract. If the document does not contain DSC comments, you will need to edit the file by hand to extract the desired page.

EPS documents must not use any of the following operators:

 banddevice   clear         cleardictstack  copypage

 erasepage    exitserver    framedevice     grestoreall

 initclip     initgraphics  initmatrix      quit

 renderbands  setglobal     setpagedevice   setpageparams

 setshared    startjob      letter          note

 legal        a3            a4              a5

The following operators should be used with care:

 nulldevice   setgstate     sethalftone    setmatrix

 setscreen    settransfer   setcolortransfer

It is your responsibility to make sure that the above requirements are met.

To test if a document contains any of the above operators, select Options | EPS Warn and then Open the desired document. After the page has been displayed, look in the Ghostscript text window. If any of the above operators have been used you should see lines like:

 Warning: EPS files must not use ...

If you find these warnings then do not use PS to EPS. Remember to turn off EPS Warn afterwards.

A document must be displayed before PS to EPS is used. The document must contain a showpage. This is required so that the bounding box can be measured.

For documents without DSC comments, PS to EPS allows a bounding box to be specified, then writes out an EPS file consisting of an EPS wrapper around the original document.

For documents with DSC comments, PS to EPS will change the first line of the file to

 %!PS-Adobe-3.0 EPSF-3.0

then allows the %%BoundingBox comment to be changed or added.

For EPS documents, PS to EPS allows the %%BoundingBox comment to be changed.

See also Add EPS Preview, Extract, EPS Warn.


Clipboard

The Ghostview window can be copied to the Clipboard as a bitmap by selecting Copy from the Edit menu. The bitmap may be a Device Independent Bitmap or it may be a Device Dependent Bitmap, depending on how Ghostscript was compiled. The default for Ghostscript 2.6 is a Device Independent Bitmap (BMP format).

An alternative way to get a bitmap output from Ghostscript is to use one of the BMP drivers.  See Print.

Paste To copies a Device Independent Bitmap from the Clipboard (if available) to a BMP file.

Convert Bitmap converts between a Device Independent Bitmap and a Device Dependent Bitmap. If the clipboard contains a Device Independent Bitmap (BMP format), this is converted to a Device Dependent Bitmap and added to the clipboard. If the clipboard does not contain a colour palette, one is created from the Device Independent Bitmap and added to the clipboard. This option is present because some applications (notably Windows Paintbrush) won't recognise a Device Independent Bitmap in the clipboard.

Add EPS Preview takes a bitmap from the clipboard and uses it to add a preview to an EPS file. Add EPS Preview can create a DOS EPS file with a Windows Metafile or TIFF preview, or an EPSI file with an Interchange preview. To use the Add EPS Preview command the following steps must be followed.

1. Make sure the document has a correct bounding box. A bounding box can be added or changed using File | PS to EPS.

2. Select Orientation | Portrait.

3. Select Options | EPS Clip. This will cause Ghostscript to use a display window the size of the  bounding box instead of the page size.

4. Select Media | Resolution and set a suitable resolution for the preview.  If the resolution is too high the bitmap may not fit in the clipboard, or will make the EPS file excessively large.

5. Open an EPS file that does not contain a preview.

6. Select Edit | Copy.  This tells Ghostscript to copy the display bitmap to the Clipboard.  This allows Ghostview to access the bitmap in the next step.

7. Select Edit | Add EPS Preview, then the preview format, then the new EPS filename.  Ghostview will write a new file containing the original PostScript EPS file and a preview created from the bitmap in the clipboard. The available preview formats are Interchange, TIFF 4, TIFF 5 and Windows Metafile. If adding an Interchange preview, the document must have an %%EndComments line, otherwise Ghostview may put the preview in the wrong place. A TIFF 5 preview is a Class B image with no compression as described in Appendix G of the TIFF 5.0 memorandum.  A TIFF 4 preview is almost identical to the TIFF 5 preview, but avoids using tags which are not described in the TIFF 4 specifiation. WordPerfect 5.1 requires a TIFF 4 preview.

8. Reset Orientation | Portrait, Options | EPS Clip and Media | Resolution to their previous values.

To extract the PostScript or Preview section from a DOS EPS file, use File | Select File followed by Edit | Extract EPS then PostScript or Preview.

See also PS to EPS.


Options

The Options menu has the following selections

Ghostscript Command

Sounds

Save Settings

Safer

Save Last Directory

Button Bar

Quick Open

Auto Redisplay

EPS Clip

EPS Warn


Ghostscript Command

The Ghostscript Command option allows selection of the command to use when executing Ghostscript.  The default is gswin. If Ghostscript is not in the Ghostview directory, or not on the PATH, use this option to set the full pathname to Ghostscript. If you wish to specify that Ghostscript should look for its initialisation files in a different place, add a -I option to the command as in the following example:

 c:\gs\gswin -Ic:\gs;d:\psfonts

Try to keep the command length short, otherwise Ghostview will have trouble printing files with Ghostscript. Only the Ghostscript EXE and include path may be specified - other items will confuse Ghostview.


Sounds

The Sounds option assigns sounds to various events. For each event the sound can be set to None, a Speaker Beep or a Wave file.

You must have a sound driver loaded before using Wave files. Wave file sounds are not available under Windows 3.0.

The events are:

Output Page: the PostScript showpage operator was executed.

No Page: an invalid page was selected. For example, pressing Prev while on the first page of a document with DSC comments.

No Number: a command required page numbering and the document did not have page numbering. For example, pressing Goto when viewing a document without DSC comments.

Not Open:  a command required a document to be open and this was not the case. For example, pressing Goto when no document is open.

Error: many types of errors.

Timeout: no response from Ghostscript within a timeout period. For example, display snowflak.ps on a PC with a 286-12 CPU.

Start: Ghostview opened.

Exit: Ghostview closed.

The defaults are for No Page and Error to be a Speaker Beep and all other events to be None.


Save Settings

The Save Settings option saves the Ghostview window position, window size, last used printer, last directory, Save Last Directory, User Defined, Ghostscript Command, Button Bar, Quick Open, Auto Redisplay, EPS Clip, EPS Warn, Sounds, Orientation, Media and Resolution options to the file gsview.ini in the windows directory. Ghostview reads gsview.ini during startup.

When the Save Settings on Exit option is checked, Ghostview will automatically save the above settings when you quit Ghostview.


Safer

When the Safer option is checked, Ghostview will give Ghostscript  the -dSAFER flag, which disables the deletefile and renamefile operators, and the ability to open files in any mode other than read-only.   This is the default.

When the Safer option is unchecked Ghostscript can change files.


Save Last Directory

When the Save Last Directory option is checked, Ghostview will save the current directory when you quit Ghostview.  When Ghostview is started next, this will be made the current directory. This is the default.

When Save Last Directory option is unchecked, the current directory when Ghostview is started will be the directory where Ghostview is located, or the working directory specified by the Program Manager.


Button Bar

When the Button Bar option is checked, Ghostview will display a Button Bar down the left side of the window.  This is the default. The Button Bar contains the following items:

File | Open

File | Print

File | Info

Help | Contents

File | Goto

File | Next

File | Prev

Go forward 5 pages

Go back 5 pages

When the Button Bar option is unchecked, Ghostview will not display the Button Bar.


Quick Open

When the Quick Open option is checked, Ghostview will not reload Ghostscript before every document, making opening of documents quicker.

Ghostview tries to preserve the Ghostscript state between documents, but a document may still leave the Ghostscript interpreter in an unusual state or cause an error.  If an error occurs, Ghostscript will close. Error messages are displayed in the Ghostscript window. Select Redisplay to reopen the document.

If Quick Open is unchecked, Ghostview will close Ghostscript and restart it before each new document or whenever the page orientation, resolution or size is changed.


Auto Redisplay

When the Auto Redisplay option is checked, Ghostview will redisplay DSC documents when the Orientation, Resolution or Media are changed.

If Auto Redisplay is unchecked, the File | Redisplay command must be used to redisplay a document after changing the Orientation, Resolution or Media.  This is the default.


EPS Clip

When the EPS Clip option is checked, Ghostview will clip the display bitmap to the bounding box of an EPS file instead of using the page size specified on the Media menu.  This is useful when adding a bitmap preview to an EPS file.

If EPS Clip is unchecked, Ghostview will use the page size specified on the Media menu for EPS files.  This is the default.

See also Clipboard | Add EPS Preview


EPS Warn

When the EPS Warn option is checked, Ghostview will write a prolog to Ghostscript when each file is opened.  This prolog will produce warning messages in the Ghostscript text window if any PostScript operators that should not be used in EPS files are used.  An example warning message is:

 Warning: EPS files must not use /initgraphics

EPS Warn is not infallible.  It is possible to access restricted operators without EPS Warn producing a warning.

The default for EPS Warn is unchecked.

See also PS to EPS.


Page Orientation

The Portrait, Landscape, Upside-down and Seascape (reverse Landscape) commands on the Orientation Menu select the page orientation used by the display. Landscape implies a clockwise rotation of the paper by 90 degrees. Seascape implies an anti-clockwise rotation of the paper by 90 degrees. These orientation options only affect the display and do not affect the print commands. If a DSC page orientation comment is found, the orientation will be selected automatically.

When the Swap Landscape option is checked, Ghostview swaps the meaning of Landscape and Seascape. Most of the Landscape documents that I have encountered require a 90 clockwise rotation of the paper to view. However, there is no standard and some documents need to be rotated the other way. The Swap Landscape button allows Ghostview to automatically rotate the document the right way in response to the %%Orientation comment in the PostScript file.


Page Size and Display Resolution

The Resolution command on the Media menu selects the display resolution in dots per inch. The default for a VGA display is 96 dots per inch.

The Media menu also allows selection of page size. Available page sizes are:

 Letter          8.5 x 11   inch

 Tabloid        11   x 17   inch

 Ledger         17   x 11   inch

 Legal           8.5 x 14   inch

 Statement       5.5 x  8.5 inch

 Executive       7.5 x 10   inch

 A3              297 x 420  mm

 A4              210 x 297  mm

 A5              148 x 210  mm

 B4              257 x 364  mm

 B5              182 x 257  mm

 Folio           8.5 x 13   inch

 Quarto          8.5 x 10.8 inch

 10x14          10   x 14   inch

A user defined size can be specified in PostScript points (1/72 inch) with the User Defined command.  A size of 480x360 points at 96 dpi will give an image size of 640x480 pixels.

If a DSC media comment is found, the page type will be selected automatically.  If the media specification is not one of the above page types, the User Defined size will be set.


Running Ghostview from the File Manager

To run Ghostview when a PostScript file is double clicked in the File Manager, the following sequence must be followed to teach File Manager about PostScript files.

From the Program Manager, run the Registration Info Editor using File | Run... then type regedit. From the Registration Info Editor select Edit | Add File Type... then enter the following fields:

 Identifier = psfile

 Filetype = PostScript

 Action = Open

 Command = gsview %1

 Uses DDE = unchecked

 Action = Print

 Command = gsview /p %1

 Uses DDE = unchecked

Then press OK.

From the File Manager, select File | Associate then enter the following fields:

 Files with Extension = ps

 Associate With = PostScript (gsview)

Then press OK.

Put gsview.exe and gsview.hlp in a directory on your PATH. That's it!  Now when you double click on a PostScript file, the File Manager will run Ghostview.  When you drop a PostScript file on the Print Manager, Ghostview will print the file.


Command line options

Usage:

 gsview [/D] filename

 gsview [/D] /F filename

 gsview [/D] /P filename

 gsview [/D] /S[port] filename

To start Ghostview and display filename.ps use:

 gsview filename.ps

To start Ghostview and print filename.ps using Ghostscript  (File | Print) use:

 gsview /P filename.ps

To start Ghostview and print filename.ps to a file using Ghostscript (File | Print To File) use:

 gsview /F filename.ps

To start Ghostview and spool filename.ps for printing directly to  a printer (File | Print File) use:

 gsview /S filename.ps

To start Ghostview and spool filename.ps for printing directly to printer port LPT3: use:

 gsview /SLPT3: filename.ps

To start Ghostview in debug mode use:

 gsview /D

In debug mode Ghostview will not remove its temporary files. This is to allow inspection of these files after Ghostview has finished.

Ghostview for Windows ignores the case of option: /p is the same as /P.


Copyright

The About menu item shows the Ghostview copyright message and Ghostview version number.

 GSVIEW.EXE - A Ghostscript graphical interface

 Copyright (C) 1993  Russell Lang

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

    Author: Russell Lang

  Internet: rjl@monu1.cc.monash.edu.au

ps.c module Copyright (C) 1992 Tim Theisen (tim@cs.wisc.edu).


Common Problems

Problem: Ghostview can't run gswin.

Ghostview requires Ghostscript for Windows (gswin.exe). If you don't have Ghostscript for Windows, it is hardly suprising that Ghostview can't run it.

From the Ghostview menu select Options | Ghostscript Command and enter the correct executable path and include path for Ghostscript. For example:

 c:\gs\gswin.exe -Ic:\gs

The default Ghostscript Command is gswin.  This will work if Ghostscript is in the same directory as Ghostview, or if the Ghostscript directory is on the PATH.

Make sure you don't already have Windows Ghostscript running. Only one copy of Windows Ghostscript can be running at a time. Only one copy of Ghostview can be running at a time.

Problem: Ghostscript starts and then immediately exits with error code 1.

Read the error message in the Ghostscript window before pressing OK in the message box.

Ghostscript probably couldn't find its initialisation files. Set the environment variable GS_LIB to the directory containing the Ghostscript initialisation files, or add -Idirectory to the command in Options | Ghostscript Command.

Read the file use.doc that comes with Ghostscript.

Problem: Message Box says Incompatible Windows Ghostscript

You probably have an earlier version of Ghostscript. Make sure you have Ghostscript version 2.6 or later.

Problem: Ghostview says 'wait' and shows an hourglass cursor. When the cursor is moved off the Ghostview window it changes to a normal arrow.

The above state is normal while Ghostview is waiting for Ghostscript to do something.  It may be that the document is very complex and Ghostscript is just taking a long time.  In this state it is safe to resize or scroll the window, but do not select any menu commands.

If this is not the case then Ghostview probably got no response from Ghostscript. Open the Ghostscript text window and look at any error messages. Close Ghostscript using the Ghostscript system menu. If Ghostview is still waiting, press the Ghostview Open button (even though the cursor is still an hourglass). Press the 'Yes' button on the 'gsview is busy' message box. Ghostview should then revert to the non-waiting mode.

Problem: Ghostview says that a multipage postscript file produced by Word for Windows contains 0 pages and will only show the first page.

This is because the document does not have correct DSC comments. From the Control Panel, select Printers, Options..., Advanced and then check the Conform to Adobe Document Structuring Convention.

The DSC comment %%Pages: 0 means that the document does not produce any pages.  That is, the PostScript showpage operator is not used. If you find a PostScript document that has multiple pages and contains the %%Pages: 0 comment, change the first line from %!-PS-Adobe- to %!. Ghostview will then ignore the DSC comments and allow you to view all pages, but only in the original order.  Complain to the author of the program that produced that PostScript file.

Problem: PostScript files produced by Windows start with a Control-D.

Since this occurs even when the PostScript printer Conform to Document Structuring Convention checkbox is checked, this must be considered a bug in the Windows PostScript printer driver. The solution is documented in the Windows PRINTERS.WRI file. Edit the win.ini file and search for the postscript printer section. There may be more than one.  In each of these sections add CTRLD=0 as shown below.

 [Apple LaserWriter II NT,FILE]

 CTRLD=0

Problem: Ghostscript always outputs to a printer instead of the Ghostview window.

You must not use the GS_DEVICE environment variable.


Internals

The preferred method for driving Ghostscript would be to start it as a child process and then to send it postscript code through a pipe. Windows 3.1 supports neither child processes nor pipes.

Ghostview interacts with Ghostscript by sending messages between the Ghostview and Ghostscript windows. Ghostview creates an imitation pipe to Ghostscript by writing into a shareable global memory block and then passing the handle to Ghostscript.

Ghostview starts Ghostscript for displaying using

 gswin -rXDPIxYDPI -gWIDTHxHEIGHT -sGSVIEW=xxxx -

where xxxx is the handle to the Ghostview window. Ghostscript then tells Ghostview the handle to the text window by sending a message WM_USER with wParam HWND_TEXT=0 to the Ghostview window. Instead of creating another window for the image, Ghostscript creates a child window of the Ghostview window for displaying the bitmap. Ghostscript tells Ghostview the handle to this child image window by sending a message WM_USER with wParam HWND_IMGCHILD=1.

Ghostscript also sends WM_USER messages to Ghostview with wParam GSWIN_CLOSE=2 when it is exiting, SYNC_OUTPUT=3 when the image needs to be redrawn (win_sync_output), OUTPUT_PAGE=4 when a page is to be output (win_output_page), SCROLL_POSITION=5 when the window is scrolled and PIPE_DATA=6 for passing the handle to a global memory block (in lParam) for the imitation pipe.

When Ghostscript sends the OUTPUT_PAGE command it waits until it receives a NEXT_PAGE command from Ghostview.

Ghostview sends WM_USER messages to the Ghostscript Image window with wParam NEXT_PAGE=10 when it is time to move to the next page and COPY_CLIPBOARD=11 when the bitmap should be copied to the clipboard. Ghostview sends WM_USER messages to the Ghostscript Text window with wParam PIPE_REQUEST=12 when it wants more pipe data.

Ghostview uses temporary files of the name gsviewXX.XXX in the directory given by the TEMP environment variable. Keep TEMP short to avoid the gswin command line exceeding 128 characters.

Ghostview starts Ghostscript for printing using

 gswin -sGSVIEW=xxxx @optfile filename.ps quit.ps

optfile contains

 -dNOPAUSE

 -sDEVICE=devname

 -rXDPIxYDPI

 -gWIDTHxHEIGHT

 -sOutputFile=filename

The ability to select individual pages for an Adobe Document Structuring Conventions conforming document is due to the inclusion of the ps.c module from X11 Ghostview by Tim Theisen (ghostview@cs.wisc.edu). Don't send mail to Tim about Ghostview for Windows, unless it is about a bug in the ps.c module.