Hi:
I had ODS RTF on my mind...here's why: ODS RTF will use your inline formatting for page x of y as long as you use the NOGTITLE and NOGFOOTNOTE options. These options (which are HTML or RTF options) cause the SAS TITLE and FOOTNOTE to be rendered by the destination. Otherwise, if you do NOT use these options or you cannot use the options (as is the case with LISTING and PDF), then the in-line formatting commands (such as page x of y) will not be respected.
At it states in this Tech Support note:
http://support.sas.com/kb/33/986.html
"By default, titles and footnotes are embedded in the images created by SAS/GRAPH procedures. When inline style commands are used to change the style of titles or footnotes or to add PAGEOF information, the commands are written as text to the respective titles and footnotes."
This causes the behavior you are seeing in which the page numbers do NOT appear in the PDF file. The workaround is to switch to ODS RTF and use the NOGTITLE and NOGFOOTNOTE options. (You could also switch to ODS HTML and use NOGTITLE and NOGFOOTNOTE options, however, since ODS HTML does not have page numbering, your page x of y commands would be ignored.)
The simplified code below shows how the page numbering can be made to work with RTF and does not work with PDF.
[pre]
goptions reset=all;
options nodate nonumber pageno=1;
** Make some data for the GPLOT;
proc sort data=sashelp.shoes out=shoes;
by product;
where product in ('Boot', 'Sandal') and
region in ('Asia', 'Canada', 'Pacific');
run;
ods listing close;
%let title = My Title;
** Use nogtitle and nogfootnote to have titles/footnotes rendered by ODS;
** instead of by SAS/Graph. Note that PDF does NOT support these 2 options;
ods rtf file="c:\temp\temp_pgno.rtf" nogtitle nogfootnote;
ODS pdf FILE = "c:\temp\temp_pgno.pdf";
** declare the ESCAPE character as caret ^;
ods escapechar='^';
** Use the page x of y in-line formatting commands within the code;
** NOGTITLE and NOGFOOTNOTE will cause RTF to render the in-line formatting.;
** But PDF will only pass the text strings to SAS/GRAPH where they will be embedded;
** as text in the image (not as page x of y page numbering.;
title1 j=r f=Arial "Page ^{thispage} of ^{lastpage}";
footnote1 h=2 j=l f=Arial "&title" j=r f=Arial 'Page ^{thispage} of ^{lastpage}';
proc gplot data=shoes ;
by product;
plot sales*returns=region ;
plot sales*inventory=region;
run;
quit;
ods _all_ close;
[/pre]
If you notice that the page numbers do not appear correctly when the RTF file is first opened in Word, you just have to go into Print Preview or otherwise force the document to repaginate and the page numbers will be corrrect.
cynthia
... View more