[comp.text.desktop] LaserPrep vs. AldusPrep

sigurd@vax1.acs.udel.edu (ANDERSEN) (09/23/87)

I'm trying to set up the Macintosh version of Aldus PageMaker so that
when it prints, it either
 (1) uses Apple's LaserPrep instead of Aldus' AldusPrep, or
 (2) removes AldusPrep from the LaserWriter's memory after printing
     a document.

I can do either of these from PageMaker menus, but I'd like to set up
things so that I don't have to rely on users knowing how and remembering
to do one of the above.

The reasons for this are
 (1) I don't want AldusPrep sitting in the LaserWriter's memory taking
     up space that others sharing the printer might otherwise use, and
 (2) I want to avoid potential conflicts between the LaserPrep and
     AldusPrep both being in the LaserWriter's memory simultaneously.

I called Aldus.  They say there is no way to change the program defaults.
They suggested modifying the  LaserWriterPlus.apd  file so that it removes
AldusPrep from memory after each printing job.  To find the necessary
code, they suggested printing a simple postscript file to disk, once
with the "Make Aldus Prep permanent" option on, and once with it off.

I did this.  The file with the "... permanent" option ON has four lines
more than the file with the option OFF.  These lines include three near
the beginning of the (16-page small-font printed) file:
	%%BeginExitServer:0
	0 serverdict begin exitserver
	%%EndExitServer
and one line (marked below with >>>) about 40 lines from the end of the
file in the following context:
	%%EndProcSet
>>>	%%EOF
	%%EndProlog
	AldusDict begin
	%%BeginSetup

My questions are:
 (1) Are my concerns valid?  If so,
 (2) Has Aldus pointed me in the right direction?  If so,
 (3) Where should I insert the above lines in the .apd file?

One other suggestion they made was to look into a desk accessory from
CE Software in DesMoines (515) 224-1995 which can be used to reset a
LaserWriter between print jobs without turning the power off and on.
Does anyone have experience with this program?

	Sigurd Andersen
	Academic Computing Services
	155 Newark Hall
	University of Delaware
	Newark, DE. 19716
	(302) 451-6338
	sigurd%vax1.acs.udel.edu@louie.udel.edu  (something shorter
						  may work as well)
----------------------------------------
Submissions to:   desktop%plaid@sun.com -OR- sun!plaid!desktop
Administrivia to: desktop-request%plaid@sun.com -OR- sun!plaid!desktop-request
Paths:  {ihnp4,decwrl,hplabs,seismo,ucbvax}!sun
Chuq Von Rospach	chuq@sun.COM		Delphi: CHUQ

So may the outward shows be least themselves: the world is still
                        deceived by ornament.

news@sun.uucp (news) (09/24/87)

The lines that you have identified (with "exitserver") are exactly what you
do NOT want to include in the apd file.  That is the PostScript sequence
that cause all changes to become "permanent" until the printer is restarted.

I don't believe that it is possible to accomplish what you wish by merely
modifying the PostScript code.  You could redefine "exitserver" so that it
did nothing, but there would still be an end-of-file in the print stream
(indicated by the %%EOF when it is written to disk) that you cannot easily
remove or redefine.  The result would be that your prologue (AldusPrep)
would be treated as a separate print job (although it wouldn't print anything)
and the rest of the file would cause an immediate error (since the definitions
in AldusPrep would no longer be there).

Your only hope is to change the defaults in PageMaker.  You might try the
ResEdit program, and see if there are any resource constants that can be
modified.  Other than that, I would say you will have to just educate your
users to always use that mechanism.

I guess one way to "educate" them would be to change the exitserver password
on the printer.  This will prevent ANYTHING from being downloaded permanently
unless it is downloaded with the correct password.  This can be done as
follows (but don't forget the new password, or you're stuck!):

%!
serverdict begin
0 exitserver		% 0 is the password

statusdict begin
 123456 setpassword	% 123456 is the new password
end


If you need to reverse this, change the positions of the "0" and the
"123456" in this example.  You need the current password to change it.

I hope this helps.

Glenn Reid
Adobe Systems
PostScript Software Support
----------------------------------------
Submissions to:   desktop%plaid@sun.com -OR- sun!plaid!desktop
Administrivia to: desktop-request%plaid@sun.com -OR- sun!plaid!desktop-request
Paths:  {ihnp4,decwrl,hplabs,seismo,ucbvax}!sun

news@sun.uucp (news) (09/29/87)

sigurd@vax1.acs.udel.edu (ANDERSEN):
> I'm trying to set up the Macintosh version of Aldus PageMaker so that
> when it prints, it either
>  (1) uses Apple's LaserPrep instead of Aldus' AldusPrep, or
>  (2) removes AldusPrep from the LaserWriter's memory after printing
>      a document.

I think that you can comment out the following line

	0 serverdict begin exitserver

by putting a '%' in front of it and the aldus.prep will get
flushed at the end of the job.  The other lines are insignificant
to the processing, but are there to make the .prep a conforming
PostScript program.  I think...
----------------------------------------
Submissions to:   desktop%plaid@sun.com -OR- sun!plaid!desktop
Administrivia to: desktop-request%plaid@sun.com -OR- sun!plaid!desktop-request
Paths:  {ihnp4,decwrl,hplabs,seismo,ucbvax}!sun
Chuq Von Rospach	chuq@sun.COM		Delphi: CHUQ

Bye bye life!  Bye bye happiness! Hello, loneliness, I think I'm gonna die.

news@sun.uucp (news) (09/29/87)

You can reclaim "semi-permanent" virtual memory in PostScript as follows:

serverdict begin 0 exitserver
$$SAVE save def

download any dictionaries, fonts, etc., here

CTRL-D

The information you downloaded will reside in memory until you restart the
interpreter (power-cycle the printer or systemdict begin quit) or until you
do this:

serverdict begin 0 exitserver
$$SAVE restore
CTRL-D

Which restores the VM to the state that it had before the previous save.
Note that you can't do this inside the server loop, as the server looses
control when the job finishes and the interpreter will restart itself.

Pat Wood
Editor, The PostScript Language Journal
----------------------------------------
Submissions to:   desktop%plaid@sun.com -OR- sun!plaid!desktop
Administrivia to: desktop-request%plaid@sun.com -OR- sun!plaid!desktop-request
Paths:  {ihnp4,decwrl,hplabs,seismo,ucbvax}!sun
Chuq Von Rospach	chuq@sun.COM		Delphi: CHUQ

Bye bye life!  Bye bye happiness! Hello, loneliness, I think I'm gonna die.

cck@cunixc.columbia.edu (Charlie C. Kim) (09/29/87)

As per Glen Reid's message, you can try replacing the ExitToServer
code in the apd file with:
	2 {(%stdin) (r) file cvx exec } repeat
 which will treat the next two "files" as a single job (files in a
stdin stream would be delimited by EOFs).  I know the technique works,
but I'm not sure putting this in place of @ExitServer in the APD file
will work.

Charlie C. Kim
User Services
Columbia University
----------------------------------------
Submissions to:   desktop%plaid@sun.com -OR- sun!plaid!desktop
Administrivia to: desktop-request%plaid@sun.com -OR- sun!plaid!desktop-request
Paths:  {ihnp4,decwrl,hplabs,seismo,ucbvax}!sun
Chuq Von Rospach	chuq@sun.COM		Delphi: CHUQ

Bye bye life!  Bye bye happiness! Hello, loneliness, I think I'm gonna die.