home *** CD-ROM | disk | FTP | other *** search
- %!PS-Adobe
- %
- % Ransom note writer. Version 1.00
- %
- % (C) Copyright 1992 Diomidis Spinellis. All rights reserved.
- % You can use and copy this program as long as the notice above
- % remains intact. Modified copies must be clearly marked as such.
- % Send comments, threats, corrections etc. to dds@doc.ic.ac.uk
- %
-
- % Put here the ransom note you want
- % Use the | symbol to generate new lines.
- /note (${firstName}$ ${lastName}$|
- ${title}$|
- ${company}$|
- |
- ${address}$|
- ${state}$ ${zip}$ ${city}$|
- |
- ${phoneLabel1}$: ${phone1}$|
- ${phoneLabel2}$: ${phone2}$|
- ${phoneLabel3}$: ${phone3}$|
- ${phoneLabel4}$: ${phone4}$|
- ${phoneLabel5}$: ${phone5}$|
- ) def
-
- % vertical and horisontal scale in percent
- true {
- /scaleX ${scaleX}$ def
- /scaleY ${scaleY}$ def
- }{
- /scaleX 100 def
- /scaleY 100 def
- } ifelse
-
- % top margin position
- /top { pagesize exch pop 80 sub } def
- % Left margin position
- /left 60 def
- % Right margin position
- /right { pagesize pop 60 sub } def
- % Line advance
- /lineskip -23 def
-
- % - pagesize - x y
- /pagesize {
- currentpagedevice (PageSize) get
- dup 0 get exch 1 get
- } def
-
- % Print the string
- % string ransom -
- /ransom {
- {chr ransomchar}
- forall
- } def
-
- % Convert a character code to a string
- % int chr string
- /chr {
- ( ) dup 0 3 index put exch pop
- } def
-
- % Draw a black filled box for the bounding box of the character
- % char box -
- /box {
- gsave
- gsave
- true charpath pathbbox
- grestore
- 1 add /ury exch def
- 1 add /urx exch def
- 1 sub /lly exch def
- 1 sub /llx exch def
- newpath
- llx lly moveto
- urx lly lineto
- urx ury lineto
- llx ury lineto
- closepath
- 0 setgray
- fill
- grestore
- } def
-
- % Display a single ransom character
- % character ransomchar -
- /ransomchar {
- dup (|) eq {
- pop
- crlf
- } {
- randfont 7 random 15 add scalefont setfont
- dup
- gsave
- 5 random rotate
- 3 random 1 sub 3 random 1 sub rmoveto
- dup ( ) eq {
- [ {show} ]
- } {
- [
- { show }
- { show }
- { true charpath stroke }
- { true charpath 10 random 20 div setgray fill }
- { dup box 1 setgray show }
- ]
- } ifelse
- randarray exec
- grestore
- stringwidth
- pop 0 rmoveto
- format
- } ifelse
- } def
-
- % Return a random value 0 <= r < int
- % int random int
- /random {
- rand
- exch
- mod
- } def
-
- % Return a random element from the array
- % array randarray any
- /randarray {
- dup
- length
- random
- get
- } def
-
- % Return a random font
- % - randfont font
- /randfont {
- [
- /Times-Roman
- /Times-Bold
- /Times-Italic
- /Times-BoldItalic
- /Helvetica
- /Helvetica-Bold
- /Helevetica-Oblique
- /Helevetica-BoldOblique
- /Times-Roman
- /Times-Bold
- /Times-Italic
- /Times-BoldItalic
- /Helvetica
- /Helvetica-Bold
- /Helevetica-Oblique
- /Helevetica-BoldOblique
- /Courier
- /Courier-Bold
- /Courier-Oblique
- /Courier-BoldOblique
- ]
- randarray
- findfont
- } def
-
- % Do a carriage return / line feed
- % - crlf -
- /crlf {
- currentpoint exch pop
- left exch moveto 0 lineskip rmoveto
- } def
-
- % Move to a new line if we are at the end of it
- % - format -
- /format {
- currentpoint
- pop
- right gt
- {crlf}
- if
- } def
-
-
- clear
- erasepage
- initmatrix
-
- 0 top translate
-
- % scale in persent
- scaleX 100 div scaleY 100 div scale
-
- left 0 moveto
- note ransom
-
- showpage
-