diff options
author | Hans Hagen <pragma@wxs.nl> | 1998-04-15 00:00:00 +0200 |
---|---|---|
committer | Hans Hagen <pragma@wxs.nl> | 1998-04-15 00:00:00 +0200 |
commit | f7ce2124ddf34c4a7c785e1500003921d70118ba (patch) | |
tree | 35d818611773ecd034e23a0e4079ba0a994c6887 /tex/context/base/spec-pdf.tex | |
parent | 5f54d546a687e0615f87a117c5950b78ef346af7 (diff) | |
download | context-f7ce2124ddf34c4a7c785e1500003921d70118ba.tar.gz |
stable 1998.04.15
Diffstat (limited to 'tex/context/base/spec-pdf.tex')
-rw-r--r-- | tex/context/base/spec-pdf.tex | 1029 |
1 files changed, 494 insertions, 535 deletions
diff --git a/tex/context/base/spec-pdf.tex b/tex/context/base/spec-pdf.tex index 5d6375e65..0500eb7d2 100644 --- a/tex/context/base/spec-pdf.tex +++ b/tex/context/base/spec-pdf.tex @@ -1,535 +1,494 @@ -%D \module -%D [ file=spec-pdf, -%D version=1997.09.20, -%D title=\CONTEXT\ Special Macros, -%D subtitle=Adobe \PDF\ version 1.2, -%D author=Hans Hagen, -%D date=\currentdate, -%D copyright={PRAGMA / Hans Hagen \& Ton Otten}] -%C -%C This module is part of the \CONTEXT\ macro||package and is -%C therefore copyrighted by \PRAGMA. Non||commercial use is -%C granted. - -\unprotect - -%D \macros -%D {dosetupinteraction, -%D dosetupscreen, -%D dosetupidentity, -%D dostartthisislocation, -%D dostartgotolocation, -%D dostartgotorealpage, -%D doflushJSpreamble, -%D dostartgotoJS, -%D dostartcommand, -%D dostartgotoprofile, -%D dobeginofprofile, -%D doendofprofile, -%D dostartrunprogram, -%D dostartobject, -%D dostopobject, -%D doinsertobject, -%D doinsertbookmark, -%D dosetpagetransition, -%D usepagedestinations} -%D {} -%D -%D These specials are not as beautiful as they should be. The -%D main reason for this is that we started with \DVIWINDO, -%D which lacks support of \EPS||insertions, but offered a -%D powerfull linking mechanism. The first version -%D of \PDF\ did not support labels but only pagenumbers. -%D This dreadfull omission was corrected in version 2.0, but -%D we continue to support both alternatives. One never knows. -%D -%D Although the concepts behind the \type{pdfmark}'s are -%D still far from perfect, version 2.1 brought another -%D change. This time the format was changed. So much for -%D upward compatibility. - -\startspecials[pdf] - -%D Instead of a prolog, we can put the code in the file -%D ourselve. -%D -%D \starttypen -%D \definespecial\dosetupinteraction% -%D {\special -%D {\@@insertpostscriptretain -%D /pdfmark where -%D {pop} -%D {userdict /pdfmark /cleartomark load put} -%D ifelse}} -%D \stoptypen -%D -%D We decided to use a prolog file. The following code has to be -%D put somewhere. To overcome problems, we always embed the -%D fonts, but copyrights force us always to make subsets. -%D -%D \starttypen -%D /currentdistillerparams where -%D { pop } { userdict /currentdistillerparams { 1 dict } put } ifelse -%D -%D /setdistillerparams where -%D { pop } { userdict /setdistillerparams { pop } put } ifelse -%D -%D << /AntiAliasColorImages true -%D /AntiAliasGrayImages true -%D /AntiAliasMonoImages true -%D /ConvertCMYKImagesToRGB true -%D /MaxSubsetPct 99 -%D /EmbedAllFonts true -%D /SubSetFonts true >> setdistillerparams -%D \stoptypen -%D -%D Beware, this is the PostScript Level 2 way of doing things. - -\definespecial\dosetupinteraction% - {\showmessage{\m!interactions}{21}{acrobat}} - -\definespecial\dostartthisislocation#1% - {\ifusepagedestinations \else - \setPDFdestination{#1}% - \doifsomething{\PDFdestination} - {\special - {\@@insertpostscriptretain - [/Dest /\PDFdestination\space % (\PDFdestination) - /View [/Fit] - /DEST - pdfmark}}% - \fi} - -\definespecial\dostartgotolocation#1#2#3#4#5#6% - {\bgroup - \ScaledPointsToBigPoints{#1}\width - \ScaledPointsToBigPoints{#2}\height - \doifelsenothing{#3} - {\doifelsenothing{#4} - {\!!doneafalse} - {\doifparentfileelse{#4} - {\!!doneafalse} - {\!!doneatrue}}% - \ifusepagedestinations - \doifnot{0#6}{0} - {\special - {\@@insertpostscriptretain - [\if!!donea - /Action /GoToR - /File (#4.pdf) - \else - /Action /GoTo - \fi - /Rect [0 0 \width\space \height] - /Border [0 0 0] - /Page #6 - /View [/Fit] - /Subtype /Link - /ANN - pdfmark}}% - \else - \setPDFdestination{#5}% - \doifsomething{\PDFdestination} - {\special - {\@@insertpostscriptretain - [\if!!donea - /Action /GoToR - /File (#4.pdf) - \else - /Action /GoTo - \fi - /Rect [0 0 \width\space \height] - /Border [0 0 0] - /Dest /\PDFdestination\space % (\PDFdestination) - /Subtype /Link - /ANN - pdfmark}}% - \fi} - {\doifelsenothing{#4} - {\let\PDFfile=\empty - \let\PDFdestination=\empty} - {\edef\PDFfile{/#4}% - \setPDFdestination{#5}% - \doifsomething{\PDFdestination} - {\edef\PDFdestination{\URLhash\PDFdestination}}}% - \special - {\@@insertpostscriptretain - [/Action <</Subtype /URI /URI (#3\PDFfile\PDFdestination)>> - /Rect [0 0 \width\space \height] - /Border [0 0 0] - /Subtype /Link - /ANN - pdfmark}}% - \egroup} - -\definespecial\dostartgotorealpage#1#2#3#4#5% - {\bgroup - \ScaledPointsToBigPoints{#1}\width - \ScaledPointsToBigPoints{#2}\height - \doifelsenothing{#3} - {\doifelsenothing{#4} - {\!!doneafalse} - {\doifparentfileelse{#4} - {\!!doneafalse} - {\!!doneatrue}}% - \doifnot{0#5}{0} - {\special - {\@@insertpostscriptretain - [\if!!donea - /Action /GoToR - /File (#4.pdf) - \else - /Action /GoTo - \fi - /Rect [0 0 \width\space \height] - /Border [0 0 0] - /View [/Fit] - /Page #5 - /Subtype /Link - /ANN - pdfmark}}} - {\doifelsenothing{#4} - {\let\PDFfile=\empty} - {\edef\PDFfile{/#4}}% - \special - {\@@insertpostscriptretain - [/Action <</Subtype /URI /URI (#3\PDFfile)>> - /Rect [0 0 \width\space \height] - /Border [0 0 0] - /Subtype /Link - /ANN - pdfmark}}% - \egroup} - -\def\PDFexecutestart {/Movie /T (movie \currentmovie) /Operation /Play} -\def\PDFexecutestop {/Movie /T (movie \currentmovie) /Operation /Stop} -\def\PDFexecutepause {/Movie /T (movie \currentmovie) /Operation /Pause} -\def\PDFexecuteresume {/Movie /T (movie \currentmovie) /Operation /Resume} - -\def\PDFexecutefirst {/Named /N /First} -\def\PDFexecuteprevious {/Named /N /Prev} -\def\PDFexecutenext {/Named /N /Next} -\def\PDFexecutelast {/Named /N /Last} -\def\PDFexecutebackward {/Named /N /GoBack} -\def\PDFexecuteforward {/Named /N /GoForward} -\def\PDFexecuteprint {/Named /N /Print} -\def\PDFexecuteexit {/Named /N /Quit} -\def\PDFexecuteclose {/Named /N /Close} -\def\PDFexecutesave {/Named /N /Save} -\def\PDFexecutehelp {/Named /N /HelpUserGuide} -\def\PDFexecuteswap {/Named /N /FullScreen} -\def\PDFexecutesearch {/Named /N /Find} -\def\PDFexecutesearchagain {/Named /N /FindAgain} - -\definespecial\dostartexecutecommand#1#2#3#4% - {\doifdefined{PDFexecute#3} - {\bgroup - \ScaledPointsToBigPoints{#1}\width - \ScaledPointsToBigPoints{#2}\height - \special - {\@@insertpostscriptretain - [/Subtype /Link - /Action <</Subtype \getvalue{PDFexecute#3}>> - /Rect [0 0 \width\space \height] - /Border [0 0 0] - /ANN - pdfmark}% - \egroup}} - -\definespecial\dostopexecutecommand% - {} - -% \def\translatepdfcommand#1% -% {\processaction -% [#1] -% [ first=>\def\command{First}, -% previous=>\def\command{Prev}, -% next=>\def\command{Next}, -% last=>\def\command{Last}, -% backward=>\def\command{GoBack}, -% forward=>\def\command{GoForward}, -% print=>\def\command{Print}, -% exit=>\def\command{Quit}, -% help=>\def\command{HelpUserGuide}, -% enter=>\def\command{FitPage}, -% view=>\def\command{FullScreen}, -% \s!unknown=>\let\command=\s!unknown]} -% -% \definespecial\dostartexecutecommand#1#2#3#4% -% {\bgroup -% \ScaledPointsToBigPoints{#1}\width -% \ScaledPointsToBigPoints{#2}\height -% \def\nextcommands{}% -% \getcommalistsize[#1]% -% \dostepwiserecurse{2}{\commalistsize}{1} -% {\getfromcommalist[#1][\recurselevel]% -% \translatepdfcommand\commalistelement -% \edef\nextcommands% -% {\nextcommands /Next << /Type /Action /S /Named /N /\command\space}}% -% \dostepwiserecurse{2}{\commalistsize}{1} -% {\edef\nextcommands{\nextcommands >>}}% -% \getfromcommalist[#1][1]% -% \translatepdfcommand\commalistelement -% \special -% {\@@insertpostscriptretain -% [/Action << /Subtype /Named /N /\command\space \nextcommands >> -% /Rect [0 0 100 100 ] -% /Subtype /Link -% /ANN -% pdfmark}% -% \egroup} - -\edef\@@psbgroup{\string{} -\edef\@@psegroup{\string}} - -\definespecial\dostarthide% - {\special - {\@@insertpostscriptretain - [/DataSource (false \@@psbgroup) - /PS - pdfmark}} - -\definespecial\dostophide% - {\special - {\@@insertpostscriptretain - [/DataSource (\@@psegroup if) - /PS - pdfmark}} - -\definespecial\dosetupscreen#1#2#3#4#5% - {\bgroup - \!!widtha=#3sp - \advance\!!widtha by #1sp - \!!heighta=-#4sp - \!!heightb=\printpapierhoogte - \advance\!!heightb by -#2sp - \advance\!!heighta by \!!heightb - %\ScaledPointsToBigPoints{#1}\left - %\ScaledPointsToBigPoints{\number\!!heighta}\bottom - %\ScaledPointsToBigPoints{\number\!!widtha}\width - %\ScaledPointsToBigPoints{\number\!!heightb}\height - \ScaledPointsToWholeBigPoints{#1}\left - \ScaledPointsToWholeBigPoints{\number\!!heighta}\bottom - \ScaledPointsToWholeBigPoints{\number\!!widtha}\width - \ScaledPointsToWholeBigPoints{\number\!!heightb}\height - \edef\pdf@@screenmode{\ifcase#5/UseNone\else/FullScreen\fi}% - \special - {\@@insertpostscriptretain - [/CropBox [\left\space\bottom\space\width\space\height] - /PAGES - pdfmark}% - \special - {\@@insertpostscriptretain - [/PageMode \pdf@@screenmode\space - /Page 1 - /View [/Fit] - /ViewerPreferences - << /PageLayout /SinglePage - /NonFullScreenPageMode /UseNone >> - /DOCVIEW - pdfmark}% - \egroup} - -\definespecial\dosetupidentity#1#2#3#4#5% - {\special - {\@@insertpostscriptretain - [/Title (#1) - /Subject (#2) - /Author (#3) - /Creator (#4) - /ModificationDate (#5) - /DOCINFO - pdfmark}} - -\definespecial\dostartrunprogram#1#2#3% - {\bgroup - \ScaledPointsToBigPoints{#1}\width - \ScaledPointsToBigPoints{#2}\height - \edef\string{#3}% - \@EA\beforesplitstring\string\at{ }\to\program - \@EA\aftersplitstring \string\at{ }\to\parameters - \special - {\@@insertpostscriptretain - [/Action /Launch - /File (\program) - /Params (\parameters) - /Rect [0 0 \width\space \height] - /Border [0 0 0] - /Subtype /Link - /ANN - pdfmark}% - \egroup} - -\definespecial\dostartgotoprofile#1#2#3% - {\bgroup - \ScaledPointsToBigPoints{#1}\width - \ScaledPointsToBigPoints{#2}\height - \doifsomething{#3} - {\special - {\@@insertpostscriptretain - [/Action /Article - /Dest (#3) - /Rect [0 0 \width\space \height] - /Border [0 0 0] - /View [/Fit] - /Subtype /Link - /ANN - pdfmark}}% - \egroup} - -\def\dobeginofprofile#1#2#3#4% label width height page - {\bgroup - \ScaledPointsToBigPoints{#2}\width - \ScaledPointsToBigPoints{#3}\height - \doifelsenothing{#1} - {\!!doneatrue} - {\!!doneafalse}% - \doifnot{0#4}{0} - {\special - {\@@insertpostscriptretain - [/Title (#1) - /Rect [0 0 \width\space\height] - \if!!donea /Page #4 \fi - /ARTICLE - pdfmark}}% - \egroup} - -\def\doendofprofile% - {} - -\newcounter\currentmovie - -\def\docommoninsertmov#1#2#3#4#5#6#7#8% - {\bgroup - \ScaledPointsToBigPoints{#6}\width - \ScaledPointsToBigPoints{#7}\height - \edef\pdf@@posterize{\ifcase#8 \or/Poster true\fi}% - \doglobal\increment\currentmovie - \special - {\@@insertpostscriptretain - [/Type /Annot - /Subtype /Movie - /Rect [0 0 \width\space \height] - /Movie <</T (movie \currentmovie) /F (#1) /Aspect [\width\space \height] \pdf@@posterize>> - /A <</ShowControls false>> - /ANN - pdfmark}% - \egroup} - -\let\doyyinsertmov=\docommoninsertmov -\let\dotrinsertmov=\docommoninsertmov - -%\definespecial\dostartobject#1#2#3#4% -% {\bgroup -% \setbox\nextbox=\hbox\bgroup -% \bgroup -% \ScaledPointsToBigPoints{#2}\width -% \ScaledPointsToBigPoints{#3}\height -% \ScaledPointsToBigPoints{#4}\depth -% \escapechar=-1 -% \setPDFdestination{#1}% -% \special -% {\@@insertpostscriptretain -% [/BBox [0 -\depth\space \width\space \height] -% /_objdef {\PDFdestination} -% /BP pdfmark}% -% \egroup} - -\definespecial\dostartobject#1#2#3#4% - {\bgroup - \setbox\nextbox=\hbox\bgroup - \bgroup - \ScaledPointsToBigPoints{#2}\width - \ScaledPointsToBigPoints{#3}\height - \ScaledPointsToBigPoints{#4}\depth - \escapechar=-1 - \setPDFdestination{#1}% - \dosetobjectreference{#1}{\PDFdestination}% - \special - {\@@insertpostscriptretain - [/BBox [0 -\depth\space \width\space \height] - /_objdef {\PDFdestination} - /BP pdfmark}% - \egroup} - -\definespecial\dostopobject% - {\special - {\@@insertpostscriptretain - [/EP pdfmark}% - \egroup - \smashbox\nextbox - \flushatshipout{\box\nextbox}% - \egroup} - -%\definespecial\doinsertobject#1% -% {\hbox\bgroup -% \escapechar=-1 -% \setPDFdestination{#1}% -% \special -% {\@@insertpostscriptretain -% [{\PDFdestination} /SP pdfmark}% -% \egroup} - -\definespecial\doinsertobject#1% - {\hbox\bgroup - \dogetobjectreference{#1}\objectreference - \ifx\objectreference\empty \else - \special - {\@@insertpostscriptretain - [{\objectreference} /SP pdfmark}% - \fi - \egroup} - -%\definespecial\dogetobjectreference#1#2% -% {\edef#2{#1}} - -\definespecial\doinsertbookmark#1#2#3#4#5% level sublevels text page open (1) - {\sanitizePDFstring#3\to\bookmarktext - \special - {\@@insertpostscriptretain - [/Page #4\space - \ifnum#2>0 /Count \ifcase#5-\fi#2\space\fi - /View [/Fit] - /Title (\bookmarktext) - /OUT - pdfmark}} - -\def\PDFpagesplit {/S /Split } -\def\PDFpageblinds {/S /Blinds } -\def\PDFpagebox {/S /Box } -\def\PDFpagewipe {/S /Wipe } -\def\PDFpagedissolve {/S /Dissolve } -\def\PDFpageglitter {/S /Glitter } -\def\PDFpagereplace {/S /R } - -\def\PDFpagehorizontal {/Dm /H } -\def\PDFpagevertical {/Dm /V } -\def\PDFpagein {/M /I } -\def\PDFpageout {/M /O } -\def\PDFpageeast {/Di 0 } -\def\PDFpagenorth {/Di 90 } -\def\PDFpagewest {/Di 180 } -\def\PDFpagesouth {/Di 270 } - -\def\dosetPDFpagetransition#1% - {\doifdefined{PDFpage#1} - {\edef\PDFpagetransitions{\PDFpagetransitions\getvalue{PDFpage#1}}}} - -\def\dosetpagetransition#1% - {\let\PDFpagetransitions=\empty - \processcommalist[#1]\dosetPDFpagetransition - \expanded{\global\noexpand\pdfpageattr{/Trans <<\PDFpagetransitions>>}}} - -\def\pagetransitions % replace not in this list - {{split,in,vertical},{split,in,horizontal},{split,out,vertical},{split,out,horizontal}, - {blinds,horizontal},{blinds,vertical}, - {box,in},{box,out}, - {wipe,east},{wipe,west},{wipe,north},{wipe,south}, - dissolve, - {glitter,east},{glitter,south}} - -\stopspecials - -\protect - -\endinput +%D \module
+%D [ file=spec-pdf,
+%D version=1997.09.20,
+%D title=\CONTEXT\ Special Macros,
+%D subtitle=Adobe \PDF\ version 1.2,
+%D author=Hans Hagen,
+%D date=\currentdate,
+%D copyright={PRAGMA / Hans Hagen \& Ton Otten}]
+%C
+%C This module is part of the \CONTEXT\ macro||package and is
+%C therefore copyrighted by \PRAGMA. Non||commercial use is
+%C granted.
+
+\unprotect
+
+% /Border -> /B, evt meer indirecte objecten!
+
+%D \macros
+%D {dosetupinteraction,
+%D dosetupscreen,
+%D dosetupidentity,
+%D dostartthisislocation,
+%D dostartgotolocation,
+%D dostartgotorealpage,
+%D doflushJSpreamble,
+%D dostartgotoJS,
+%D dostartcommand,
+%D dostartgotoprofile,
+%D dobeginofprofile,
+%D doendofprofile,
+%D dostartrunprogram,
+%D dostartobject,
+%D dostopobject,
+%D doinsertobject,
+%D doinsertbookmark,
+%D dosetpagetransition}
+%D {}
+%D
+%D These specials are not as beautiful as they should be. The
+%D main reason for this is that we started with \DVIWINDO,
+%D which lacks support of \EPS||insertions, but offered a
+%D powerfull linking mechanism. The first version
+%D of \PDF\ did not support labels but only pagenumbers.
+%D This dreadfull omission was corrected in version 2.0, but
+%D we continue to support both alternatives. One never knows.
+%D
+%D Although the concepts behind the \type{pdfmark}'s are
+%D still far from perfect, version 2.1 brought another
+%D change. This time the format was changed. So much for
+%D upward compatibility.
+
+\startspecials[pdf]
+
+%D Instead of a prolog, we can put the code in the file
+%D ourselve.
+%D
+%D \starttypen
+%D \definespecial\dosetupinteraction%
+%D {\special
+%D {\@@insertpostscriptretain
+%D /pdfmark where
+%D {pop}
+%D {userdict /pdfmark /cleartomark load put}
+%D ifelse}}
+%D \stoptypen
+%D
+%D We decided to use a prolog file. The following code has to be
+%D put somewhere. To overcome problems, we always embed the
+%D fonts, but copyrights force us always to make subsets.
+%D
+%D \starttypen
+%D /currentdistillerparams where
+%D { pop } { userdict /currentdistillerparams { 1 dict } put } ifelse
+%D
+%D /setdistillerparams where
+%D { pop } { userdict /setdistillerparams { pop } put } ifelse
+%D
+%D << /AntiAliasColorImages true
+%D /AntiAliasGrayImages true
+%D /AntiAliasMonoImages true
+%D /ConvertCMYKImagesToRGB true
+%D /MaxSubsetPct 99
+%D /EmbedAllFonts true
+%D /SubSetFonts true >> setdistillerparams
+%D \stoptypen
+%D
+%D Beware, this is the PostScript Level 2 way of doing things.
+
+\definespecial\dosetupinteraction%
+ {\showmessage{\m!interactions}{21}{acrobat}}
+
+\definespecial\dostartthisislocation#1%
+ {\bgroup
+ \setPDFdestination{#1}%
+ \doifsomething{\PDFdestination}
+ {\special
+ {\@@insertpostscriptretain
+ [/Dest /\PDFdestination\space
+ /View [/Fit]
+ /DEST
+ pdfmark}}%
+ \egroup}
+
+\definespecial\dostartgotolocation#1#2#3#4#5#6%
+ {\bgroup
+ \ScaledPointsToBigPoints{#1}\width
+ \ScaledPointsToBigPoints{#2}\height
+ \doifelsenothing{#3}
+ {\setPDFdestination{#5}%
+ \doifsomething{\PDFdestination}
+ {\doifelsenothing{#4}
+ {\!!doneafalse}
+ {\doifparentfileelse{#4}
+ {\!!doneafalse}
+ {\!!doneatrue}}%
+ \special
+ {\@@insertpostscriptretain
+ [\if!!donea
+ /Action /GoToR
+ /File (#4.pdf)
+ \else
+ /Action /GoTo
+ \fi
+ /Rect [0 0 \width\space \height]
+ /Border [0 0 0]
+ /Dest /\PDFdestination\space
+ /Subtype /Link
+ /ANN
+ pdfmark}}}
+ {\doifelsenothing{#4}
+ {\let\PDFfile=\empty
+ \let\PDFdestination=\empty}
+ {\edef\PDFfile{/#4}%
+ \setPDFdestination{#5}%
+ \doifsomething{\PDFdestination}
+ {\edef\PDFdestination{\URLhash\PDFdestination}}}%
+ \special
+ {\@@insertpostscriptretain
+ [/Action <</Subtype /URI /URI (#3\PDFfile\PDFdestination)>>
+ /Rect [0 0 \width\space \height]
+ /Border [0 0 0]
+ /Subtype /Link
+ /ANN
+ pdfmark}}%
+ \egroup}
+
+\definespecial\dostartgotorealpage#1#2#3#4#5%
+ {\bgroup
+ \ScaledPointsToBigPoints{#1}\width
+ \ScaledPointsToBigPoints{#2}\height
+ \doifelsenothing{#3}
+ {\doifnot{0#5}{0}
+ {\doifelsenothing{#4}
+ {\!!doneafalse}
+ {\doifparentfileelse{#4}
+ {\!!doneafalse}
+ {\!!doneatrue}}%
+ \special
+ {\@@insertpostscriptretain
+ [\if!!donea
+ /Action /GoToR
+ /File (#4.pdf)
+ \else
+ /Action /GoTo
+ \fi
+ /Rect [0 0 \width\space \height]
+ /Border [0 0 0]
+ /View [/Fit]
+ /Page #5
+ /Subtype /Link
+ /ANN
+ pdfmark}}}%
+ {\doifelsenothing{#4}
+ {\let\PDFfile=\empty}
+ {\edef\PDFfile{/#4}}%
+ \special
+ {\@@insertpostscriptretain
+ [/Action <</Subtype /URI /URI (#3\PDFfile)>>
+ /Rect [0 0 \width\space \height]
+ /Border [0 0 0]
+ /Subtype /Link
+ /ANN
+ pdfmark}}%
+ \egroup}
+
+\definespecial\dostartgotoJS#1#2#3%
+ {\bgroup
+ \ifx\doPSsanitizeJScode\undefined \else
+ \ScaledPointsToBigPoints{#1}\width
+ \ScaledPointsToBigPoints{#2}\height
+ \doPSsanitizeJScode{#3}%
+ \special
+ {\@@insertpostscriptretain
+ [/Rect [0 0 \width\space \height]
+ /Border [0 0 0]
+ /Action << /Subtype /JavaScript /JS (\sanitizedJScode) >>
+ /Subtype /Link
+ /ANN
+ pdfmark}%
+ \fi
+ \egroup}
+
+\definespecial\doflushJSpreamble#1%
+ {\bgroup
+ \ifx\doPSsanitizeJScode\undefined \else
+ \special
+ {\@@insertpostscriptretain
+ [ /_objdef{initialize}
+ /type /dict
+ /OBJ pdfmark}%
+ \let\compositeJScode=\empty
+ \def\docommando##1%
+ {\special
+ {\@@insertpostscriptretain
+ [ /_objdef{JS:##1} /type /dict /OBJ pdfmark}%
+ \expanded{\doPSsanitizeJScode{\getJSpreamble{##1}}}%
+ \special
+ {\@@insertpostscriptretain
+ [ {JS:##1} << /S /JavaScript /JS (\sanitizedJScode) >> /PUT pdfmark}%
+ \edef\compositeJScode%
+ {\compositeJScode\space (##1) {JS:##1}}}%
+ \processcommalist[#1]\docommando
+ \special
+ {\@@insertpostscriptretain
+ [ {initialize} << /JavaScript << /Names [ \compositeJScode ] >> >> /PUT pdfmark
+ [ {Catalog} << /Names {initialize} >> /PUT pdfmark}%
+ \fi
+ \egroup}
+
+\def\PDFexecutestart {/Movie /T (movie \currentmovie) /Operation /Play}
+\def\PDFexecutestop {/Movie /T (movie \currentmovie) /Operation /Stop}
+\def\PDFexecutepause {/Movie /T (movie \currentmovie) /Operation /Pause}
+\def\PDFexecuteresume {/Movie /T (movie \currentmovie) /Operation /Resume}
+
+\def\PDFexecutefirst {/Named /N /First}
+\def\PDFexecuteprevious {/Named /N /Prev}
+\def\PDFexecutenext {/Named /N /Next}
+\def\PDFexecutelast {/Named /N /Last}
+\def\PDFexecutebackward {/Named /N /GoBack}
+\def\PDFexecuteforward {/Named /N /GoForward}
+\def\PDFexecuteprint {/Named /N /Print}
+\def\PDFexecuteexit {/Named /N /Quit}
+\def\PDFexecuteclose {/Named /N /Close}
+\def\PDFexecutesave {/Named /N /Save}
+\def\PDFexecutehelp {/Named /N /HelpUserGuide}
+\def\PDFexecuteswap {/Named /N /FullScreen}
+\def\PDFexecutesearch {/Named /N /Find}
+\def\PDFexecutesearchagain {/Named /N /FindAgain}
+
+\definespecial\dostartexecutecommand#1#2#3#4%
+ {\doifdefined{PDFexecute#3}
+ {\bgroup
+ \ScaledPointsToBigPoints{#1}\width
+ \ScaledPointsToBigPoints{#2}\height
+ \special
+ {\@@insertpostscriptretain
+ [/Subtype /Link
+ /Action <</Subtype \getvalue{PDFexecute#3}>>
+ /Rect [0 0 \width\space \height]
+ /Border [0 0 0]
+ /ANN
+ pdfmark}%
+ \egroup}}
+
+\definespecial\dostopexecutecommand%
+ {}
+
+\edef\@@psbgroup{\string{}
+\edef\@@psegroup{\string}}
+
+\definespecial\dostarthide%
+ {\special
+ {\@@insertpostscriptretain
+ [/DataSource (false \@@psbgroup)
+ /PS
+ pdfmark}}
+
+\definespecial\dostophide%
+ {\special
+ {\@@insertpostscriptretain
+ [/DataSource (\@@psegroup if)
+ /PS
+ pdfmark}}
+
+\definespecial\dosetupscreen#1#2#3#4#5%
+ {\bgroup
+ \!!widtha=#3sp
+ \advance\!!widtha by #1sp
+ \!!heighta=-#4sp
+ \!!heightb=\printpapierhoogte
+ \advance\!!heightb by -#2sp
+ \advance\!!heighta by \!!heightb
+ %\ScaledPointsToBigPoints{#1}\left
+ %\ScaledPointsToBigPoints{\number\!!heighta}\bottom
+ %\ScaledPointsToBigPoints{\number\!!widtha}\width
+ %\ScaledPointsToBigPoints{\number\!!heightb}\height
+ \ScaledPointsToWholeBigPoints{#1}\left
+ \ScaledPointsToWholeBigPoints{\number\!!heighta}\bottom
+ \ScaledPointsToWholeBigPoints{\number\!!widtha}\width
+ \ScaledPointsToWholeBigPoints{\number\!!heightb}\height
+ \edef\pdf@@screenmode{\ifcase#5/UseNone\else/FullScreen\fi}%
+ \special
+ {\@@insertpostscriptretain
+ [/CropBox [\left\space\bottom\space\width\space\height]
+ /PAGES
+ pdfmark}%
+ \special
+ {\@@insertpostscriptretain
+ [/PageMode \pdf@@screenmode\space
+ /Page 1
+ /View [/Fit]
+ /ViewerPreferences
+ << /PageLayout /SinglePage
+ /NonFullScreenPageMode /UseNone >>
+ /DOCVIEW
+ pdfmark}%
+ \egroup}
+
+\definespecial\dosetupidentity#1#2#3#4#5%
+ {\special
+ {\@@insertpostscriptretain
+ [/Title (#1)
+ /Subject (#2)
+ /Author (#3)
+ /Creator (#4)
+ /ModificationDate (#5)
+ /DOCINFO
+ pdfmark}}
+
+\definespecial\dostartrunprogram#1#2#3%
+ {\bgroup
+ \ScaledPointsToBigPoints{#1}\width
+ \ScaledPointsToBigPoints{#2}\height
+ \edef\string{#3}%
+ \@EA\beforesplitstring\string\at{ }\to\program
+ \@EA\aftersplitstring \string\at{ }\to\parameters
+ \special
+ {\@@insertpostscriptretain
+ [/Action /Launch
+ /File (\program)
+ /Params (\parameters)
+ /Rect [0 0 \width\space \height]
+ /Border [0 0 0]
+ /Subtype /Link
+ /ANN
+ pdfmark}%
+ \egroup}
+
+\definespecial\dostartgotoprofile#1#2#3%
+ {\bgroup
+ \doifsomething{#3}
+ {\ScaledPointsToBigPoints{#1}\width
+ \ScaledPointsToBigPoints{#2}\height
+ \special
+ {\@@insertpostscriptretain
+ [/Action /Article
+ /Dest (#3)
+ /Rect [0 0 \width\space \height]
+ /Border [0 0 0]
+ /View [/Fit]
+ /Subtype /Link
+ /ANN
+ pdfmark}}%
+ \egroup}
+
+\def\dobeginofprofile#1#2#3#4% label width height page
+ {\bgroup
+ \doifnot{0#4}{0}
+ {\ScaledPointsToBigPoints{#2}\width
+ \ScaledPointsToBigPoints{#3}\height
+ \doifelsenothing{#1}
+ {\!!doneatrue}
+ {\!!doneafalse}%
+ \special
+ {\@@insertpostscriptretain
+ [/Title (#1)
+ /Rect [0 0 \width\space\height]
+ \if!!donea /Page #4 \fi
+ /ARTICLE
+ pdfmark}}%
+ \egroup}
+
+\def\doendofprofile%
+ {}
+
+\newcounter\currentmovie
+
+\def\docommoninsertmov#1#2#3#4#5#6#7#8%
+ {\bgroup
+ \ScaledPointsToBigPoints{#6}\width
+ \ScaledPointsToBigPoints{#7}\height
+ \edef\pdf@@posterize{\ifcase#8 \or/Poster true\fi}%
+ \doglobal\increment\currentmovie
+ \special
+ {\@@insertpostscriptretain
+ [/Type /Annot
+ /Subtype /Movie
+ /Rect [0 0 \width\space \height]
+ /Movie <</T (movie \currentmovie) /F (#1) /Aspect [\width\space \height] \pdf@@posterize>>
+ /A <</ShowControls false>>
+ /ANN
+ pdfmark}%
+ \egroup}
+
+\let\doyyinsertmov=\docommoninsertmov
+\let\dotrinsertmov=\docommoninsertmov
+
+\definespecial\dostartobject#1#2#3#4%
+ {\bgroup
+ \setbox\nextbox=\hbox\bgroup
+ \bgroup
+ \ScaledPointsToBigPoints{#2}\width
+ \ScaledPointsToBigPoints{#3}\height
+ \ScaledPointsToBigPoints{#4}\depth
+ \escapechar=-1
+ \setPDFdestination{#1}%
+ \dosetobjectreference{#1}{\PDFdestination}%
+ \special
+ {\@@insertpostscriptretain
+ [/BBox [0 -\depth\space \width\space \height]
+ /_objdef {\PDFdestination}
+ /BP pdfmark}%
+ \egroup}
+
+\definespecial\dostopobject%
+ {\special
+ {\@@insertpostscriptretain
+ [/EP pdfmark}%
+ \egroup
+ \smashbox\nextbox
+ \flushatshipout{\box\nextbox}%
+ \egroup}
+
+\definespecial\doinsertobject#1%
+ {\hbox
+ {\dogetobjectreference{#1}\objectreference
+ \ifx\objectreference\empty \else
+ \special
+ {\@@insertpostscriptretain
+ [{\objectreference} /SP pdfmark}%
+ \fi}}
+
+\definespecial\doinsertbookmark#1#2#3#4#5% level sublevels text page open (1)
+ {\bgroup
+ \sanitizePDFstring#3\to\bookmarktext
+ \special
+ {\@@insertpostscriptretain
+ [/Page #4\space
+ \ifnum#2>0 /Count \ifcase#5-\fi#2\space\fi
+ /View [/Fit]
+ /Title (\bookmarktext)
+ /OUT
+ pdfmark}%
+ \egroup}
+
+\def\PDFpagesplit {/S /Split }
+\def\PDFpageblinds {/S /Blinds }
+\def\PDFpagebox {/S /Box }
+\def\PDFpagewipe {/S /Wipe }
+\def\PDFpagedissolve {/S /Dissolve }
+\def\PDFpageglitter {/S /Glitter }
+\def\PDFpagereplace {/S /R }
+
+\def\PDFpagehorizontal {/Dm /H }
+\def\PDFpagevertical {/Dm /V }
+\def\PDFpagein {/M /I }
+\def\PDFpageout {/M /O }
+\def\PDFpageeast {/Di 0 }
+\def\PDFpagenorth {/Di 90 }
+\def\PDFpagewest {/Di 180 }
+\def\PDFpagesouth {/Di 270 }
+
+\def\dosetPDFpagetransition#1%
+ {\doifdefined{PDFpage#1}
+ {\edef\PDFpagetransitions{\PDFpagetransitions\getvalue{PDFpage#1}}}}
+
+\def\dosetpagetransition#1%
+ {\let\PDFpagetransitions=\empty
+ \processcommalist[#1]\dosetPDFpagetransition
+ \expanded{\global\noexpand\pdfpageattr{/Trans <<\PDFpagetransitions>>}}}
+
+\def\pagetransitions % replace not in this list
+ {{split,in,vertical},{split,in,horizontal},{split,out,vertical},{split,out,horizontal},
+ {blinds,horizontal},{blinds,vertical},
+ {box,in},{box,out},
+ {wipe,east},{wipe,west},{wipe,north},{wipe,south},
+ dissolve,
+ {glitter,east},{glitter,south}}
+
+\stopspecials
+
+\protect
+
+\endinput
|