═══ 1. Overview ═══ PM GSview is a graphical interface for OS/2 Ghostscript. Ghostscript is an interpreter for the PostScript page description language used by laser printers. For documents following the Adobe PostScript Document Structuring Conventions, GSview allows selected pages to be viewed or printed. GSview should be used with Ghostscript 3.33 or later. GSview was inspired by Tim Theisen's X11 Ghostview program. Installation Document Structuring Conventions Opening a Document Page Selection Zoom Document Information Printing Text Extract and Find Clipboard Options Page Orientation Page Size and Display Resolution Keys Command line options World Wide Web Copyright Common Problems Internals ═══ 2. Installation ═══ First you need to install Ghostscript 3.12 or later. This version of GSview will not work with earlier versions of Ghostscript. Ghostscript 3.33 or later is preferred. Next install PM GSview by copying gvpm.exe and gvpm.hlp to your Ghostscript directory. Start GSview then select Options | Ghostscript Command, and enter the correct executable path and include path for Ghostscript. For example c:\gs\gsos2.exe -Ic:\gs;c:\psfonts It is essential that you get both the executable and the include path correct otherwise GSview will either complain that it cannot run gsos2, or it will start and then immediately exit with an error code. Set the environment variable TEMP to point to a directory for temporary files. For example: SET TEMP=c:\temp The directory must exist and must be writeable. If you have some Type 1 fonts on your system, it may be possible to tell Ghostscript to use them. See Fontmap.os2 and Fontmap.atm supplied with Ghostscript for examples. See the Fonts topic. If you have problems, try reading the help topic Common Problems. To uninstall GSview, remove the files you installed above, then remove c:\os2\gvpm.ini from the appropriate system directory. Ghostscript Installation Portable Document Format Include Path Fonts ═══ 2.1. Ghostscript Installation ═══ The following describes how to install Ghostscript, not GSview. The primary documentation on installing Ghostscript is found in the Ghostscript file use.doc. Aladdin Ghostscript for the PC is available on the Internet from ftp://ftp.cs.wisc.edu/ghost/aladdin/gsNNNxxx.zip Where NNN is the version number. For Ghostscript 3.33, the files requires to run Ghostscript are: gs333ini.zip plus one or more of gs333dos.zip (MS-DOS 386 EXE) gs333os2.zip (OS/2 2.0 or later EXE) gs333win.zip (MS-Windows 3.1 16bit EXE) gs333w32.zip (MS-Windows 3.1/Win32s or MS-Windows 95 or NT EXE) If you do not already have a set of Type 1 fonts, you will also need gs333fn1.zip The following assumes that Ghostscript is to be installed on drive d:. Unzip the INI zip file and the required EXE zip files from the root directory. This should put the files into the directory d:\gs3.33. If you also need the fonts, change to the d:\gs3.33 directory and then unzip gs333fn1.zip. This will put font files into .\fonts. To run Ghostscript, set the GS_LIB environment variable as follows SET GS_LIB=d:\gs3.33;d:\gs3.33\fonts then start the appropriate EXE. To run Ghostscript without using the environment variable, use the following command d:\gs3.33\gs -Id:\gs3.33;d:\gs3.33\fonts where the EXE name needs to be replaced with the appropriate name (gs, gs386, gswin, gswin32 or gsos2). If you already have some Type 1 fonts, there are two ways to tell Ghostscript about these fonts: editing/replacing the Fontmap file, or the GS_FONTPATH environment variable. See the Ghostscript use.doc and the sample Fontmap files for details. See the Include Path and Fonts topics for more details. ═══ 2.2. Portable Document Format ═══ GSview can display PDF files, although there are a number of problems with the current method. To enable display of PDF files, copy the file pdf2dsc.ps from the GSview src directory to the Ghostscript lib directory. When you open a PDF file, GSview will start up Ghostscript and using pdf2dsc.ps will create a temporary DSC file which will contain commands to display pages of the PDF file. GSview will then start Ghostscript a second time to actually display the PDF file. Known problems with the current implemtentation are: - For long PDF files, GSview will take a long time to scan the PDF file. Be patient. - Ghostscript is used twice to scan the PDF file, which makes it take even longer. The GSview PDF code should eventually be rewritten to avoid using the temporary DSC file so that only one pass is needed. - Zoom doesn't work for PDF files. Attempting to use it will probably cause GSview to crash with an out of memory error. - Doesn't sense if PDF file has been changed during display. ═══ 2.3. Include Path ═══ Ghostscript needs to read some initialisation files during startup, and needs to read font files before drawing text. When used on a PC with GSview, it is normal to tell Ghostscript where to find these files using the Ghostscript -I command line switch. Alternatively, the GS_LIB environment variable can be used. See below for details for Unix or VMS. The -I switch or GS_LIB environment variable contains a list of directories to search for the required initialisation files. On a PC, it is normal to put the initialisation files in the same directory as the Ghostscript program. If Ghostscript is in c:\gs, then -Ic:\gs would be used as a command line option to Ghostscript. Ghostscript also needs to find font files. The list of fonts known to Ghostscript is contained in the Fontmap file. The directories which contain these fonts should be added to the -I switch. If the Ghostscript *.gsf fonts are in c:\gs\fonts, and some other *.pfb fonts are in c:\psfonts, then -Ic:\gs;c:\gs\fonts;c:\psfonts would be used as a command line option to Ghostscript on a PC. Under Unix or VMS with Ghostview, the include path should have been configured when Ghostscript was compiled. If not, and Ghostview is being used, use the GS_LIB environment variable instead of -I. The Ghostscript include files are generally not put in the same directory as the executable under Unix. Instead the executable might be in /usr/local/bin while the include files are in /usr/local/lib/ghostscript/gs3.33 and the fonts in /usr/local/lib/ghostscript/fonts Consequently, the GS_LIB environment variable would need to be set to /usr/local/lib/ghostscript/gs3.33:/usr/local/lib/ghostscript/fonts It is to be hoped that these were set as the default when Ghostscript was compiled, and that it is unnecessary to use GS_LIB. For more information, see the following topic. File searching ═══ 2.3.1. File searching ═══ (from Ghostscript use.doc) When looking for the initialisation files (gs_*.ps), the files related to fonts (Fontmap, *.pfa, *.pfb, *.gsf), or the file for the 'run' operator, Ghostscript first checks whether the file name specifies an explicit directory or drive (i.e., doesn't begin with '/' on Unix systems; doesn't contain a ':' or begin with a '/' or '\' on MS-DOS systems; doesn't contain a ':' or a square bracket on VMS systems). If it does, Ghostscript simply tries to open the file using the given name. Otherwise, Ghostscript will try directories in the following order: 1. The directory/ies specified by the -I switch(es) in the command line (see below), if any; 2. The directory/ies specified by the GS_LIB environment variable, if any; 3. The directory/ies specified by the GS_LIB_DEFAULT macro in the Ghostscript makefile, if any. Each of these (GS_LIB_DEFAULT, GS_LIB, and -I parameter) may be either a single directory, or a list of directories separated by a character appropriate for the operating system (':' on Unix systems, ';' on VMS systems, ';' on MS-DOS systems). Ghostscript 3.12 use.doc states that: Note that Ghostscript does *not* attempt to open the file in the current directory. This is consistent with common practice on Unix, but it is different from the usual practice on MS-DOS. This is incorrect. Ghostscript does search in the current directory. ═══ 2.4. Fonts ═══ Ghostscript locates fonts in two ways: 1. Those listed explicitly in Fontmap 2. Font files found in directories listed in the GS_FONTPATH environment variable. Those listed in the Fontmap file should be locatable on the Ghostscript include path, or should have fully qualified paths. Note that you must use / or \\ and must not use \ within a directory name. Ghostscript comes with a number of free fonts, most with a .gsf extension. These are ordinary Type 1 fonts (although they cannot be used with Adobe Type Manager). The Ghostscript fonts can be broken into three main classes: 1. Type 1 outline fonts with hinting (most *.pfa). These produce good quality output. The standard Fontmap file uses these in preference to the other font types. There are relatively few of these fonts. 2. Type 1 outline fonts that have been created from bitmap fonts (p*.gsf, z*.gsf, etc.). These produce poor quality output. Avoid them if at all possible. A full set of the common 35 PostScript fonts is available. 3. Type 1 stroked fonts created from the public domain Hershey fonts (h*.gsf, h*.pfa). These produce moderate quality output, but do not correspond to standard PostScript fonts. If you have some other Type 1 outline fonts (*.pfa, *.pfb), it is possible to use these with Ghostscript. Whether or not you are allowed to do this depends on the font licence. If you do use these fonts with Ghostscript, it is your responsibility to make sure that the font licence permits this use. To use the other Type 1 fonts, you will need to replace or edit the Fontmap file. The reason for using these other Type 1 fonts is that they are almost certainly of better quality than the Type 1 bitmap derived fonts supplied with Ghostscript. However, good quality fonts are not usually free. Fontmap GS_FONTPATH Platform Fonts ═══ 2.4.1. Fontmap ═══ The Fontmap file tells Ghostscript what fonts are available and where to find them. Each line in Fontmap may be one of the following: 1. A comment. These are lines that start with a % % fontmap aka Fontmap - standard font catalog for Ghostscript. 2. A font name and file name. For example /Courier (ncrr.pfa) ; /Courier-Italic (ncrri.pfa) ; The first of these lines says that the font name Courier is to be found in the file ncrr.pfa. The file ncrr.pfa must contain a font named Courier. If the name is not Courier then a font alias must be used. This is described later. Note that the file name is a PostScript string and so \ has a special meaning. If ncrr.pfa was in the c:\gs\fonts directory, you would need to have c:\gs\fonts as one of the directories listed in the include path, or you would need to use the file name (c:/gs/fonts/ncrr.pfa) or (c:\\gs\\fonts\\ncrr.pfa). Using / is preferred to \\. 3. A font alias. For example /Courier-Oblique /Courier-Italic ; This tells Ghostscript that if Courier-Oblique is requested, Courier-Italic is to be used instead. The standard Fontmap file uses aliases to replace poor quality bitmap-derived fonts with good quality hinted outline fonts. Ghostscript has a bitmap derived version of the Helvetica font in the file phvr.gsf. The Fontmap file could instruct Ghostscript to use this with the following line: /Helvetica (phvr.gsf) ; However, the NimbusSansL-Regular font looks like Helvetica and is a better quality font, so the default Fontmap file actually uses /Helvetica /NimbusSansL-Regular ; /NimbusSansL-Regular (n019003l.gsf) ; A description of the required formatting for each line is near the top of each Fontmap file. Ghostscript comes with a number of alternate Fontmap files. These include Fontmap The standard fontmap file Fontmap.ATB For Adobe Type Basics (65 Type 1 fonts) Fontmap.ATM For Adobe Type Manager (13 fonts) Fontmap.OS2 For Type 1 fonts shipped with OS/2 (13 fonts) Fontmap.OSF For DEC OSF/1 systems Fontmap.Ult For DEC Ultrix systems Fontmap.VMS For VAX/VMS systems with DECwindows/Motif If you want to use one of the alternate Fontmap files, the procedure is as follows: 1. Copy Fontmap to Fontmap.old 2. Copy Fontmap.??? (your selected Fontmap file) to Fontmap 3. Add the directory that contains the Type 1 fonts to the include path (-I or GS_LIB) ═══ 2.4.2. GS_FONTPATH ═══ (From Ghostscript use.doc) When Ghostscript starts up, it also looks at the GS_FONTPATH environment variable, which is also a list of directories. It goes to those directories and looks for all files that appear to contain PostScript fonts; it then effectively adds all those files and fonts to its internal copy of the Fontmap (the catalog of fonts and the files that contain them). If you are using one of the following types of computer, you may wish to set GS_FONTPATH to the indicated value so that Ghostscript will automatically acquire all the installed Type 1 fonts: System type GS_FONTPATH ----------- ----------- AIX /usr/lpp/DPS/fonts/outlines NeXT /NextLibrary/Fonts/outline OSF/1 /usr/lib/X11/fonts/Type1Adobe Silicon Graphics /usr/lib/DPS/outline/base Sun (Solaris 2.3) /usr/openwin/lib/X11/fonts/Type1/outline Ultrix /usr/lib/DPS/outline/decwin See also Fontmap. ═══ 2.4.3. Platform Fonts ═══ Platform fonts are described in Ghostscript fonts.doc. The bitmap derived fonts used by Ghostscript are of poor quality. The computer hosting Ghostscript may have the same fonts in better quality versions, either as scalable fonts (e.g. Type 1 or TrueType) or as bitmaps. To improve the display of documents, Ghostscript can use these platform fonts instead of using the low quality fonts. This can be illustrated with an example. The default /Helvetica-Bold font is phvb.gsf, an outline font derived from a bitmap. When the /Helvetica-Bold font is requested, phvb.gsf is read. When a character is to be rendered to the display, Ghostscript instead asks MS-Windows for the Helvetica-Bold font at the appropriate size. MS-Windows then draws the requested character from the TrueType Arial Bold font, and Ghostscript puts it on the display. The resulting output is of better quality than the /Helvetica-Bold bitmap derived font. In another example, the same request for /Helvetica-Bold under Unix/X11 might instead display characters using a prebuilt bitmap font if one is available in the requested size. There are some limitations to using Platform fonts. 1. Platform fonts are only used for upright (Portrait) characters. Rotated characters will be displayed using the original PostScript font. 2. A PostScript version of the required font must be available. This is needed to obtain character bounding box information, encoding vector for character sets, and drawing rotated characters. 3. Platform fonts may only used for a limited range of sizes. For example, MS-Windows only uses platform fonts for 6 to 36 point fonts. 4. MS-Windows lies about the available font sizes. Ghostscript asks for a particular font size and MS-Windows returns a font that it claims is the same size. However MS-Windows may instead return a font of a different size that it thinks will look better. Often it looks worse because the intercharacter spacing is out of proportion to the character size. If this happens, platform fonts can be disabled by adding -dNOPLATFONTS to the Ghostscript Command Line. 5. Platform fonts will only be used for the display. Output to printer devices will continue to use the PostScript font. MS-Windows Ghostscript has a fixed alias table for fonts. In the table below, the name on the left is the name of the PostScript font, and the name on the right is the name that Ghostscript will try if MS-Windows doesn't know the PostScript name. Courier Courier New Helvetica Arial Helvetica Helv Times Times New Roman Times Tms Rmn Platform fonts are not supported under OS/2. Not yet written: Unix/X11 Ghostscript may have an ability to use Xresources to specify font aliases. If this is the case, then the method should be described here. ═══ 3. 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, GSview can display pages in random order using Goto Page and display pages in reverse order using Previous Page. Selected pages can be extracted to another file or printed. If a file does not contain DSC comments, GSview 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. GSview 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 GSview how many pages a document contains and where they start. GSview 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. ═══ 4. 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 Page, Previous Page and Goto Page. If the file does not contain DSC comments, Previous Page and Goto Page will not work. Another file should not be selected until a last page of the file has been displayed. When a file is open, GSview will display the document filename, the current page (if available) and while the cursor is over the image, the location of the cursor in coordinates specified by Options | Units. The coordinate can be PostScript points (1/72"), millimetres or inches. 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 Save As command saves a copy of the current document. This is useful if GSview is being used as a PostScript viewer by another application and you wish to save the currently displayed file. 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. 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 GSview detects that the file length or date have changed, it will close Ghostscript and rescan the document. See also Print. PS to EPS ═══ 4.1. 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. When used incorrectly, the PS to EPS command can produce PostScript files with incorrect DSC comments. Such a document will cause problems when you try to include it inside another document. 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. PS to EPS does not clip the document to the %%BoundingBox. To do so would require changing the PostScript code itself. PS to EPS only changes the DSC comments. PS to EPS does not add a preview to a document. If you want a preview you add it with Edit | Add EPS Preview after first creating an EPS file with a correct %%BoundingBox. See also Add EPS Preview, Extract, EPS Warn. ═══ 5. Page Selection ═══ View | Next Page or the + button moves to the next page of a document. This works even if the document does not contain DSC comments. View | Previous Page or the - button moves to the previous page. View | Redisplay redisplays the current page. View | Goto Page or the pointing hand button 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 Previous Page, Redisplay and Goto Page commands work only if the document contains DSC comments. ═══ 6. Zoom ═══ To enlarge a displayed feature, position the cross-hair mouse pointer over the feature then press the right mouse button. The window will swap from normal display resolution to zoom resolution and the status line will have the word Zoomed appended to it. The zoomed feature will be in the centre of the window. To cancel Zoom, press the right mouse button again or select any command that redraws the page (e.g. Redisplay, Next Page). By default the zoom resolution is 300 dots per inch but this can be changed with the Media | Zoom Resolution command. Zoom will only work for DSC conforming documents. ═══ 7. Document Information ═══ A brief information area at the top of the window is used by GSview 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 coordinates specified by Options | Units. 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, No DSC comments or 'Ignoring 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. Ignoring DSC Comments is displayed if Options | Ignore DSC is selected. 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. ═══ 8. 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. This list of available devices and resolutions is stored in the [Devices] section of gvpm.ini. The default list of devices and resolutions is taken from the standard distribution version of Ghostscript 3.33 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 Presentation Manager 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. Properties ═══ 8.1. Properties ═══ Some printer drivers allow extra properties to be specified. If two sections are added to the gvpm.ini file for these printer drivers, GSview 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 GSview 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 gvpm.ini file. When GSview prints a file, it will give Ghostscript the contents of the [cdjcolor] section of gvpm.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 GSview. ═══ 9. Text Extract and Find ═══ In general, extracting text from a PostScript document is not a trivial operation. Words may be broken. Text may be encoded. Ligatures may be used (e.g replacing 'fi' with a single character). There may be no relationship between the location of a word in the PostScript file and its location on the page. However, it is common for PostScript documents to contain text in the same order as it appears on the page, and for it to be given in PostScript strings, surrounded by parentheses. Complete lines may be given in one string, or one word per string. For this sort of document, extracting text can be done with reasonable success. Edit | Text Extract will extract text contained in strings from specified pages and write it to a text file. Line breaks in this text file correspond to lines in the document. Spaces in the text file correspond to spaces within strings, or to separate strings. A more effective method of extracting text is to use ps2ascii.ps supplied with Ghostscript. Edit | Find will search for text and display the first page that contains the text. Find asks for a search text and a range of pages in which to search. The preceeding comments about extracting text from a PostScript document should be noted. Find first extracts text from the document, then searches it ignoring all spaces in both the document and the search text. Case is ignored when searching. Consequently the search text these would match both These and The serial. No information is given about where the word is located on a given page because this information is not available without a complete PostScript interpreter. Edit | Find Next will continue the search from the next page. ═══ 10. Clipboard ═══ The GSview window can be copied to the Clipboard as a bitmap by selecting Copy from the Edit menu. An alternative way to get a bitmap output from Ghostscript is to use one of the BMP drivers. See Print. Paste To copies the currently displayed image (if available) to a BMP file. Add EPS Preview takes a bitmap from the display and uses it to add a preview to an EPS file. Add EPS Preview can create a DOS EPS file with a 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 it make the EPS file excessively large. 5. Open an EPS file that does not contain a preview. 6. Select Edit | Add EPS Preview, then the preview format, then the new EPS filename. GSview will write a new file containing the original PostScript EPS file and a preview created from the display bitmap. The available preview formats are Interchange, TIFF 4 and TIFF 5. If adding an Interchange preview, the document must have an %%EndComments line, otherwise GSview 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. 7. 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. ═══ 11. Options ═══ The Options menu has the following selections: Ghostscript Command Sounds Units Save Settings Safer Save Last Directory Button Bar Fit Window To Page Quick Open Auto Redisplay EPS Clip EPS Warn Ignore DSC Show Bounding Box ═══ 11.1. Ghostscript Command ═══ The Ghostscript Command option allows selection of the command to use when executing Ghostscript. A default will be constructed using the GSview path and will look like: gsos2.exe -Ic:\gs;c:\gs\fonts;c:\psfonts GSview will first attempt to find Ghostscript in the GSview directory and then will try the PATH. If GSview still cannot find Ghostscript, 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, modify the -I option. Only the Ghostscript EXE and include path may be specified - other items will confuse GSview. ═══ 11.2. 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 MS-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 Page 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 Page 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: GSview opened. Exit: GSview closed. The defaults are for No Page and Error to be a Speaker Beep and all other events to be None. ═══ 11.3. Units ═══ The Units option sets the units used to display the cursor location on the status bar. Available units are PostScript points (pt = 1/72"), millimetres (mm) and inches (in). The default is pt. ═══ 11.4. Save Settings ═══ The Save Settings Now option saves the GSview window position, window size, last used printer, last directory, Sounds, Units, Save Last Directory, User Defined, Ghostscript Command, Button Bar, Fit Window To Page, Quick Open, Auto Redisplay, EPS Clip, EPS Warn, Ignore DSC, Show Bounding Box, Depth, Orientation, Media, Resolution and Zoom Resolution options to the initialisation file gvpm.ini in the OS/2 system directory. GSview reads this file during startup. When the Save Settings on Exit option is checked, GSview will automatically save the above settings when you quit GSview. ═══ 11.5. Safer ═══ When the Safer option is checked, GSview 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. ═══ 11.6. Save Last Directory ═══ When the Save Last Directory option is checked, GSview will save the current directory when you quit GSview. When GSview 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 GSview is started will be the directory where GSview is located, or the working directory specified by the Program Manager. ═══ 11.7. Button Bar ═══ When the Button Bar option is checked, GSview will display a Button Bar down the left side of the window. This is the default. The Button Bar contains the following items in order from top to bottom: File | Open File | Print File | Info Help | Contents View | Goto Page View | Next Page View | Previous Page Go forward 5 pages Go back 5 pages Increase resolution by 1.2 Decrease resolution by 1/1.2 Edit | Find Edit | Find Next If using the increase/decrease resolution buttons, Auto Redisplay should be set. Instead of using these buttons, it is also possible to use the Media | Resolution command. When the Button Bar option is unchecked, GSview will not display the Button Bar. ═══ 11.8. Fit Window To Page ═══ When the Fit Window To Page option is checked, GSview will shrink the window size so that it is no larger than the page being displayed. This is the default. If Fit Window To Page is unchecked, GSview will not resize the window and areas outside the page will be drawn in light grey. This is useful if you do not wish the window to shrink when looking at pages at low resolution. ═══ 11.9. Quick Open ═══ When the Quick Open option is checked, GSview will not reload Ghostscript before every document, making opening of documents quicker. GSview 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, GSview will close Ghostscript and restart it before each new document or whenever the page orientation, resolution or size is changed. ═══ 11.10. Auto Redisplay ═══ When the Auto Redisplay option is checked, GSview will redisplay DSC documents when the Orientation, Resolution, Depth or Media are changed. This is the default. If Auto Redisplay is unchecked, the View | Redisplay command must be used to redisplay a document after changing the Orientation, Resolution, Depth or Media. ═══ 11.11. EPS Clip ═══ When the EPS Clip option is checked, GSview 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, GSview will use the page size specified on the Media menu for EPS files. This is the default. EPS Clip does not alter the original document, it only affects how much of the document is displayed by GSview. EPS Clip will only work in Portrait orientation. See also Clipboard | Add EPS Preview ═══ 11.12. EPS Warn ═══ When the EPS Warn option is checked, GSview 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. ═══ 11.13. Ignore DSC ═══ Some documents incorrectly claim to conform to the Adobe Document Structuring Conventions. Attempting to display one of these bogus documents will probably leave GSview horribly confused and unable to display the document. If Ignore DSC is checked, GSview will treat the document as if it does not contain DSC comments and will only display the pages in the original order. The default for Ignore DSC is unchecked. ═══ 11.14. Show Bounding Box ═══ Selecting this option causes a dashed rectangle to drawn over the image, showing the location of the bounding box. This bounding box is only drawn on the display, and does not affect printer output. The bounding box will only be shown for DSC documents (non conforming documents don't have a bounding box). The default for Show Bounding Box is unchecked. ═══ 12. 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, GSview 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 GSview to automatically rotate the document the right way in response to the %%Orientation comment in the PostScript file. See also Page Size and Display Resolution. ═══ 13. 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. For DSC conforming files, pressing the right mouse button will zoom into the page at what is usually printer resolution. Pressing the right mouse button a second time will zoom back out to normal display resolution. The Zoom Resolution command on the Media menu sets the zoom resolution in dots per inch. The Depth sub menu on the Media menu selects the display depth in bits per pixels. 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. ═══ 14. Keys ═══ Following are the key assignments for GSview. O, o Open and display a file. (File | Open) C, c Close file. (File | Close) N, n, + Next Page. (View | Next Page) V, v, - Previous Page. (View | Previous Page) G, g Goto Page. (View | Goto Page) I, i File information. (File | Info) R, r Redisplay page. (View | Redisplay) S, s Select file: open but don't display. (File | Select File) A, a Save As. (File | Save As) P, p Print all or some pages to a printer. (File | Print) F, f Print all or some pages to a File. (File | Print To File) E, e Extract some pages to another File. (File | Extract) F1 Help. (Help | Contents) Ctrl+C, Insert Copy displayed bitmap to clipboard. (Edit | Copy) Arrow Keys Scroll by 16 pixels. Ctrl+Left Scroll left one screen. Ctrl+Right Scroll right one screen. Ctrl+Page Up Scroll left one screen. Ctrl+Page Down Scroll right one screen. Page Up Scroll up one screen (window height). Page Down Scroll down one screen. Home Scroll to top of page. End Scroll to bottom of page. ═══ 15. Command line options ═══ Usage: gvpm [/D] filename gvpm [/D] /F filename gvpm [/D] /P filename To start GSview and display filename.ps use: gvpm filename.ps To start GSview and print filename.ps using Ghostscript (File | Print) use: gvpm /P filename.ps To start GSview and print filename.ps to a file using Ghostscript (File | Print To File) use: gvpm /F filename.ps To start GSview in debug mode use: gvpm /D In debug mode GSview will not remove its temporary files. This is to allow inspection of these files after GSview has finished. GSview ignores the case of option: /p is the same as /P. ═══ 16. World Wide Web ═══ The World Wide Web home page for Ghostscript, Ghostview and GSview is at http://www.cs.wisc.edu/~ghost/index.html GSview can be used as a PostScript file viewer for several OS/2 and MS-Windows Web browsers. See the GSview home page for details. ═══ 17. Copyright ═══ The About menu item shows the GSview copyright message and GSview version number. GVPM.EXE - A Ghostscript graphical interface Copyright (C) 1993, 1994, Russell Lang. All rights reserved. Portions Copyright (C) 1994, Timothy O. Theisen. All rights reserved. This file is part of GSview. This program is distributed with NO WARRANTY OF ANY KIND. No author or distributor accepts any responsibility for the consequences of using it, or for whether it serves any particular purpose or works at all, unless he or she says so in writing. Refer to the GSview Free Public Licence (the "Licence") for full details. Every copy of GSview must include a copy of the Licence, normally in a plain ASCII text file named LICENCE. The Licence grants you the right to copy, modify and redistribute GSview, but only under certain conditions described in the Licence. Among other things, the Licence requires that the copyright notice and this notice be preserved on all copies. Author: Russell Lang Internet: rjl@aladdin.com ═══ 18. Common Problems ═══ Problem: Can't run gsos2... GSview requires OS/2 Ghostscript (gsos2.exe). This error message occurs if you don't have OS/2 Ghostscript, or if GSview can't find OS/2 Ghostscript. From the GSview menu select Options | Ghostscript Command and enter the correct executable path and include path for Ghostscript. For example: c:\gs\gsos2.exe -Ic:\gs;c:\gs\fonts;c:\psfonts You must set the include path for Ghostscript using either the -I command or the GS_LIB environment variable. If you can't get GSview to run Ghostscript correctly, make sure you can run Ghostscript on its own. Problem: Ghostscript starts and then immediately exits with error code 1. Ghostscript probably couldn't find its initialisation files. Set the Ghostscript include path by adding -Idirectory to the command in Options | Ghostscript Command, where directory includes the name of the directory that contains the Ghostscript initialisation files, Alternatively, set the environment variable GS_LIB. Read the file use.doc that comes with Ghostscript. If you can't get GSview to run Ghostscript correctly, make sure you can run Ghostscript on its own. Problem: GSview says that a multipage PostScript file produced by MS-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..., then in the Print to group box click on the Printer radio button. You cannot use the Print To Encapsulated PostScript File for printing multipage files. The correct method is to connect the printer to FILE:. In addition, from the Control Panel select Printers, Options..., Advanced and then check 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 %!. GSview 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. Some PostScript printer drivers include code that is specific to a particular printer. The PostScript output from these drivers may be unportable and may not display in GSview. If you are having this problem, try using a reasonably generic PostScript driver such as Apple LaserWriter II NT for PostScript level 2 printers, or Apple LaserWriter Plus for PostScript level 1 printers. Problem: PostScript files produced by MS-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 MS-Windows PostScript printer driver. The bug fix is documented in the MS-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: PostScript files produced by Word for Windows 6.0 cause a "Missing %%Pages comment" message box. Congratulations. You have just found a mistake in the DSC comments when Word included an EPS file. Word should have surrounded the included EPS file with the lines %%BeginDocument: filename.eps %%EndDocument Because Word didn't do this, GSview can't tell how many pages are in the document and where they are located. Please complain to Microsoft. There is a problem in the EPSIMP.FLT filter version 2.01 which Microsoft needs to fix. In the interim, you have two solutions: 1. Select Options | Ignore DSC 2. Edit the PostScript file to correct the DSC comments. Search the PostScript file for all lines containing %MSEPS Preamble From each of these lines, search forward for the start of the included EPS file which should start with a line like %%PS-Adobe-3.0 EPSF-3.0 Above these lines add the line %%BeginDocument: AddedByHand Then search for all lines containing %MSEPS Trailer Above these lines add the line %%EndDocument GSview should then be able to display the file correctly. Problem: Ghostscript always outputs to a printer instead of the GSview window. You must not use the GS_DEVICE environment variable. ═══ 19. Internals ═══ GSview starts Ghostscript for displaying using gsos2 -dBitsPerPixel=x -dSAFER -rXDPIxYDPI -gWIDTHxHEIGHT -sGSVIEW=xxxx - where xxxx is a string used to access a named shareable memory block, two semaphores and a queue. These are listed in gdevpm.h. The shareable memory block contains a bitmap in BMP format. The SYNC semaphore is not used (it is used by gspmdrv.exe instead). The NEXT semaphore is used when waiting at each showpage. The MUTEX is used to sychronise access to the bitmap. The QUEUE is used by Ghostscript to notify GSview about the following significant events: 1. Starting to draw into bitmap, 2. Synchronise (redraw) page, 3. showpage (redraw page), 4. Ghostscript is closing, 5. Ghostscript fatal error, 6. Palette in bitmap has changed, 7. "-1 false .outputpage" is executed, 8. "-2 false .outputpage" is executed. PostScript code is piped to the Ghostscript stdin. Ghostscript stdout goes to a window. GSview uses temporary files of the name gvXXXXXX in the directory given by the TEMP environment variable. GSview starts Ghostscript for printing using gsos2 @optfile optfile contains -dNOPAUSE -dSAFER -sDEVICE=devname -rXDPIxYDPI -gWIDTHxHEIGHT -sOutputFile=outfilename filename.ps quit.ps