Here is some very simple code that illustrates the issue. Note that the actual application code is much much more complicated, with use of ODS Layout to place 'pretty' GPLOT charts etc etc. It all works fine if the doucment is not secured. But, as soon as try to use security, the anchors/links o longer work? The password to open the "Secured" PDF file is: TheBigCheese. data junky; do x=1 to 100; y=rannor(x); output; end; run; %macro rdt; %global rdt; data _null_; rep_date=trim(left(put(date(),weekdate18.))); rep_time=trim(left(put(time(),TOD8.))); rdt= rep_date||rep_time; put rdt=; call symput('rdt',rdt); run; %mend rdt; %let MaxPage=13; %rdt; options PDFSECURITY=NONE; ods escapechar='~'; options orientation=landscape nonumber nodate; ods pdf notoc file="C:\temp\Testing123_NotSecure.pdf" startpage=never compress=9; ods pdf startpage=yes; footnote h=8pt f=Helvetica j=l "Printed By [Lowly_Grunt] on &rdt (PST)" j=r "page ~{thispage} of &Maxpage"; footnote1 h=8pt f=Helvetica j=l "The Anchors/Links WORK in this PDF because it has NO SECURITY"; footnote2 h=8pt f=Helvetica j=l "Printed By [Lowly_Grunt] on &rdt (PST)" j=r "page ~{thispage} of &Maxpage"; data junk; length Table$150; table="table1"; text="Table of Summary Statistics for Each Parameter"; output; table="table2"; text="Simple Chart"; output; table="table3"; text="Table of Nelson 1 Violations"; output; run; ods pdf startpage=yes; title "VERY SIMPLE Example just for illustration!"; title2 "Real Code has anchors embedded in Proc Report Tables, many charts, etc etc"; proc report data=junk nowindows; column table text; define text / display 'Table of Contents (Click to link to location in document) ' style=[cellheight=20pt cellwidth=4.75in font_size=10pt vjust=c ]; define table / noprint; compute text; urlstring="#"||trim(Table); call define (_col_,'URL',urlstring); endcomp; run; ods pdf startpage=yes; ods pdf anchor="table1"; title "table 1"; proc report data=junky nowindows; column x y; define x / display; define y /display; run; ods pdf startpage=yes; ods pdf anchor="table2"; title "table 2"; proc report data=junky nowindows; column x y; define x / display; define y /display; run; ods pdf startpage=yes; ods pdf anchor="table3"; title "table 3"; ods pdf anchor="table3"; proc report data=junky nowindows; column x y; define x / display; define y /display; run; ods pdf close; /* Now make same simple output with Security. I've trid all kinds of combinations. But, it appears as if when the document gets encrypted, the SAS PDF Driver loses the connection between the anchors and the calling links? You see garbled characters if you interrogate the links using Adobe Acrobat... */ options PDFSECURITY=HIGH PDFCONTENT PDFACCESS PDFASSEMBLY; options PDFPASSWORD=(OPEN="TheBigCheese"); *options PDFSECURITY=LOW PDFCONTENT PDFACCESS; ods escapechar='~'; options orientation=landscape nonumber nodate; ods pdf notoc file="C:\temp\Testing123_Secure.pdf" startpage=never compress=9; ods pdf startpage=yes; footnote h=8pt f=Helvetica j=l "Printed By [Lowly_Grunt] on &rdt (PST)" j=r "page ~{thispage} of &Maxpage"; footnote1 h=8pt f=Helvetica j=l "The Anchors/Links DO NOT WORK in this PDF because it has SECURITY"; footnote2 h=8pt f=Helvetica j=l "I've tried all combinations of Security Settings...but the anchors/links just dont work?"; footnote3 h=8pt f=Helvetica j=l "Printed By [Lowly_Grunt] on &rdt (PST)" j=r "page ~{thispage} of &Maxpage"; data junk; length Table$150; table="table1"; text="Table of Summary Statistics for Each Parameter"; output; table="table2"; text="Simple Chart"; output; table="table3"; text="Table of Nelson 1 Violations"; output; run; ods pdf startpage=yes; title "VERY SIMPLE Example just for illustration!"; title2 "Real Code has anchors embedded in Proc Report Tables, many charts, etc etc"; proc report data=junk nowindows; column table text; define text / display 'Table of Contents (Click to link to location in document) ' style=[cellheight=20pt cellwidth=4.75in font_size=10pt vjust=c ]; define table / noprint; compute text; urlstring="#"||trim(Table); call define (_col_,'URL',urlstring); endcomp; run; ods pdf startpage=yes; ods pdf anchor="table1"; title "table 1"; proc report data=junky nowindows; column x y; define x / display; define y /display; run; ods pdf startpage=yes; ods pdf anchor="table2"; title "table 2"; proc report data=junky nowindows; column x y; define x / display; define y /display; run; ods pdf startpage=yes; ods pdf anchor="table3"; title "table 3"; ods pdf anchor="table3"; proc report data=junky nowindows; column x y; define x / display; define y /display; run; John
... View more