Path: csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!npeer02.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!border3.nntp.dca.giganews.com!Xl.tags.giganews.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local2.nntp.dca.giganews.com!news.giganews.com.POSTED!not-for-mail NNTP-Posting-Date: Sat, 09 Jun 2012 09:18:49 -0500 From: John Deubert Organization: Acumen Training Newsgroups: comp.lang.postscript Date: Sat, 9 Jun 2012 07:18:48 -0700 Message-ID: <2012060907184822140-john@acumentrainingcom> References: <87r4to6ddr.fsf@Compaq.site> <878vfw66a3.fsf@Compaq.site> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: Why do I not see the characters User-Agent: Unison/2.1.7 Lines: 199 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-5SC7oyp7FI/ZsgAIjeo53HmmXxVe6wQ0a2BVofIECfSTNizaZpvNIY1TXu6xV/YGLX9eVX6Phb2OySQ!BojG+UaSFBxvhHkuL7lCAeTPqIscxlXmJfDFpIGOyuH60gF4Xi5DiQwf8s8/UroQfM3RqxwT X-Complaints-To: abuse@giganews.com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 X-Original-Bytes: 6092 X-Received-Bytes: 6233 Xref: csiph.com comp.lang.postscript:713 Hi, Cecil - By "library" do you mean PS code stored on your hard disk? If so, you can store the code in a .ps file and execute it from within another PS program with the "run" operator: (myLibraryCode.ps) run As you can see, "run" is the PS equivalent of "#include." The only tricky bit is figuring out what directory on your disk epstopdf considers to be its "home" directory, that is, where it will look for the myLibraryCode.ps file. It may be the directory in which the epstopdf executable resides; that's common, but by no means the only possibility. One way to ferret this out is to make a file from within a PS program and see where the file shows up on your disk. Try this: % ====Cut here====== (TestFile.txt)(w) file dup (This is a test.) writestring closefile % ====Cut here====== Run this program and see where the TestFile.txt file shows up; that's the home directory. There's a detailed article on this in the January 2002 issue of the Acumen Journal (free for the downloading here: www.acumentraining.com/acumenjournal.html) Or am I mistaken about what you're wanting to do? - John P.S. Incidentally, the "run" operator's string argument can take a UNIX-style pathname: (librarycode/myLibraryCode.ps) run ======== John Deubert Acumen Training PostScript & PDF Engineering Classes & Consulting www.acumentraining.com Learn PostScript programming techniques Read the free Acumen Journal acumentraining.com/acumenjournal.html On 2012-06-09 12:04:04 +0000, Cecil Westerhof said: > Op zaterdag 9 jun 2012 11:30 CEST schreef Cecil Westerhof: > >> I just started trying to do some things with postscript. I made a >> little program based on the rosette example in the bluebook. I want in >> the different wedges to display characters of a string, but they do >> not appear. What am I doing wrong. > > The first part I found. I did not understand what was happening > correctly. Below a correct working version. Comment is welcome. ;-} > >> >> I also started making a library. But I am working with epstopdf to >> make a pdf and then convert to create a png. Ideally I would not have >> to have the library in the program itself, but could use an include. >> But that is not possible with epstopdf. I tried to use the command >> that epstopdf generates without the -dSAFER, but to no avail. Anyone >> an idea how to solve this? > > Help with this is still very welcome. > > The new code: > %!PS-Adobe-3.0 EPSF-3.0 > %%BoundingBox: 0 0 600 600 > > /pageBottom 0 def > /pageLeft 0 def > /pageRight 600 def > /pageTop 600 def > > %% Library functions > /grayBackground { % gray > newpath > gsave > setgray > newpath > pageLeft pageBottom pageRight pageTop rectangle > fill > stroke > .4 setgray > usedFont > authorFont scalefont > setfont > ((c) Cecil Westerhof - Decebal Computing) 550 5 rightString > grestore > } def > > /rectangle { % left bottom right top > 4 dict begin > /top exch def > /right exch def > /bottom exch def > /left exch def > > left bottom moveto > right bottom lineto > right top lineto > left top lineto > left bottom lineto > closepath > > end > } def > > /rightString { % string x y > 3 dict begin > /y exch def > /x exch def > /string exch def > > x y moveto > string stringwidth pop neg > 0 > rmoveto > string > show > > end > } def > > > %% Normal functions > /wedge { % string > gsave > newpath > 0 0 moveto > 1 0 translate > halfTurn rotate > 0 halfTurn sin translate > gsave > 0 0 halfTurn sin 90 -90 arc > closepath > gsave > fill > grestore > 0 setgray > stroke > grestore > 0 setgray > -90 rotate > dup stringwidth pop neg 2 div 0 moveto > show > grestore > } def > > % Library init > /authorFont 10 def > /backgroundGray .6 def > /usedFont /Bookman findfont def > > % Program init > /steps 14 def > /turn 360 steps div neg def > /halfTurn turn 2 div def > /string (Testing) def > > backgroundGray grayBackground > > gsave > 300 300 translate > 0 0 moveto > 200 200 scale > usedFont > .25 scalefont > setfont > 0.02 setlinewidth > 180 rotate > 0 1 steps 2 div 1 sub > { > dup > steps div .5 add setgray > string exch 1 getinterval > wedge > turn rotate > } for > grestore > > showpage --