The folder action script below makes it possible to print to any OS X printer (PostScript or non PostScript) from SheepShaver or Basilisk II. It's based on work by many other people, including John Rethorst.
1. Copy the script below and paste it into a blank window of the OS X AppleScript Editor, and save it as an AppleScript, perhaps named "Print from Basilisk" or something similar.
2. Next, create a folder in your OS X system that is accessible to SheepShaver or Basilisk II though the "Unix" folder. The easiest thing to do is to create a new folder inside whatever OS X folder is your "Unix" folder in Basilisk or SheepShaver, and give the folder a name like "Printout." Assign the "Print from Basilisk" script as a Folder Action Script for the folder "Printout". If you don't know how to do this, search the web for "Folder Action Script." Instructions vary depending on the version of OS X. You MUST know how to assign a Folder Action Script to a folder in OS X before proceeding. If you don't know, stop now and find out. Do not play around with various things in the hope that one may work. Find out exactly how to do it, and make absolutely certain that the script is set as a Folder Action Script for your "Printout" folder.
3. In SheepShaver or Basilisk II, open the Mac OS System Folder. (Remember, you are opening the System Folder in the emulated version of System 7 or OS 8 or 9 that is on the emulated hard disk in SheepShaver or Basilisk II, not in your OS X system.) Inside the System Folder, find the Extensions folder and open it. Inside the Extensions folder, find the extension named "LaserWriter 8"; select it and press Cmd-I to get information about it. Look at the version number near the top of the Get Info window; if it says 8.5.1 or later, then close all windows and proceed to step 6. If it says anything lower than 8.5.1, then go on to step 4.
4. If you are running System 7.5.3 or 7.5.5 in Basilisk II or SheepShaver, then download LaserWriter 8.5.1 from this link: http://imina.soest.hawaii.edu/rcf/macfi ... .1.sea.hqx
If you are running System 7.6.1, 8.5, or 8.6, download LaserWriter 8.6 from this link:
http://imina.soest.hawaii.edu/rcf/macfi ... .6.smi.hqx
Copy the downloaded file to the emulated hard disk in Basilisk II or SheepShaver, so that it is in the emulated hard disk (NOT the Desktop) of your emulated Mac OS system. Then follow the instructions on this page to install the driver:
5. When the software has been installed, find the Desktop Printer Utility (not
the Apple Printer Utility, but the Desktop Printer Utility
) in your emulated MacOS system. Launch the Desktop Printer Utility; from the menu headed "New", choose "With LaserWriter 8" at the top and "Translator (PostScript)" at the bottom. A window will open headed Untitled 1. Do not change the PostScript Printer Definition File setting; in the lower part of the Window, under Default Destination Folder, click Change. In the Select Folder... dialog, click Desktop, then click Unix, then select the folder you created in step 2, named (perhaps) "Printout." Click "Select Printout' at the foot of the menu. Back at the Untitled 1 menu, click File, then Save, and save your new desktop printer as whatever name you like, perhaps "OS X Printer." Quit the Desktop Printer Utility. Make sure your new desktop printer is set as the default printer; to be certain of this, click on the printer icon, then on the Printing menu, make sure there is a checkmark next to Set Default Printer. By the way, do NOT use the Chooser - do not even think about the Chooser - because the Chooser will NOT be of any use for this procedure.
6. Still in SheepShaver or Basilisk II, print from any application. When the Print dialog opens, make sure that your new "OS X Printer" is the selected printer, and make sure that the destination is "File". Before proceeding further, look at the dropdown menu of options that probably says "General" or "General Options" or something similar. Click on the list of options, and find the options labeled "Save as file" or something similar (you may need to try a few of these options until you find the one you need. The ones that you absolutely MUST set are the Font Embedding option, where you should choose "Embed all fonts (except the basic 13)"; and, in the choice between saving in PostScript Level 1 format or PostScript Level 2 or 3 Format, choose "PostScript Level 2 or 3". Make sure that the printfile has the extension .ps (which it will have by default). If you find a "Background printing" option, you may want to experiment with that setting in order to increase printing speed slightly.
When you have the options correctly set, click Save. If you have performed the preceding steps correctly, a dialog will open showing your "Printout" folder, and the dialog will offer to save a file with the filename extension ".ps". Click Save. After a few seconds, your file will print on your default OS X printer.
That ends the instructions. Here is the script that you need to copy into your AppleScript Editor and save as script:
Code: Select all
property DELAY_TIME_SECONDS : 1.5 -- How long to wait between checking file size.
on adding folder items to TheFolder after receiving fileList
set thisFile to (item 1 of fileList) as alias
set fileString to (thisFile as string)
if fileString contains "DS_Store" then return
if fileString ends with ".ps" then
repeat with f in fileList
set oldSize to 0
set newSize to -1
-- When newSize equals oldSize, copy is complete because the size hasn't changed
repeat while newSize ≠ oldSize
-- Get the file size.
set oldSize to size of (info for f)
-- Sample the size again after delay for comparison.
set newSize to size of (info for f)
end adding folder items to
with timeout of 300 seconds
repeat while (current date) - (modification date of (info for thisFile)) < 2
tell application "Printer Setup Utility"
repeat while (busy status of (info for thisFile))
tell application "Finder" to delete thisFile
Note that the number in the top line can be reduced in order to make the file print more quickly, at the risk that the printfile won't be ready to be printed because the whole file has not yet been sent to OS X from Basilisk II; or the number can be increased to increase the certainty that the printfile will be ready for printing when the script sends it to the printer. The setting 1.5 (seconds) works reliably on my system, but you can experiment with higher or lower numbers