AmendHub

Download

thecloud

/

SimpleSpooler

/

README

 

(View History)

thecloud   Simple Spooler 0.3 release Latest amendment: 6 on 2026-07-30

1 ## Simple Spooler 0.3 ##
2 Copyright (c) 2026, Ken McLeod.
3
4 This application acts as a virtual printer on an AppleTalk network, receiving
5 print jobs using PAP (Printer Access Protocol) and spooling them to files. It
6 can either print immediately or at a later scheduled time, sending the print
7 job to a locally-connected ImageWriter printer which would otherwise not be
8 visible on the network.
9
10 Simple Spooler is freeware. You may use and distribute the software at no
11 charge. See the LICENSE file for conditions on your use of the source code.
12
13
14 **System requirements**
15
16 System 6.0 or later (up to Mac OS 9.2.2) is currently required to run Simple
17 Spooler. This software has been tested on System 6.0.5, 7.0.1, and 7.5.3, as
18 well as Mac OS 8.6 and 9.2.2.
19
20 AppleTalk must be set to Active in the Chooser. You should have enough free
21 disk space on your startup disk to accomodate the print jobs you expect to
22 receive. ImageWriter spool files occupy less space than LaserWriter spool
23 files, but all can add up if they are not being processed immediately.
24
25
26 **Starting the spooler**
27
28 After opening the application, select "Start Spooler" from the Control menu.
29 A dialog will present the following options:
30
31 * Printer name
32 Type a name for the print spooler, which you can think of as a virtual
33 printer. This name will appear on the network and can be selected by other
34 users as an AppleTalk printer in the Chooser.
35
36 * Auto-run at launch
37 Select this checkbox if you want the spooler to run automatically when the
38 application opens, rather than needing to manually click Start. This allows
39 for unattended server operation, e.g. by placing an alias to Simple Spooler
40 in your Startup Items folder on System 7.0 or later.
41
42 * Virtual printer type
43 Select one of the icons representing LaserWriter, ImageWriter LQ, or
44 ImageWriter to create a virtual printer of that type. For an ImageWriter or
45 LQ, you can additionally select whether the printer is seen as having a
46 color ribbon or a sheet feeder. The "IW1 compatibility" checkbox improves
47 compatibility with the original ImageWriter by removing newer printer
48 control codes that only the ImageWriter II understands. The "Skip Reverse
49 Feeds" checkbox strips control codes that would cause your printer to roll
50 the paper backwards; selecting this can prevent misprints and paper jams.
51
52 * Print to this port
53 Select the icon for the local serial port where your ImageWriter printer
54 is connected. If the Enabled checkbox is selected, spooled print jobs will
55 automatically be printed to this port once they have been received, as long
56 as the current time is within the scheduled printing hours. The default
57 setting is 12 AM - 12 AM (or 0 - 24), an unrestricted span of 24 hours
58 starting at midnight.
59
60 You can restrict printer use by using the up/down arrow control to change the
61 start and end times; for example, you may only want printing to occur during
62 business hours and not at night. If the spooler receives a print job outside
63 the specified hours, it will be printed later once the start hour is reached.
64 Uncheck the Enabled box if you don't have a local printer connected, or if you
65 just want to hold all jobs for printing at a later date.
66
67 Click Start to begin running the spooler. This registers the printer name you
68 provided on the AppleTalk network, listens for incoming print jobs, and
69 prepares to print any previously spooled jobs in its spool folder.
70
71
72 **Stopping the spooler**
73
74 The spooler can be stopped by selecting "Stop Spooler" from the Control menu,
75 or by quitting the application.
76
77
78 **Printing to the spooler**
79
80 On a Mac connected to your AppleTalk network, open Chooser and select the
81 printer driver for the printer type being emulated. For example, if Simple
82 Spooler is emulating an AppleTalk ImageWriter, then select the "AppleTalk
83 ImageWriter" icon in Chooser. You should see the spooler appear as a printer
84 in the list. After selecting it and closing the Chooser window, you should be
85 able to print to the spooler from any application.
86
87
88 **About the log**
89
90 Simple Spooler displays a single window with a log of its activity. This log is
91 entirely in memory, and does not persist when the application quits. To avoid
92 running out of memory, the earliest entries are deleted periodically as new
93 ones are added to the end.
94
95 By default, messages are logged when the spooler starts up or stops, when
96 incoming connections are handled, when spooled jobs are printed, or if an error
97 occurs. However, more details can be enabled to aid in debugging. There are four
98 log levels, each printing its own messages as well as those of the levels below
99 it. Level 0 is the default. At level 1, internal activity and warnings are
100 logged. At level 2, all protocol messages are displayed, and at the maximum
101 level 3, additional debug data is logged.
102
103 Because changing the log level to 2 or higher will greatly diminish server
104 performance, and the extra information is intended for development purposes
105 only, there is no menu item for this hidden feature. Press the command-shift-L
106 key combination to increase the log level by 1. After reaching 3, the log
107 level will reset to 0 again. The spooler should normally be run only at the
108 default log level 0.
109
110 Pressing the command-shift-S key combination will output the server's current
111 status to the log. Alternatively, select Print Status from the Control menu.
112
113
114 **About the print queue**
115
116 The first time Simple Spooler is run, it will create a spool folder (named
117 Simple Spooler) in the Preferences folder within the System Folder, or in the
118 System Folder itself if prior to System 7.0. Print jobs are saved as temporary
119 files in the spool folder. Their file names start with a prefix that depends on
120 the printer type selected: IW for ImageWriter, LQ for ImageWriter LQ, and LW for
121 LaserWriter. When the spooler is running, it checks periodically for files in
122 this folder which have the file type 'pjob', whose names start with the current
123 prefix and a hyphen, and do not end in a .ps extension. For example, a file
124 named "IW-12345" will be printed, but not "IWEm" or "IW12345" or "IW-12345.ps".
125
126 Spool files are processed in the order they were added to the folder. If the
127 Enabled checkbox was selected and printing is currently enabled, the file is
128 sent to the selected serial port. Once all bytes in the spool file have been
129 sent to that port without an error, that job is considered complete and the file
130 is deleted.
131
132
133 **About LaserWriter spooling**
134
135 This application was primarily designed to emulate an ImageWriter printer, but
136 it can also create a virtual LaserWriter which spools its print jobs to
137 PostScript files. This feature is somewhat redundant, as you could just select
138 "print to file" in the LaserWriter print dialog to obtain the same result. An
139 ImageWriter cannot render PostScript code, but older LaserWriter models with a
140 serial port connection can theoretically be used to print spooled files; this
141 has not been tested.
142
143 Note: you can use software such as Ghostscript, Adobe Illustrator, or even
144 Preview.app (on older versions of Mac OS X) to view PostScript files, or convert
145 them to another format for viewing on a modern computer.
146
147
148 **Generating PostScript output from ImageWriter print jobs**
149
150 If you would like to have print jobs for an ImageWriter automatically generate
151 PostScript output files, simply copy the "IWEm" file from this distribution into
152 the spool folder. "IWEm" (ImageWriter Emulator) is PostScript code from Apple
153 that can interpret ImageWriter print sequences. When a print job is received
154 successfully, and the file "IWEm" is found in the spool folder, a second file
155 with a .ps extension will also be created and appear in the folder. This .ps
156 file can be viewed in applications which support PostScript.
157
158 Note: IWEm is not compatible with color printing, or with the ImageWriter LQ's
159 Best and Faster modes. A better option for converting ImageWriter spool files
160 into a format that can be viewed on a modern computer is the 'imagewriter'
161 command line tool, available from <https://github.com/greg-kennedy/ImageWriter>.
162
163
164 **Using Simple Spooler in a Mac emulator**
165
166 If you don't want to keep a real Mac and ImageWriter turned on for hours, you
167 can run Simple Spooler in a virtual Mac with emulation software such as QEMU,
168 Mini vMac, or Snow that supports AppleTalk networking. Be aware that printing to
169 a serial port where nothing is actually connected sends those bytes to nowhere.
170 You may want to uncheck the Enabled box for printing to a serial port when
171 running Simple Spooler in an emulator, and instead copy the spool files over to
172 your real Mac's spool folder when you are ready to print them.
173
174
175 **Known issues**
176
177 Printing to the spooler from the same Mac which is running the spooler does not
178 work well yet. (There's a bug with self-send mode. Don't try it unless you like
179 rebooting.)
180
181 On System 6, there are some errors being logged with the tickle mechanism which
182 is part of PAP. This should be fixable and does not seem to affect printing.
183
184 There is currently no handshaking with the real printer before attempting to
185 print, so if no printer is connected to the selected port, data is sent into the
186 void without any error and the spool file is deleted.
187
188 In this release, LaserWriter spooling is only known to work with version 8.3.4
189 of the LaserWriter 8 driver. This is the version which shipped with system
190 software 7.5.3. Version 8.6.1 and later send an additional query prior to normal
191 setup, as does 7.1.1 and likely others. In general, we can't yet handle more
192 than one query transaction (meaning the driver is asking us to answer its
193 questions, rather than giving us data) in a given print job. A fix is being
194 investigated.
195
196
197 **Bug reports, feedback, etc.**
198
199 Please let me know about your experience with Simple Spooler, especially if you
200 run into any problems. This prerelease software is still under development and
201 not yet considered stable. Bug reports and suggestions for improvement are
202 always welcome. (When reporting a problem, please mention the system version,
203 spooler configuration, and what software you are using to print, so I can try
204 to reproduce it.) Thanks!
205
206 <https://mastodon.social/@_the_cloud>
207 <thecloudexpanse @gmail.com>
208
209
210 **Modification history**
211
212 0.1 2026-02-16: first release for testing
213 0.2 2026-02-23: added ImageWriter 1 compatibility mode
214 0.3 2026-07-30: split up configuration and startup, so server can auto-run;
215 rewrote filter to run when printing rather than spooling;
216 optionally strip reverse feeds