Thread View: alt.discrimination.homosexual
1 messages
1 total messages
Started by max
Mon, 14 Sep 1992 15:46
Nein on 9 poster postscript source.
Author: max
Date: Mon, 14 Sep 1992 15:46
Date: Mon, 14 Sep 1992 15:46
272 lines
7065 bytes
7065 bytes
Hi! I am using Postscript to make 'nein on 9' posters, and it
occurred to me that others might be able to make use of parts
of my effort.
This is the modified output of a postscript printer filter.
My postscript skills are very rusty, and this
program could be a lot better, but still, perhaps someone will
find it useful as a template. To go right to the code you may
wish to modify, search for HACKS.
It prints a title line, and a bottom header with
1) a circle-bar (that is, the international NO symbol) over a swastika.
2) Next to the crossed out swastika, it prints 'Nein on Nine'.
I then (literally) paste in text or clippings into the middle of
the page and xerox away. I find that spray adhesive works very
well - the fundies like to yank down posters they disagree with, while
putting up posters that accuse you of being a child molester if you
take it down.
-------------------cut here------------------------
%! a2ps 3.0
/$a2psdict 100 dict def
$a2psdict begin
% Initialize page description variables.
/inch {72 mul} bind def
/sheetheight 11 inch def
/sheetwidth 8.5 inch def
/margin 1 inch def
/headersize 0.0 inch def
/bodyfontsize 60 def
/lines 11 def
/columns 87 def
/date (Sep 12 1992 13:37:09) def
%! PostScript Source Code
% General macros.
/xdef {exch def} bind def
/getfont {exch findfont exch scalefont} bind def
% Page description variables and inch function are defined by a2ps program.
% Character size for differents fonts.
/filenamefontsize 36 def
/datefontsize filenamefontsize 0.8 mul def
/headermargin filenamefontsize 0.25 mul def
/bodymargin bodyfontsize 0.7 mul def
% Font assignment to differents kinds of "objects"
/filenamefontname /Helvetica-Bold def
/stdfilenamefont filenamefontname filenamefontsize getfont def
/datefont /Helvetica datefontsize getfont def
/bodyfont /Courier-Bold bodyfontsize getfont def
% Logical page attributs (a half of a real page or sheet).
/pagewidth
bodyfont setfont (0) stringwidth pop columns mul bodymargin dup add add
def
/pageheight
bodyfontsize lines mul bodymargin dup add add headersize add
def
% Coordinates for upper corner of a logical page and for sheet number.
% Coordinates depend on format mode used.
% and right pages: upperx is an array of two elements, indexed by sheetside.
/rightmargin margin 3 div def
/leftmargin margin 2 mul 3 div def
/topmargin margin 2 div def
/uppery rightmargin pageheight add bodymargin add def
/sheetnumbery sheetwidth leftmargin pageheight add datefontsize add sub def
/upperx [ topmargin dup ] def
/sheetnumberx sheetheight topmargin sub datefontsize sub def
% Portrait format
/uppery topmargin pageheight add def
/upperx [ leftmargin dup ] def
/sheetnumberx sheetwidth rightmargin sub datefontsize sub def
/sheetnumbery
sheetheight
topmargin pageheight add datefontsize add headermargin add
sub
def
% Strings used to make easy printing numbers
/pnum 12 string def
/empty 12 string def
% Other initializations.
/datewidth date stringwidth pop def
/filenameroom
pagewidth
filenamefontsize 4 mul datewidth add (Page 999) stringwidth pop add
sub
def
% Function startdoc: initializes printer and global variables.
/startdoc
{ /sheetside 0 def % sheet side that contains current page
/sheet 1 def % sheet number
} bind def
% Function newfile: init file name and reset page number for each new file.
/newfile
{ cleanup
/filename xdef
/filenamewidth filename stringwidth pop def
/filenamefont
filenamewidth filenameroom gt
{
filenamefontname
filenamefontsize filenameroom mul filenamewidth div
getfont
}
{ stdfilenamefont }
ifelse
def
/pagenum 1 def
} bind def
% Function printpage: Print a physical page.
/printpage
{ /sheetside 0 def
showpage
% pagesave restore
/sheet sheet 1 add def
} bind def
% Function cleanup: terminates printing, flushing last page if necessary.
/cleanup
{
printpage
} bind def
%
% Function startpage: prints page header and page border and initializes
% printing of the file lines.
/startpage
{ sheetside 0 eq
{ % /pagesave save def
} if
upperx sheetside get bodymargin add
uppery
bodymargin bodyfontsize add 0 add
sub
moveto
bodyfont setfont
} bind def
%
% Function endpage: adds a sheet number to the page (footnote) and prints
% the formatted page (physical impression). Activated at the end of each
% source page (lines reached or FF character).
/endpage
{ /pagenum pagenum 1 add def
printpage
} bind def
% Function sheetnumber: prints the sheet number.
/sheetnumber
{ sheetnumberx sheetnumbery moveto
datefont setfont
sheet pnum cvs
dup stringwidth pop (0) stringwidth pop sub neg 0 rmoveto show
empty pnum copy pop
} bind def
% Function s: print a source line
/s { gsave
show
grestore
0 bodyfontsize neg rmoveto
} bind def
%%EndProlog
/docsave save def
startdoc
(nein) newfile
/sheet 1 def
%%Page: 1 1
startpage
% - beginning of my HACKS
%
% A new title can be placed here.
% in the original, I exposed the OCA's tactic of
% accusing all who oppose them as being gay.
( Lon) s
(Mabon is Gay!) s
() s
() s
() s
() s
() s
() s
() s
() s
( Nein on Nine) s
% the origin.
75 100 translate
% the scale (# of points = 1.0 in coordinate system swastika
% drawn in.
.3 .3 scale
.5 setgray
% draw outermost circle around swastika
newpath 0 0 100 45 405 arc closepath fill
% the color
0 setgray
% the width of the circle
15 setlinewidth
% swastika
gsave
newpath
0 0 moveto
1.5 1.5 scale
35 0 rlineto
0 35 rlineto
-35 -35 rmoveto
90 rotate
35 0 rlineto
0 35 rlineto
-35 -35 rmoveto
90 rotate
35 0 rlineto
0 35 rlineto
-35 -35 rmoveto
90 rotate
35 0 rlineto
0 35 rlineto
-35 -35 rmoveto
90 rotate
stroke
grestore
0 setgray
12 setlinewidth
% draw outermost circle around swastika
newpath 0 0 100 45 405 arc -71 -71 lineto closepath stroke
1 setgray
10 setlinewidth
% draw outermost circle around swastika
newpath 0 0 100 45 405 arc -71 -71 lineto closepath stroke
endpage
%%Trailer
cleanup
docsave restore end
----end of poster text----
Any postscript masters out there?
We will win in the end, for our cause is just.
Regards,
Max G. Webb
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads