Date: Tue, 7 Feb 2006 09:18:23 -0800
Reply-To: "data _null_;" <datanull@GMAIL.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "data _null_;" <datanull@GMAIL.COM>
Organization: http://groups.google.com
Subject: Re: post-processing a post-script file
In-Reply-To: <1139331429.926145.193750@o13g2000cwo.googlegroups.com>
Content-Type: text/plain; charset="iso-8859-1"
Perhaps you could turn the problem around, by first removing PDFMARK
from your ODS statement. Then "somehow" insert the ONE bookmark that
you do want. Mind you I have no first hand experience with your
specific problem.
epelz@yahoo.com wrote:
> First post so bear with me...
>
> I'm using a macro to iteratively write single pages to a post-script
> file. I do it this way because I'm putting multiple proc report and
> proc gchart items on each page by using the startpage=never and ods
> layout/ods region statements.
>
> My problem is that I want to convert the ps file to pdf format and have
> one bookmark per page. After conversion there is one bookmark per
> procedure and they all point to the same page. (I contacted SAS and
> they confirm that there is no way to turn procedure level bookmarks off
> completely.)
>
> I can go in and manually edit the ps file to delete the unwanted
> bookmarks and increment the page references for the ones that I want to
> keep, but it is tedious. The good news is that the bookmark references
> are standard -- pdfmark[/Title(Label_1)/Page1/View[/XYZ# # # ]/OUT --
> so I can automate the process. If there are n pages and k procedures
> per page then I need to delete n*(k-1) pdfmark's and change n-1
> pdfmark's page reference.
>
> I'd like to keep it in SAS so production is seamless. Has anyone done
> this sort of work before? Much thanks.
>
> Here is a sketch of the code:
>
> filename outfile 'example.ps' mod;
> %macro pswriter();
> ods ps style=journal startpage=never file=&psfile pdfmark;
> ods layout start;
> ods region x=5 in y=1.5 in height=2 in width=2 in;
> proc report;
> ods region x=0 in y=1.1 in height=4 in width=5 in;
> proc gchart;
> ods layout end;
> ods ps file=&psfile close;
> %mend;
>
> %macro loop_ps;
> %do i=1 %to &total;
> %pswriter();
> %end;
> %mend;
|