[Mac-gs] printing bug
Thilo Kopp
thilo.kopp@physik.uni-augsburg.de
Tue, 30 Jan 2001 11:31:33 +0100
This is a multi-part message in MIME format.
--------------BD94F572EA3CCD39008CCBDC
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Dear Bernd Heller,
yesterday I found your Mac GS View (version 2.0b3) on the
Wisconsin server. I am delighted that someone transported the
GhostView application to the MacOS. Thanks a lot for making this
available for everyone! As a researcher in physics I am daily
downloading postscript files (preprints of publications) --- as
any other theoretical physicist in the world. Usually we then work
with GhostScript or GhostView on the Linux/Unix systems. Yet,
it is great to be able to do the same jobs on a Mac (which is still
may favorite computer platform). I am working on a Power Macintosh
7300 with a G4 Newer Technology Processor Card, and MacOS 8.6.
Now, for future versions I would like to propose three minor
improvements, and finally report a bug which makes printing
sometimes impossible:
(1) On the Unix/Linux version you can click on buttoms representing
each of the pages of the document in order to print pages in any
combination.
This is sometimes quite helpful . . . well, but not really necessary.
(2) Page size A0 is sometimes quite useful when you want to check and
print a poster -- which we do quite often. (This is also kind of
luxury).
(3) Alpha channel depths of 4 bits does not work for colored documents
which however is also a known bug of MacGS PPC 5.50.
Finally and most importantly, the printing problem:
well, all included example documents print fine.
However _any_ postscript file which I downloaded did not print, neither
on
a postscript printer nor on a inkjet printer. They all open perfectly
fine in Mac GS View but they would just not print. They print however
from MacGS PPC 5.50 on these same printers.
In order to pinpoint this printing problem, I produced a text file with
a single
word, e.g. with Simple Text or Microsoft Word or whatever, and then I
"printed"
this document to a postscript file (using LaserWriter 8.6.5). This small
postscript document (less than 12 K) may be easily opened by Mac GS View
but it will definitely not print. From Mac GS View I again save it to a
postscript
file, using LaserWriter 8.6.5. This will produce a postscript file of
more than
2 MB. Now this new postscript file, when opened with Mac GS View will
just
produce an empty blank page --- so not surprisingly the printing failed!
I guess that what I have proved with this procedure is that
a) the printing problem is independent of the printer (hardware, but
also software, since other print software will neither succeed)
b) it is independent of the complexity of the text: I just took one word
(and selected the standard fonts Times or Helvetica)
c) I succeeded with MacGS PPC 5.50 --- which however is very
uncomfortable
to work with.
Please let me know if you have any idea how to solve this printing
issue.
Again, many thanks
Thilo
P.S.: I even replaced GhostScriptLib PPC by that of Ghostscript 6.50,
and the
lib files as well, but the printing problem prevailed.
P.S.1: I attach a small postscript file which can be openend with
Mac GS View but cannot be printed.
--------------BD94F572EA3CCD39008CCBDC
Content-Type: application/postscript;
name="Untitled1.ps"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="Untitled1.ps"
%!PS-Adobe-3.0
%%Title: (Microsoft Word - Dokument1)
%%Creator: (Microsoft Word: LaserWriter 8 8.6.5)
%%CreationDate: (22:36 Sonntag, 28. Januar 2001)
%%For: (Thilo Kopp)
%%Routing: (mailto:\000thilo.kopp@physik.uni-augsburg.de)
%%Pages: 1
%%DocumentFonts: Times-Roman
%%DocumentNeededFonts: Times-Roman
%%DocumentSuppliedFonts:
%%DocumentData: Clean7Bit
%%PageOrder: Ascend
%%Orientation: Portrait
%%DocumentMedia: Default 612 792 0 () ()
%RBINumCopies: 1
%RBINupNess: 1 1
%RBIPCFileName: (LWNT_470.PPD)
%RBIPPDFileVersion: (4.0)
%ADO_ImageableArea: 30 33.12 582 761.04
%%EndComments
%%BeginDefaults
%%ViewingOrientation: 1 0 0 1
%%EndDefaults
userdict/dscInfo 5 dict dup begin
/Title(Microsoft Word - Dokument1)def
/Creator(Microsoft Word: LaserWriter 8 8.6.5)def
/CreationDate(22:36 Sonntag, 28. Januar 2001)def
/For(Thilo Kopp)def
/Pages 1 def
end put
%%BeginProlog
/md 179 dict def md begin/currentpacking where {pop /sc_oldpacking currentpacking def true setpacking}if
%%BeginFile: lw8_feature-1.01
%%Copyright: Copyright 1990-1998 Adobe Systems Incorporated and Apple Computer Incorporated. All Rights Reserved.
/bd{bind def}bind def
/ld{load def}bd
/xs{exch store}bd
/Z{0 def}bd
/T true def
/F false def
/level2
/languagelevel where
{
pop languagelevel 2 ge
}{
F
}ifelse
def
/odictstk Z
/oopstk Z
/fcl
{
count oopstk sub dup 0 gt
{
{pop}repeat
}{
pop
}ifelse
countdictstack odictstk sub dup 0 gt
{
{end}repeat
}{
pop
}ifelse
}bd
/sfcl2
{
/odictstk countdictstack store
count/oopstk xs
}bd
/efcl2
{
stopped{$error/newerror F put}if
fcl
}bd
/noload Z
/startnoload
{
{/noload save store}if
}bd
/endnoload
{
{noload restore}if
}bd
/setcopies{
level2
{
1 dict begin/NumCopies exch def currentdict end setpagedevice
}{
userdict/#copies 3 -1 roll put
}ifelse
}def
level2 startnoload
/ststpgdev{}def
/dopgdev{}def
/stpgdev{}def
/buf Z
/didstop T def
/sfcl
{
/didstop T store
/odictstk countdictstack store
count/oopstk xs
currentfile cvx stopped
{
$error/newerror F put
didstop
{
save/didstop xs
/buf vmstatus exch sub exch pop dup 0 lt{pop 0}if
dup 64000 gt{pop 64000}if string store
{
currentfile buf readline
{
(}efcl)eq{exit}if
}{
/UnexpectedEOF errordict/rangecheck get exec
}ifelse
}loop
didstop restore
}if
}if
fcl
}bd
/efcl
{
/didstop F store
exec
stop
}bd
level2 endnoload level2 not startnoload
/setpagedevice where{pop/realstpgdev/setpagedevice ld}if
/SC_topddict Z
/SC_spdict Z
/$spusrdict F def
/dopgdev
{
userdict/setpagedevice undef
$spusrdict
{
userdict/setpagedevice/realstpgdev load put
/$spusrdict F store
}if
SC_topddict realstpgdev
}bd
/stpgdev
{
SC_topddict dup 3 -1 roll
{
SC_spdict 2 index known
{
SC_spdict 2 index get
dup 3 -1 roll
{
put dup
}forall
pop put dup
}{
put dup
}ifelse
}forall
pop pop
}bd
/ststpgdev
{
/setpagedevice where
{
userdict eq
{
/$spusrdict T store
}if
}if
userdict/setpagedevice/stpgdev load put
/SC_topddict 0 dict store
/SC_spdict 3 dict begin
/InputAttributes 0 dict def
/Policies 0 dict def
/OutputAttributes 0 dict def
currentdict
end
store
}def
/sfcl/sfcl2 ld
/efcl/efcl2 ld
level2 not endnoload
%%EndFile
%%BeginFile: lw8_basic-3.0
/xdf{exch def}bd
/:L/lineto
/lw/setlinewidth
/:M/moveto
/rl/rlineto
/rm/rmoveto
/:C/curveto
/:T/translate
/:K/closepath
/:mf/makefont
/gS/gsave
/gR/grestore
/np/newpath
12{ld}repeat
/framewidth -1 def
/QDframwid -1 def
/numframes Z
/mTS matrix def
/$m matrix def
/av 86 def
/por T def
/normland F def
/psb-nosave{}def
/pse-nosave{}def
/us Z
/psb{/us save store}bd
/pse{us restore}bd
/level3
/languagelevel where
{
pop languagelevel 3 ge
}{
F
}ifelse
def
level2 startnoload
/setjob
{
statusdict/jobname 3 -1 roll put
}bd
/devg/DeviceGray def
/devr/DeviceRGB def
/devc/DeviceCMYK def
level2 endnoload level2 not startnoload
/setjob
{
1 dict begin/JobName xdf currentdict end setuserparams
}bd
/devg[/DeviceGray]def
/devr[/DeviceRGB]def
/devc[/DeviceCMYK]def
level2 not endnoload
/pm Z
/mT Z
/sD Z
/initializepage
{
mT $m currentmatrix mTS concatmatrix pop
/pm save store mT concat
}bd
/endp
{
pm restore
}bd
/adjRect
{
dup 2 mul 6 2 roll
4 index sub exch 5 -1 roll sub exch
4 2 roll
4 index add exch 5 -1 roll add exch
4 2 roll
}bd
/frame1up
{
gS
mTS setmatrix
QDframwid lw
/setstrokeadjust where{pop T setstrokeadjust}if
clippath pathbbox
2 index sub exch
3 index sub exch
currentlinewidth framewidth mul
adjRect
numframes dup 0 lt{pop 0}if
{
4 copy
rS
currentlinewidth framewidth
mul 4 mul
adjRect
}repeat
pop pop pop pop
gR
}bd
/$c devr def
/rectclip where
{
pop/rC/rectclip ld
}{
/rC
{
np 4 2 roll
:M
1 index 0 rl
0 exch rl
neg 0 rl
:K
clip np
}bd
}ifelse
/rectfill where
{
pop/rF/rectfill ld
}{
/rF
{
gS
np
4 2 roll
:M
1 index 0 rl
0 exch rl
neg 0 rl
fill
gR
}bd
}ifelse
/rectstroke where
{
pop/rS/rectstroke ld
}{
/rS
{
gS
np
4 2 roll
:M
1 index 0 rl
0 exch rl
neg 0 rl
:K
stroke
gR
}bd
}ifelse
%%EndFile
level3 startnoload
%%BeginFile: lw8_safeclipL12-1.0
/rectclip where
{
pop/rCa/rectclip ld
}{
/rCa
{
np 0
1 index length 4 idiv
{
2 copy
4 getinterval
aload pop
4 2 roll
:M
1 index 0 rl
0 exch rl
neg 0 rl
:K
4 add
}repeat
clip np
pop pop
}bd
}ifelse
/savedstack Z
/subsavedstack Z
/execstring Z
/saferCa
{
/execstring xs
/odictstk countdictstack store
/oopstk 0 store
count 0 ne
{
savedstack 0 eq{
count 100 gt{count}{100}ifelse
array/savedstack xs
}{
count savedstack length gt
{
count array/savedstack xs
}if
}ifelse
count savedstack 0 3 -1 roll
getinterval
astore/subsavedstack xs
}{
/subsavedstack 0 store
}ifelse
execstring cvx stopped
{
$error/newerror F put
newpath
}if
fcl
subsavedstack 0 ne{
subsavedstack aload pop
}if
}bd
%%EndFile
level3 endnoload level3 not startnoload
%%BeginFile: lw8_safeclipL3-1.0
/saferCa/pop ld
%%EndFile
level3 not endnoload
%%BeginFile: lw8_level1_colorspace-2.0
/G/setgray ld
/:F1/setgray ld
/:F/setrgbcolor ld
/:F4/setcmykcolor where
{
pop
/setcmykcolor ld
}{
{
3
{
dup
3 -1 roll add
dup 1 gt{pop 1}if
1 exch sub
4 1 roll
}repeat
pop
setrgbcolor
}bd
}ifelse
/:Fx
{
counttomark
{0{G}0{:F}{:F4}}
exch get
exec
pop
}bd
/$cs Z
/:rg{devr :ss}bd
/:sc{$cs :ss}bd
/:dc
{
dup type/arraytype eq{0 get}if
dup/DeviceCMYK eq
{
pop devc
}{
/DeviceGray eq
{
devg
}{
devr
}ifelse
}ifelse
/$cs xdf
}bd
/:sgl{}def
/:dr{}bd
/:fCRD{pop}bd
/:ckcs{}bd
/:ss{/$c xdf}bd
%%EndFile
%%BeginFile: lw8_basic_text-2.1
/S/show ld
/A{
0.0 exch ashow
}bd
/R{
0.0 exch 32 exch widthshow
}bd
/W{
0.0 3 1 roll widthshow
}bd
/J{
0.0 32 4 2 roll 0.0 exch awidthshow
}bd
/V{
0.0 4 1 roll 0.0 exch awidthshow
}bd
/fcflg T def
/fc{
fcflg{
vmstatus exch sub 50000 lt{
(%%[ Warning: Running out of memory ]%%\r)print flush/fcflg F store
}if pop
}if
}bd
/$f[1 0 0 -1 0 0]def
/:ff{$f :mf}bd
/MacEncoding StandardEncoding 256 array copy def
MacEncoding dup 9/space put dup 39/quotesingle put 96/grave put
/Adieresis/Aring/Ccedilla/Eacute/Ntilde/Odieresis/Udieresis/aacute
/agrave/acircumflex/adieresis/atilde/aring/ccedilla/eacute/egrave
/ecircumflex/edieresis/iacute/igrave/icircumflex/idieresis/ntilde/oacute
/ograve/ocircumflex/odieresis/otilde/uacute/ugrave/ucircumflex/udieresis
/dagger/degree/cent/sterling/section/bullet/paragraph/germandbls
/registered/copyright/trademark/acute/dieresis/notequal/AE/Oslash
/infinity/plusminus/lessequal/greaterequal/yen/mu/partialdiff/summation
/product/pi/integral/ordfeminine/ordmasculine/Omega/ae/oslash
/questiondown/exclamdown/logicalnot/radical/florin/approxequal/Delta/guillemotleft
/guillemotright/ellipsis/space/Agrave/Atilde/Otilde/OE/oe
/endash/emdash/quotedblleft/quotedblright/quoteleft/quoteright/divide/lozenge
/ydieresis/Ydieresis/fraction/Euro/guilsinglleft/guilsinglright/fi/fl
/daggerdbl/periodcentered/quotesinglbase/quotedblbase/perthousand
/Acircumflex/Ecircumflex/Aacute/Edieresis/Egrave/Iacute/Icircumflex/Idieresis/Igrave
/Oacute/Ocircumflex/apple/Ograve/Uacute/Ucircumflex/Ugrave/dotlessi/circumflex/tilde
/macron/breve/dotaccent/ring/cedilla/hungarumlaut/ogonek/caron
MacEncoding 128 128 getinterval astore pop
level2 startnoload
/copyfontdict
{
findfont dup length dict
begin
{
1 index/FID ne{def}{pop pop}ifelse
}forall
}bd
/$ckeyd md def
/:skey
{
1 index maxlength 2 index
length sub
ge
{
begin
/$mkeys 20 dict def
/$mkeys load
end
dup/$ckeyd xs
}if
3 1 roll put
}bd
/fD1pass
{
40
$ckeyd
//md
ne
{
pop 1
}if
$ckeyd exch
:skey
}bd
/:searchdict Z
/:searchdict
{
exch 2 copy
known
{
get
}{
exch/$mkeys
get
:searchdict
}ifelse
}bd
/lU
{
//md exch 2 copy
known
{
get
}{
exch
/$mkeys get
:searchdict
}ifelse
}bd
/:xs{
exch 0 1 2 index length 1 sub{
3 copy
gsave 1 getinterval show grestore
exch
get 0.0
rmoveto
}for pop pop
}bd
/:ys{
exch 0 1 2 index length 1 sub{
3 copy
gsave 1 getinterval show grestore
exch
get 0.0 exch
rmoveto
}for pop pop
}bd
/:xys{
exch 0 1 2 index length 1 sub{
3 copy
gsave 1 getinterval show grestore
exch 2 mul 2 copy
1 add get 3 -2 roll get exch
rmoveto
}for pop pop
}bd
level2 endnoload level2 not startnoload
/copyfontdict
{
findfont dup length dict
copy
begin
}bd
/fD1pass/def ld
/lU/load ld
level2{
/:xs/xshow ld
/:ys/yshow ld
/:xys/xyshow ld
}if
level2 not endnoload
/fD Z
/sf Z
/scf Z
/sf1pass
{
lU setfont
}bd
/scf1pass
{
exch lU exch scalefont fD
}bd
/scf2pass
{
scalefont fD
}bd
md/fontname known not{
/fontname/customfont def
}if
/Encoding Z
/:mre
{
copyfontdict
/Encoding MacEncoding def
fontname currentdict
end
definefont :ff fD
}bd
/:bsr
{
copyfontdict
/Encoding Encoding 256 array copy def
Encoding dup
}bd
/pd{put dup}bd
/:esr
{
pop pop
fontname currentdict
end
definefont :ff fD
}bd
/ps Z
/fz{/ps xs}bd
/cF/currentfont ld
/mbf
{
/makeblendedfont where
{
pop
makeblendedfont
/ABlend exch definefont
}{
pop
}ifelse
fD
}def
%%EndFile
/currentpacking where {pop sc_oldpacking setpacking}if end
%%EndProlog
%%BeginSetup
md begin
/fD/def ld/sf/setfont ld /scf/scf2pass ld
600/languagelevel where{pop languagelevel 2 ge}{false}ifelse{1 dict dup/WaitTimeout 4 -1 roll put setuserparams}{statusdict/waittimeout 3 -1 roll put}ifelse
sfcl{
%%BeginFeature: *InputSlot Cassette
%%EndFeature
}efcl
sfcl{
%%BeginFeature: *ManualFeed False
statusdict /manualfeed false put
%%EndFeature
}efcl
sfcl{
%%BeginFeature: *PageRegion LetterSmall
lettersmall
%%EndFeature
}efcl
(Thilo Kopp)setjob
/mT[.24 0 0 -.24 30.001 761.057]def
/sD 16 dict def
%%IncludeFont: Times-Roman
/f133/Times-Roman
:mre
/f148 f133 50 scf
{/Courier findfont[10 0 0 -10 0 0]:mf setfont}stopped{$error/newerror F put}if
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
initializepage
(Thilo Kopp; page: 1 of 1)setjob
%%EndPageSetup
gS 0 0 2300 3033 rC
170 211 :M
f148 sf
(test hihi)S
endp
showpage
%%Trailer
end
%%EOF
--------------BD94F572EA3CCD39008CCBDC--