RoPS 4.5 FAQ Frequently Asked Questions


This page describes known problems regarding RoPS version 4.5. New users are encouraged to download version 5.

Version 4.5, 32-bit release for use under Win95, NT and Win32s is available here or from:

The 16-bit release can be downloaded from here or from:

How can I change the default paper size ?

You can set the default paper size by adding two variables to the rops.ini file. For instance to set the default paper size to American Letter, add these lines after the [framebuffer] label in rops.ini:

DepthMM= 266

(note: these variable names are case-sensitive.)

Why does my printout come out like a postage stamp ?

RoPS transfers its in-memory image (which you normally look at on the screen) directly to the printer at 'device resolution', so that one pixel in memory corresponds to one pixel on the printer. If, as is usually the case, the dots on the printer are much smaller than the dots on the screen, the printed image will come out smaller than it looked on screen. You can either zoom in the page a few times before printing, so that it looks big on the screen - it will come out big on the printer too - or you can set a permanent zoom factor by setting the LPI (lines per inch) value in the [framebuffer] section of rops.ini.

(Footnote: For the best result you should use an LPI value slightly smaller than the resolution of your printer. For instance, if your printer operates at 300 lines per inch, add a line saying


to the [framebuffer] section of the rops.ini file. (The value needs to be slightly smaller because most printers cannot print all the way to the edge of the paper. Using a value of 280 would make the printout appear at 280/300ths - 93% - of its actual size.) )

When I try and print the Java documents I get 'colorimage: undefined'

You can read and print the Java documents (*) with RoPS version 4.2 or later, if you add the following (long) line of text to the [framebuffer] section of rops.ini (usually found in your c:\windows directory.) NOTE: although there are three lines of text below, they must be concatenated together and the backslash characters must be deleted.

javadocpatch=errordict /undefined 2 copy get { dup /colorimage eq \
{ 5 { pop } repeat 5 1 roll dup [1 0 0 3 0 0] exch concatmatrix 5 2 roll \
3 mul 5 2 roll image } 0 ifelse } dup 4 4 -1 roll put put 0

The patch creates a dummy 'colorimage' operator (using 'image') which, although it is not a complete emulation, is sufficient for the Java documentation.

(Footnote: to be precise, 'colorimage' is defined 'on demand', since some documents check for the existence of the colorimage operator and use alternative code if it is not available.)

(Footnote 2: this patch illustrates an interesting point about the 'framebuffer' section of rops.ini: the right-hand side of the '= ' sign is executable PostScript, the result of which is assigned to the variable whose name appears on the left-hand side.)

What does 'Type1BuildChar: undefined' mean ?

It means your document contains an in-line Adobe format font. RoPS versions prior to 4.5 don't know how to process these, and produce the above error message. Download version 4.5 !

What does '|: undefined' mean ?

It usually means that the PostScript file contains a control-D character. Versions of RoPS before 4.3 contained an error that prevented control-D being recognized properly. The fix is to change the line in ropsboot._ps that says:

	/\004 {} def % ignore ^D in input file

to say

	(\004) cvn {} def % ignore ^D in input file

I get an application error under Windows 95 ...

Download version 4.3 or later ! Earlier versions of RoPS had a problem with long file names under Windows 95.

Why do I get 'findfont: can't find 'xxx'; using Courier' messages ?

If RoPS can't find a required PostScript font, it will substitute 'Courier'. All PostScript printers do this. If you would like to substitute something else, you can edit the line in ropsboot._ps that says

	/CourierFont FontDirectory /Courier get /TTName get def

to say (for example)

	/CourierFont FontDirectory /Times-Roman get /TTName get def

If the 'findfont: can't find ...' messages annoy you, you can disable them by changing the lines in ropsboot._ps that say:

	(findfont: can't find ) print dup =
	print (; using Courier) print

to say

	%%%	(findfont: can't find ) print dup =
	print	%%% (; using Courier) print

(i.e. comment them out.)

Why doesn't RoPS re-evaluate pages at a higher resolution when it is printing ?

Because its often not possible. PostScript is a first class computer language and the images it produces are a side effect of running a computer program. To re-evaluate a page RoPS would need do 'rewind' the program to a point just before it started work on the page. If a document is properly structured this can be done (that's the whole point of the structuring !) but most documents are not properly structured. For a similar reason, it's not possible for RoPS to have a progress bar.

All my symbols come out as small boxes ...

There is a bug in all versions of RoPS since 4.0 wherein the Symbol font is not properly recognized. Change the line in ropsboot._ps that says

	TTName (Symbol) eq {
to say 
	FontName (Symbol) eq {

I get a 'getinterval: rangeerror' error ...

Download version 4.3 or later ! Earlier versions of RoPS had a bug in the getinterval PostScript operator.

I get 'framebuffer too large' errors under Windows 95

Download version 4.3 or later ! Earlier versions of RoPS had an arbitrary limit to the frame buffer size under Windows 95.

How do I make a structured document ?

A minimally structured document has '%!' as its first two characters; it then contains a preamble that defines the operations that will be used within the pages, terminated by a '%%EndSetup' comment (on a line of its own.) The data to describe each page follows in turn, with a '%%Page: X X' comment (on a line of its own) at the head of each page. The last page is terminated with a '%%Trailer' comment (on a line of its own.) Running the code for a page must have no side effects; this usually means each page should start with a 'save' command and end with 'showpage restore'.

Why do the fonts in my TeX-derived document look so scrappy ?

Because the document contains bitmapped characters intended for viewing at 300 dots-per-inch (dpi.) RoPS samples the bitmap down to about 100 dpi for on-screen viewing so you see only one-ninth of the dots and the resulting characters look scrappy.

Philosophical note: PostScript was designed as a device-independent printer control language with full support for scaleable outline fonts. Many TeX-derived documents are essentially 300 dpi bitmaps and no use is made of PostScript's typographic facilities. If you were to send the same document to a high-resolution PostScript printer running at (say) 2400 dpi, you would still get only the equivalent of 300 dpi output.

It would be easy for authors of TeX -> PostScript conversion utilities to arrange for the executable PostScript code to check whether a suitable outline font was already available in the printer before falling back to using a bitmap, but they don't seem to do this. There is very little RoPS can do in such a circumstance.

Are there any known bugs ?

In version 4.5:

  • printing is non-intuitive
  • Type 1 fonts are very jagged

In version 4.41:

  • printing is non-intuitive.
  • if a document attempts to use a Type 1 font, the document is abandoned.
  • the 'fontscan' program finds no fonts under NT 4.0 (beta)
  • the space character has zero width under NT 4.0 (release, sp1, sp2)

This document is Copyright 19961998, Roger Willcocks, All Rights Reserved.
Last edited 27 March 1998.
Moved to 19 August 2000.

Roger Willcocks