From the June Mastering CorelDRAW newsletter PostScript Output Strategies John Cornicello I think you’d probably agree that CorelDRAW 4 is the most powerful, yet easy-to-use, graphics program available today. However, along with that power and ease of use comes a lot of responsibility in preparing images that can be output successfully on laser printers and imagesetters. Fountain fills, PostScript pattern fills, fractal texture fills: These are all great-looking features, and a new Draw user must feel like a kid in a candy store. But good design - and workable output - depends a lot on control and restraint. Just because the features are available doesn't mean that you have to use them in every document you create. This month I’m going to discuss some problems and solutions for printing from Draw to PostScript printers, both desktop laser printers and service bureau imagesetters. You will find that more than half of the job of creating files that print correctly is in understanding the capabilities of the output device that will be used, whether it’s your desktop PostScript laser or color printer, a 1,200, 2,400 or 3,600 dpi imagesetter, or a slide imager. The intent of this article is to get you to think ahead. The first thing to recognize is that a document’s ability to print on a 300 dpi PostScript laser printer is no guarantee that it will be able to output on a high-resolution imagesetter. Things like memory management - and the sheer volume of dots to be managed - will be quite different. Take a moment to consider how many dots are being handled by various output devices. A 300 dpi laser printer has to manage around 8,415,000 pixels for an 8½ by 11-inch page. The same page sent to a 1,200 dpi printer will have too many pixels for my calculator to display (in fact, it’s about 134,640,000 pixels, according to the Windows Calculator). And at 2,400 dpi the printer is handling 538,560,000 dots. Since the imagesetter has to handle 64 times as many pixels, but has access to a lot less than 64 times the memory of a laser printer, a different memory management scheme has to be used. What happens? Usually it works well, but there is always that one super-complex, last- minute rush job that will find the differences between them. Let's just hope it isn't your job. PostScript Errors I Have Known In addition to memory management, PostScript uses dictionaries to hold pairs of objects. Some applications will use an existing dictionary, called USERDICT. This is a device dependent dictionary that will hold 200 entries. Different printers or PostScript versions will use a different number of entries for their internal housekeeping. More elaborate devices, such as imagesetters, may need to use more of the USERDICT space, leaving less room for software to store entries. This can lead to a DICTFULL error on an imagesetter for a file that outputs with no problems on a laser printer. The user doesn't have much say in correcting this situation; it is a limitation of the program generating the PostScript code, in this case Draw. When PostScript devices encounter an error, the normal procedure is that the job is aborted, data is dumped and the processor returns to its ready state, awaiting the next job. The only indication that an error has occurred is that nothing is printed. It’s not a particularly helpful or friendly system. But there is some hope. If you are running into this situation of nothing printing, you can enable a PostScript error handler. With Draw 4 you have a couple of ways to do this. First, the Microsoft PostScript driver has a built-in error handler. In the Windows Control Panel, double-click on the Printers icon, select your PostScript device from the list of available printers, and click on Setup. Then select Options and Advanced. At the lower-left of the Advanced Options dialog box is a check box to enable the error handler. Choosing this option will cause the error handler code to be enabled for each page that is printed through the driver. This won't have any effect on most print jobs, but it will print an error message should a PostScript error occur. Draw also includes a standalone error handler that can be downloaded to a PostScript printer before printing. This error handler is a utility that remains resident in your printer’s memory, sitting there in the background until the printer is reset. As with the Windows error handler, it has no effect on normal print jobs but should jump into action should an error occur. During installation, Draw created a subdirectory under COREL40\DRAW called EHANDLER. This directory contains six files including the error handler, a program to print out information about your PostScript printer, a readme file, two batch files to download the error handler to LPT1 or LPT2, and a Windows icon. The error handler can be downloaded to the printer using the included batch files (edit them in Notepad if you need to use a different printer port), or it can simply be copied to the printer port from DOS (COPY EHANDLER.PS LPT1). The error handler will then set itself up in the printer's memory until the printer is reset or turned off. If an error occurs in your print job, the error handler should print a partial page, then print an additional page with the error message. PostScript error messages consist of two parts. First the error message, then the offending command. A typical error looks like this: %%[ERROR: limitcheck OFFENDINGCOMMAND: lineto]%% Typical errors are the previously mentioned DICTFUL, LIMITCHECK, IOERROR, RANGECHECK, and TIMEOUT (there are actually about 30 possible PostScript errors). The most common errors associated with Draw files are TIMEOUT and LIMITCHECK. A TIMEOUT error means that too much time has elapsed between the printer's receiving two parts of the same job. This can happen on complex jobs on which the printer is busy digesting some information, while the PC thinks that the printer has stopped responding. Timeout Errors The TIMEOUT error may be corrected by changing timeout settings in Windows. If you are printing directly from Windows to the PostScript device, you can change the TransmissionRetryTimeout value in the WIN.INI file. You can do this by directly editing WIN.INI in Notepad, or by running the Windows Control Panel, double-clicking on the Printers icon and clicking on Connect. The default is usually 45 or 90. Change this to 999, save the file if you’re editing it in Notepad, and then restart Windows. This tells Windows to keep waiting for the printer to respond, and not simply give up after 45 seconds. This is a Windows timeout, not a printer timeout. To set a printer timeout, you have to edit another section of the WIN.INI file - there is no way to set this with the Control Panel. Scroll down to find the specific section for your PostScript printer and printer port. A typical entry might look like: [Agfa 9000 Series PS,LPT2.DOS] feed1=54 EpsFile= advflags=136 orient=1 LandscapeOrient=270 margins=511 EPS=0 prtvm=2396 timeout=999 Adding the last timeout= line to this section will set a printer timeout value that may help get the document to output. (The LandscapeOrient=270 line, by the way, is one you should add if you’re experiencing .EPS files being rotated when they’re placed on landscape orientation pages. This is a problem that plagues PageMaker users.) Limitcheck Errors A LIMITCHECK error means that something in the file has exceeded the capabilities of the printer. Looking at the offending command will give a bit more information about the LIMITCHECK error. Some possibilities here are CURVETO or LINETO. This usually means that an element on the page is too complex for the printer to handle. There may be too many nodes on a curved line, or a curved line is being used as a clipping path for a complex fill. LIMITCHECK errors will require a bit more work to fix. First, you will have to figure out what element on the page is causing the problem, then you will have to edit it. Using the Draw error handler, you should get a partially printed page that includes all of the objects up to (but not including) the problem object. Because the PostScript output is created in the same order as the objects were placed on the page in Draw, you can figure out which item on the partial page was the last printed. Select that item on the screen in Draw, then press Shift-Tab to select the next object. That is usually the problem object. The PostScript output is created in the same order as the objects were created on the page in Draw. You can figure out which item on the partially printed page was the last one printed by selecting the last object created, then hold down the Shift key and press Tab repeatedly. This will select each object in the opposite order of placement. Keep hitting the TAB key while it is selecting items that did not print until you find the first element that appears on the printed page (the last element to print correctly). When the last element is selected press the TAB key alone (not shifted) and you will most likely have located the offending object. You need to lessen the complexity of that object. If you’re lucky, you’ll find you have selected a curved object with an overabundance of nodes. Use Draw 4's Auto-Reduce command (in the Node Edit roll-up) to reduce the complexity of the object. If the object doesn't have a fill, you can try to carve up the object up into smaller, less complex objects, by breaking nodes and then using the Break Apart command from the Arrange menu. If there are a number of complex objects in the document, you should try some of the output strategies mentioned on page 16 of last month's newsletter, such as lowering the PSComplexityThreshold value in Draw’s CORELPRN.INI file (located in the COREL40\CONFIG directory), or raising the Flatness setting when you print (moved from the Print dialog box in Draw 3 to the Options sub-dialog box of Print in Draw 4). You should also have technical document 2023 faxed to you from Corel’s interactive fax service. Dial (613) 728-0826 and press 3080 to enter the service. Dealing with the Service Bureau Now that you have some background on possible problems, it’s time to look at a typical service bureau situation. The following are generalities, but they will apply in most cases; however, you should contact the bureau in advance to find out if it can offer any specific information for its particular equipment setup. Once you have created (and saved) your Draw file, select Print from the File menu. Select the proper imagesetter device in the printer list and click on Print To File under the printer name. If the file will be downloaded to the imagesetter from a Macintosh printer, then also select For Mac (this will strip out two Control-D characters that Windows normally includes in PostScript print files). Click on the Printer button to select the proper paper size (remember, if you need crop marks and printer information, you have to select a paper size that is larger than your page size, such as LetterExtra or TabloidExtra). Click on OK. Click on the Options button to set printer information such as crop marks, separations and file information (again, remember that printer information, like crop marks, will require a paper size larger than the page size). Click on OK. Next, click on OK in the Print dialog box. This will open the Print To File box where you can name the output file, and select the drive and directory to store it. Do yourself a favor and print to the hard disk, then later copy the file to a floppy drive if you need to bring a disk to the service bureau. This will save time, and will provide you with a backup file in case there is a problem with the floppy. The result of this will be a PostScript print-to-disk file (not an encapsulated PostScript .EPS) file. From a PC, the file can simply be copied to the printer port at the DOS prompt (COPY /B FILENAME.PRN LPT1:). You can also use the Dumper program included on the April newsletter disk. From a Macintosh, the file will have to be downloaded to the imagesetter. Most Macintosh font downloaders have a provision for downloading PostScript files to the printer. (If you’re using PostScript fonts, check Steve Shubitz’s April type column on font management details.) If all has gone well, the file should zip right through the PostScript RIP and imagesetter or slide imager to provide you with beautiful output of your file. If not, it’s time to go back and look at the original file again. The following are some principles to guide you in creating your files for imagesetting. Creating for Imagesetting The main thing to do is to keep things as simple as possible. However, this isn't always so obvious. Some things to keep in mind are to delete objects that aren't part of the image. Do not simply cover them with white boxes; even though they don't show up, they still have to be processed by the printer. Even if files containing a large number of such objects do print they may end up costing you, because many service bureaus charge a premium for files that take a long time to print. If you import scanned images, crop them in the scanning program or image editor to cut down on file size - don't crop them in the final output program, such as Draw. The same thing applies for rotation - rotate the image in an image editor, such as CorelPHOTO-PAINT. When you scan line art, art run it through CorelTRACE to convert the bitmap image to vector format. If you scan photographs, don't over- scan. It is a common error to scan photographs at too high a resolution. Typically, you need to scan at only 1½ to 2 times the line screen of the output device. So if you are imagesetting with a screen of 133 lpi, you should scan at 200 to 270 dpi. Anything higher will just add more data without any benefit. Don't embed .EPS files inside .EPS files. This is especially tempting, now that Draw can import the .EPS files it exports. Be judicious in your use of blends, as well as fountain, pattern and texture fills; try not to fill complex objects, containing many nodes, with these. If you have to fill a word or phrase with a blend, you should you the Convert To Curves command on the Arrange menu and then Break Apart to break the text string up into individual objects, each with its own fill. Tapping PostScript Expertise If you’ll be creating a lot of jobs to be output at a service bureau, you should also consider a utility like LaserCheck, from Systems of Merritt (205) 660-1240. LaserCheck transforms a laser printer into an imagesetter. No, it doesn't increase the resolution or provide usable imagesetter output, but it does allow you to proof such things as crop and registration marks by scaling down the PostScript output to fit on an 8½ by 11-inch page. It also lists a variety of information, such as what fonts the file requires, in the margins. LaserCheck software remains resident in the printer (like a font or an error handler) and can be downloaded to the printer from either a DOS or Mac system. The cost is $149, and it can pay for itself in a very short time by reducing wasted film. Systems of Merritt also produces a handy booklet called How To Make Sure What You See Is What You Get!, by Peter Fink. This is a very worthwhile $6.99 investment. And the free PostScript Concepts newsletter is definitely worth requesting, since it usually contains a variety of output-related tips. Contents Copyright Kazak Communications, 1993. Subscription Information While the regular subscription rate is $75 per year (in US dollars for Americans, Canadian dollars for Canadians), charter subscriptions to the Mastering CorelDRAW newsletter are available for a limited time at $60 (add $30 U.S. for overseas). A free sample disk, from our exclusive disk- of-the-month service (value $20), is included with your paid subscription. To subscribe, or for more information, contact: Chris Dickman 16 Ottawa St. Toronto, ON M4T 2B6 Canada 416-924-0759 (voice) 416-924-4875 (fax) CServe: 70730,2265 - 30 -