PostscriptPrinterStream.st
author Claus Gittinger <cg@exept.de>
Sat, 27 Jan 1996 19:33:23 +0100
changeset 170 7194ef17f5b8
parent 126 fca9404da9d4
child 179 38773360f4b7
permissions -rw-r--r--
only init once
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
     1
"
4
1f66800df351 *** empty log message ***
claus
parents: 2
diff changeset
     2
 COPYRIGHT (c) 1988 by Claus Gittinger
71
claus
parents: 36
diff changeset
     3
	      All Rights Reserved
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
     4
1cf8d1747859 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
1cf8d1747859 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
1cf8d1747859 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
1cf8d1747859 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
1cf8d1747859 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    11
"
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    12
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    13
PrinterStream subclass:#PostscriptPrinterStream
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    14
	 instanceVariableNames:'xPos yPos lineBuffer colNr lineNr fFamily fStyle'
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    15
	 classVariableNames:'Prolog Trailer PageProlog PageTrailer FontHeight FontWidth LeftX
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    16
		TopY LinesPerPage Italic Bold Normal Courier Times Helvetica'
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    17
	 poolDictionaries:''
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    18
	 category:'Streams-External'
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    19
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    20
6
claus
parents: 4
diff changeset
    21
!PostscriptPrinterStream class methodsFor:'documentation'!
claus
parents: 4
diff changeset
    22
31
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    23
copyright
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    24
"
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    25
 COPYRIGHT (c) 1988 by Claus Gittinger
71
claus
parents: 36
diff changeset
    26
	      All Rights Reserved
31
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    27
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    28
 This software is furnished under a license and may be used
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    29
 only in accordance with the terms of that license and with the
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    31
 be provided or otherwise made available to, or used by, any
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    32
 other person.  No title to or ownership of the software is
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    33
 hereby transferred.
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    34
"
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    35
!
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    36
6
claus
parents: 4
diff changeset
    37
documentation
claus
parents: 4
diff changeset
    38
"
28
350f8e9493a4 *** empty log message ***
claus
parents: 10
diff changeset
    39
    This class provides simple text output to postscript printers;
31
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    40
    to use it, evaluate 
e223f3cf2995 *** empty log message ***
claus
parents: 28
diff changeset
    41
	Smalltalk at:#Printer put:PostscriptPrinterStream
28
350f8e9493a4 *** empty log message ***
claus
parents: 10
diff changeset
    42
    (usually in -rc file).
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    43
28
350f8e9493a4 *** empty log message ***
claus
parents: 10
diff changeset
    44
    It does not support graphics and other fancy features of Postscript, but
350f8e9493a4 *** empty log message ***
claus
parents: 10
diff changeset
    45
    provides a compatible interface to line-printing (see other subclasses of
350f8e9493a4 *** empty log message ***
claus
parents: 10
diff changeset
    46
    PrinterStream).
6
claus
parents: 4
diff changeset
    47
"
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    48
!
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    49
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
    50
version
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    51
    ^ '$Header: /cvs/stx/stx/libbasic2/PostscriptPrinterStream.st,v 1.15 1996-01-27 18:33:23 cg Exp $'
6
claus
parents: 4
diff changeset
    52
! !
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    53
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    54
!PostscriptPrinterStream class methodsFor:'initialization'!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    55
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    56
fontNames
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    57
    ^ #('/Helvetica-Oblique'
71
claus
parents: 36
diff changeset
    58
	'/Helvetica-Bold'
claus
parents: 36
diff changeset
    59
	'/Helvetica'
claus
parents: 36
diff changeset
    60
	'/Times-Italic'
claus
parents: 36
diff changeset
    61
	'/Times-Bold'
claus
parents: 36
diff changeset
    62
	'/Times'
claus
parents: 36
diff changeset
    63
	'/Courier-Oblique'
claus
parents: 36
diff changeset
    64
	'/Courier-Bold'
claus
parents: 36
diff changeset
    65
	'/Courier' )
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    66
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    67
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    68
initialize
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    69
    |tmpString t fontNr|
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    70
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    71
    Normal isNil ifTrue:[
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    72
	Normal := 0.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    73
	Bold := 1.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    74
	Italic := 2.
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    75
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    76
	Courier := 0.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    77
	Times := 3.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    78
	Helvetica := 6.
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    79
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    80
	LinesPerPage := 66.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    81
	FontHeight := 200.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    82
	FontWidth := 120.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    83
	LeftX := 900.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    84
	TopY := 14900.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    85
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
    86
	tmpString :=
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    87
'%!!PS-Adobe-1.0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    88
%%Creator: Smalltalk
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    89
%%DocumentFonts: Courier-Oblique Courier-Bold Courier Times-Italic Times-Bold Times
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    90
save/SmalltalkJob exch def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    91
/StartSmalltalkDoc{$smalltalk begin}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    92
/$smalltalk 50 dict def $smalltalk begin
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    93
/EndSmalltalkDoc{end}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    94
/S/show load def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    95
/X{exch 0 rmoveto S}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    96
/Y{exch 0 exch rmoveto S}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    97
/B{3 1 roll moveto S}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    98
/F{$fd exch get setfont}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
    99
/StartPage{/svpg save def .05 dup scale}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   100
/EndPage{svpg restore showpage}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   101
/DoPreFeed{/statusdict where{pop
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   102
 statusdict/prefeed known{statusdict exch/prefeed exch put 0}if}if pop}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   103
/Landscape{90 rotate 0 -15840 translate}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   104
/SetUpFonts
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   105
 {dup/$fd exch array def{findfont exch scalefont $fd 3 1 roll put}repeat}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   106
/InitGaudy{/TwoColumn exch def /BarLength exch def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   107
 /ftD /Times-Bold findfont 12 UP scalefont def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   108
 /ftF /Times-Roman findfont 14 UP scalefont def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   109
 /ftP /Helvetica-Bold findfont 30 UP scalefont def}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   110
/U{1440 mul}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   111
/UP{U 72 div}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   112
/LB{/pts exch UP def /charcolor exch def /boxcolor exch def /font exch def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   113
 /label exch def /dy exch def /dx exch def /lly exch def /llx exch def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   114
 gsave boxcolor setgray
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   115
 llx lly moveto dx 0 rlineto 0 dy rlineto dx neg 0 rlineto closepath fill
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   116
 /lines label length def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   117
 /yp lly dy add dy lines pts mul sub 2 div sub pts .85 mul sub def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   118
 font setfont charcolor setgray
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   119
 label {dup stringwidth pop 2 div llx dx 2 div add exch sub yp moveto show
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   120
   /yp yp pts sub def}forall grestore}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   121
/Gaudy{/Page exch def /Date exch def /File exch def /Comment exch def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   122
 .25 U 10.2 U BarLength .1 sub U .25 U [File] ftF .97 0 14 LB
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   123
 .25 U 10.45 U BarLength .1 sub U .25 U [Comment] ftF 1 0 14 LB
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   124
 .25 U 10.2 U 1 U .5 U Date ftD .7 0 12 LB
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   125
 BarLength .75 sub U 10.2 U 1 U .5 U [Page] ftP .7 1 30 LB
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   126
 TwoColumn{BarLength 2 div .19 add U 10.2 U moveto 0 -10 U rlineto stroke}if
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   127
}def
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   128
end
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   129
StartSmalltalkDoc % end fixed prolog
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   130
'.
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   131
	fontNr := 8.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   132
	t := ''.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   133
	self fontNames do:[:aName |
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   134
	    t := t , (fontNr printString) , ' ' 
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   135
		   , (FontHeight printString) , ' '
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   136
		   , aName , (Character nl) asString.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   137
	    fontNr := fontNr - 1
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   138
	].
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   139
	tmpString := tmpString , t.
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   140
	tmpString := tmpString , '9 SetUpFonts
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   141
'.
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   142
	Prolog := tmpString.
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   143
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   144
	PageProlog :=
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   145
'StartPage
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   146
'.
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   147
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   148
	PageTrailer :=
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   149
'EndPage
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   150
'.
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   151
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   152
	Trailer :=
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   153
'EndSmalltalkDoc
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   154
SmalltalkJob restore
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   155
'
170
7194ef17f5b8 only init once
Claus Gittinger <cg@exept.de>
parents: 126
diff changeset
   156
    ]
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   157
! !
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   158
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   159
!PostscriptPrinterStream methodsFor:'access writing'!
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   160
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   161
bold
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   162
    self flushLine.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   163
    fStyle := Bold.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   164
    self setFont
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   165
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   166
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   167
courier
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   168
    self flushLine.
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   169
    fFamily := Courier.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   170
    self setFont
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   171
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   172
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   173
cr
6
claus
parents: 4
diff changeset
   174
    "send line termination"
claus
parents: 4
diff changeset
   175
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   176
    self flushLine.
28
350f8e9493a4 *** empty log message ***
claus
parents: 10
diff changeset
   177
    xPos := LeftX.
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   178
    colNr := 0.
28
350f8e9493a4 *** empty log message ***
claus
parents: 10
diff changeset
   179
    yPos := yPos - FontHeight.
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   180
    lineNr := lineNr + 1.
28
350f8e9493a4 *** empty log message ***
claus
parents: 10
diff changeset
   181
    lineNr > LinesPerPage ifTrue:[
71
claus
parents: 36
diff changeset
   182
	self nextPage
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   183
    ]
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   184
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   185
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   186
helvetica
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   187
    self flushLine.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   188
    fFamily := Helvetica.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   189
    self setFont
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   190
!
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   191
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   192
italic
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   193
    self flushLine.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   194
    fStyle := Italic.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   195
    self setFont
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   196
!
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   197
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   198
nextPut:aCharacter
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   199
    (aCharacter == Character cr) ifTrue:[
71
claus
parents: 36
diff changeset
   200
	^ self cr
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   201
    ].
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   202
    (aCharacter == $( ) ifTrue:[
71
claus
parents: 36
diff changeset
   203
	lineBuffer := lineBuffer , '\(' .
claus
parents: 36
diff changeset
   204
	^ self
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   205
    ].
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   206
    (aCharacter == $) ) ifTrue:[
71
claus
parents: 36
diff changeset
   207
	lineBuffer := lineBuffer , '\)' .
claus
parents: 36
diff changeset
   208
	^ self
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   209
    ].
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   210
    (aCharacter == $\ ) ifTrue:[
71
claus
parents: 36
diff changeset
   211
	lineBuffer := lineBuffer , '\\' .
claus
parents: 36
diff changeset
   212
	^ self
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   213
    ].
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   214
    (aCharacter == Character tab ) ifTrue:[
71
claus
parents: 36
diff changeset
   215
	self flushLine.
claus
parents: 36
diff changeset
   216
	colNr := ((colNr + 8) // 8) * 8. 
claus
parents: 36
diff changeset
   217
	xPos := LeftX + (colNr * FontWidth).
claus
parents: 36
diff changeset
   218
	^ self
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   219
    ].
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   220
    lineBuffer := lineBuffer copyWith:aCharacter
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   221
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   222
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   223
normal
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   224
    self flushLine.
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   225
    fStyle := Normal.
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   226
    self setFont
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   227
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   228
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   229
times
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   230
    self flushLine.
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   231
    fFamily := Times.
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   232
    self setFont
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   233
! !
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   234
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   235
!PostscriptPrinterStream methodsFor:'open/close'!
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   236
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   237
endPrint
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   238
    self endPage.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   239
    super nextPutAll:Trailer.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   240
    super endPrint
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   241
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   242
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   243
startPrint
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   244
    Prolog isNil ifTrue:[
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   245
	self class initialize
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   246
    ].
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   247
    fFamily := Courier.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   248
    fStyle := Normal.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   249
    super writingTo:PrintCommand.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   250
    super nextPutAllUntranslated:Prolog.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   251
    self startPage
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   252
! !
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   253
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   254
!PostscriptPrinterStream methodsFor:'private'!
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   255
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   256
endPage
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   257
    self flushLine.
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   258
    super nextPutAllUntranslated:PageTrailer
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   259
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   260
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   261
flushLine
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   262
    (lineBuffer size > 0) ifTrue:[
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   263
	super nextPutAllUntranslated:(xPos printString ).
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   264
	super nextPutAllUntranslated:' '.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   265
	super nextPutAllUntranslated:(yPos printString).
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   266
	super nextPutAllUntranslated:'('.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   267
	super nextPutAllUntranslated:lineBuffer.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   268
	super nextPutAllUntranslated:')B'.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   269
	super nextPutUntranslated:(Character cr).
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   270
	xPos := xPos + (FontWidth * lineBuffer size).
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   271
	colNr := colNr + lineBuffer size
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   272
    ].
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   273
    lineBuffer := ''
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   274
!
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   275
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   276
nextPage
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   277
    self endPage.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   278
    self startPage
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   279
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   280
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   281
setFont
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   282
    |fontNumber|
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   283
    fontNumber := fFamily + fStyle.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   284
    super nextPutAllUntranslated:fontNumber printString.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   285
    super nextPutAllUntranslated:' F'. 
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   286
    super nextPutUntranslated:(Character cr)
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   287
!
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   288
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   289
startPage
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   290
    super nextPutAllUntranslated:PageProlog.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   291
    self setFont.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   292
    yPos := TopY.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   293
    xPos := LeftX.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   294
    lineBuffer := ''.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   295
    lineNr := 1.
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   296
    colNr := 0
0
1cf8d1747859 Initial revision
claus
parents:
diff changeset
   297
! !
126
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   298
fca9404da9d4 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 112
diff changeset
   299
PostscriptPrinterStream initialize!