summaryrefslogtreecommitdiff
path: root/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2017-07-13 10:25:48 +0900
committerNorbert Preining <norbert@preining.info>2017-07-13 10:25:48 +0900
commitcfe306ba1b7ec40855a300580b7981845d56edeb (patch)
treee2feaf2adf8a8afe43a995528097913793874d01 /texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.tex
parent32d0671418a3cc6ad0465b06539ed54d96f77784 (diff)
add aeb-mlink aeb-pro aebxmp graphicxsp annot-pro
Diffstat (limited to 'texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.tex')
-rw-r--r--texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.tex361
1 files changed, 361 insertions, 0 deletions
diff --git a/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.tex b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.tex
new file mode 100644
index 00000000..c20a15e0
--- /dev/null
+++ b/texmf-dist/doc/latex/aeb-pro/examples/aebpro_ex3.tex
@@ -0,0 +1,361 @@
+% Acrobat required
+% use useacrobat option with pdftex and xetex if you have acrobat
+\documentclass{article}
+\usepackage{graphicx,fancyvrb}
+\usepackage[%
+ web={
+ pro,
+ designv,
+ tight,
+% forcolorpaper, % uncomment to get doc for paper
+ centertitlepage,
+ usesf
+ },
+ eforms,
+%
+% Attach source file, and the tex log (I've renamed \jobname.log
+% to \jobname.tex.log to avoid the distiller from overwriting it.
+% The distiller only creates the log if there some sort of error message; consequently,
+% the log for distiller is not attached (no error), but the tex log is destroyed by distiller
+ attachsource={tex,log,tex.log},
+%
+% Just for laughs, let's include Robot Man.
+%
+ attachments={extras.zip.txt, ../extras/robot_man.pdf},
+ aebxmp,
+]{aeb_pro}
+
+\DeclareDocInfo
+{
+ title=The AeB Pro Package\texorpdfstring{\\[1ex]}{: }Attachments and Doc Assembly,
+ author=D. P. Story,
+ university=Acro\negthinspace\TeX.Net,
+ email=dpstory@acrotex.net,
+ subject=Test file for the AeB Pro package,
+ keywords={Adobe Acrobat, JavaScript},
+ talksite=http://www.acrotex.net,
+ talkdate={January 12, 2007},
+ version=1.0,
+ copyrightStatus=True,
+ copyrightNotice={Copyright (C) \the\year, D. P. Story},
+ copyrightInfoURL=http://www.acrotex.net
+}
+\DeclareInitView{layoutmag={navitab=UseAttachments},windowoptions=fit}
+
+\newcommand{\cs}[1]{\texttt{\char`\\#1}}
+\newcommand\newtopic{\par\ifdim\lastskip>0pt\relax\vskip-\lastskip\fi
+\vskip\medskipamount\noindent}
+\newenvironment{sverbatim}
+{\par\footnotesize\verbatim}{\endverbatim}
+%
+% As you do not have the necessary background files, the \addWatermarkFromFile
+% will silently fail.
+%
+\begin{forpaper}
+\begin{docassembly}
+var pos=this.path.indexOf(this.documentFileName,"/");
+var myPath=this.path.substring(0,pos);
+try {
+\addWatermarkFromFile({
+ bOnTop:false,
+ cDIPath:myPath+"../extras/Manual_BG_Print_AeB.pdf"
+}); } catch(e) { console.println(e.toString()) };
+try {
+ \importSound({cName: "StarTrek", cDIPath: "../extras/trek.wav" });
+} catch(e) { console.println(e.toString()) };
+try {
+ \importIcon({cName: "logo", cDIPath: "../extras/AeB_Logo.pdf"});
+ \importIcon({cName: "logopush", cDIPath: "../extras/AeB_Logo_bw15.pdf"});
+ \importIcon({cName: "logorollover", cDIPath: "../extras/AeB_Logo_bw50.pdf"});
+ var f = this.getField("cheesySound");
+ f.buttonPosition = position.iconOnly;
+ var oIcon = this.getIcon("logo");
+ f.buttonSetIcon(oIcon,0);
+ oIcon = this.getIcon("logopush");
+ f.buttonSetIcon(oIcon,1);
+ oIcon = this.getIcon("logorollover");
+ f.buttonSetIcon(oIcon,2);
+} catch(e) { console.println(e.toString()) };
+try {\importDataObject({cName: "AeB Pro Example #2",cDIPath: "aebpro_ex2.pdf"});} catch(e){}
+\end{docassembly}
+\end{forpaper}
+\begin{forscreen}
+\begin{docassembly}
+var pos=this.path.indexOf(this.documentFileName);
+var myPath=this.path.substring(0,pos);
+try {
+ \addWatermarkFromFile({
+ bOnTop:false,
+ cDIPath:myPath+"../extras/Manual_BG_DesignV_AeB.pdf"
+ });
+} catch(e) { console.println(e.toString()) };
+try {
+ \importSound({cName: "StarTrek", cDIPath: "../extras/trek.wav" });
+} catch(e) { console.println(e.toString()) };
+try {
+ \importIcon({cName: "logo", cDIPath: "../extras/AeB_Logo.pdf"});
+ \importIcon({cName: "logopush", cDIPath: "../extras/AeB_Logo_bw15.pdf"});
+ \importIcon({cName: "logorollover", cDIPath: "../extras/AeB_Logo_bw50.pdf"});
+ var f = this.getField("cheesySound");
+ f.buttonPosition = position.iconOnly;
+ var oIcon = this.getIcon("logo");
+ f.buttonSetIcon(oIcon,0);
+ oIcon = this.getIcon("logopush");
+ f.buttonSetIcon(oIcon,1);
+ oIcon = this.getIcon("logorollover");
+ f.buttonSetIcon(oIcon,2);
+} catch(e) { console.println(e.toString()) };
+try {\importDataObject({cName: "AeB Pro Example #2",cDIPath: "aebpro_ex2.pdf"});} catch(e){}
+\end{docassembly}
+\end{forscreen}
+
+\begin{document}
+
+\maketitle
+
+\tableofcontents
+
+\section{Introduction}
+
+AeB Pro has two options for attaching files to the source PDF. The
+approach is the \texttt{import\-Data\-Object} JavaScript method in
+conjunction with the FDF techniques.
+
+Also in this sample file, doc assembly techniques are also
+demonstrated.\footnote{The attachments feature uses doc assembly
+methods, but simplified for user convenience.}
+
+\section{Attaching Files with AeB Pro}
+
+There are two options for attaching files
+\begin{enumerate}
+ \item \texttt{attachsource} is a simplified option for attaching
+ any file of the form \cs{jobname.}\texttt{\textsl{ext}}.
+
+ \item \texttt{attachments} is a general option for attaching a
+ file, as specified by its absolute or relative path.
+\end{enumerate}
+
+\subsection{The \texttt{attachsource} option}
+
+Use this option to attach a file with the same base name as \cs{jobname}.
+
+\begin{Verbatim}
+ \usepackage[%
+ driver=dvips,
+ web={pro,usesf,...},
+ attachsource={tex,dvi,log,tex.log},
+ ...
+ ]{aeb_pro}
+\end{Verbatim}
+Simply list the extensions you wish to attach to the current
+document. In the example above, we attach the original source file
+\cs{jobname.tex}, \cs{jobname.dvi}, \cs{jobname.log} (the distiller
+log) and \cs{jobname.tex.log} (the tex log).
+
+
+\newtopic One problem with attaching the log file is that the distiller also
+produces a log file with the same name \cs{jobname.log}.
+Consequently, the log file for the tex file is overwritten by the
+distiller log file. You'll see from the PDF document, that the log
+file attached is the one for the distiller.
+
+A work around for this is to latex your file, rename the
+log file to another extension, such as \cs{jobname.tex.log}, then
+distill.
+
+\subsection{The \texttt{attachments} option}
+
+The \texttt{attachments} key is for attaching files other than ones
+associated with the source file. The value of this key is a
+comma-delimited list (enclosed in braces) of absolute paths and/or
+relative paths to the file required to attach. For example,
+
+\begin{Verbatim}
+\usepackage[%
+ driver=dvips,
+ web={pro,usesf,...},
+ attachments={extras.zip.txt,../extras/robot_man.pdf,
+ /C/Documents and Settings/dps/My Documents/My Pictures/birthday17.jpg},
+ ...
+]{aeb_pro}
+\end{Verbatim}
+The first and second references are relative to the folder containing this
+source file, and third one is an example of an absolute path
+(picture not attached).
+
+\newtopic There are some files that Acrobat does not attach, but
+there is no public list of these. One finds them by discovery,
+\texttt{.exe} and \texttt{.zip} files, for example.
+
+A trick that I use to send \texttt{.zip} files through the email
+(they are often stripped away by mail servers) is to \emph{hide} the
+\texttt{.zip} file in a PDF as an attachment. But since Acrobat does
+not attach \texttt{.zip}, I change the extension from \texttt{.zip}
+to \texttt{zip.txt}, then inform the recipient to save the
+\texttt{zip.txt} file and change the extension back to \texttt{.zip}.
+Swave!
+
+\section{Doc Assembly}
+
+Ahhhh, document assembly. What can be said? This is a method that I
+have used for many years and is incorporated into the
+\textsf{insdljs} package under the name of \texttt{execJS}. Whereas
+the \texttt{execJS} environment is still available to you, I've
+simplified things. The term doc assembly refers to the use of the
+\texttt{docassembly} environment (which is just an \texttt{execJS}
+environment).
+
+The \texttt{execJS}/\texttt{docassembly} environments create an FDF
+file with the various JavaScript commands that were contained in the
+body of the environment. These environments also place in open page
+action so that when the PDF is opened for the first time in Acrobat
+Pro, the FDF file will be imported and the JS will be executed one
+time and then discarded, see \cite{TUG:execJS} for an article on this topic.
+This technique only works if you have Acrobat Pro.
+
+In addition to the \texttt{docassembly} environment, AeB Pro also
+has several macros that expand to JavaScript methods that I find
+useful. These are
+\begin{enumerate}
+ \item \cs{addWatermarkFromFile}: inserts a background into the PDF
+
+ \item \cs{importIcon}: imports icon files\footnote{The
+ AcroMemory package uses these environments and functions to
+ import icons.}
+
+ \item \cs{importSound}: imports a sound file
+
+ \item \cs{appopenDoc}: opens a document
+
+ \item \cs{insertPages}: inserts pages into the PDF, useful for
+ inserting pages of difference sizes, such as tables or figures,
+ into a {\LaTeX} document which requires that all page be of a
+ fixed size.
+
+ \item \cs{importDataObject}: Attaches a file to the PDF. This
+ function is used in the two attachments options of AeB Pro.
+\end{enumerate}
+See the AeB Pro documentation for details. Here, in this demo file,
+I present the code in the preamble of this document:
+\begin{Verbatim}
+var pos=this.path.indexOf(this.documentFileName);
+var myPath=this.path.substring(0,pos);
+\begin{docassembly}
+\addWatermarkFromFile({
+ bOnTop:false,
+ cDIPath:myPath+"../extras/Manual_BG_Print_AeB.pdf"
+});
+\end{docassembly}
+\end{Verbatim}
+It is \emph{very important} to note that the arguments for this
+(pseudo-JS method) are enclosed in matching parentheses/braces
+combination, i.e., \verb!({!\dots\verb!})!. The arguments are
+key-value pairs separated by a colon, and the parameters themselves
+are separated by commas. (The argument is actually an
+object-literal). It is \emph{extremely important} to have the left
+parenthesis/brace pair, \verb!({!, immediately follow the function
+name. This is because the environment is a partial-verbatim
+environment: \verb!\! is still the escape, but left and right braces
+have been ``sanitized''. The commands, like
+\cs{addWatermarkFromFile} first gobble up the next two tokens, and
+re-inserts \verb!({! in a different location. (See the
+\textsf{aeb\_pro.dtx} for the definitions.)
+
+For another cheesy demonstration, let's import a sound, associate it
+with a button. I leave it to you to press the button at your
+discretion.
+\begin{center}
+\setbox0=\hbox{\includegraphics[height=16bp]{extras/AeB_Logo.eps}}
+\newtopic\pushButton[\S{S}\W{0}\A{\JS{%
+ var s = this.getSound("StarTrek");\r
+ s.play();
+}}]{cheesySound}{\the\wd0 }{\the\ht0 }
+\end{center}
+
+\begin{Verbatim}
+\begin{docassembly}
+try {
+ \addWatermarkFromFile({
+ bOnTop:false,
+ cDIPath:myPath+"../extras/Manual_BG_DesignV_AeB.pdf"
+ });
+} catch(e) { console.println(e.toString()) };
+try {
+ \importSound({cName: "StarTrek", cDIPath: "../extras/trek.wav" });
+} catch(e) { console.println(e.toString()) };
+\end{docassembly}
+\end{Verbatim}
+Above is the full verbatim listing of the \texttt{docassembly}
+environment that will execute for the screen. You'll note the
+\cs{importSound} command, which imports the sound file
+\texttt{trek.wav}. I've also enclosed the individual commands in a
+\texttt{try/catch} construct. Doing so is very useful for debugging
+the script.
+
+One last little demonstration of the doc assembly methods. In the
+preamble, I've imported a few AeB logos (forgive me) and placed them
+as appearance faces for the button above. Below is a listing of the
+code, with some comments added.
+
+\begin{Verbatim}[fontsize=\small]
+\begin{docassembly}
+...
+...
+// Import the sounds into the document
+\importIcon({cName: "logo", cDIPath: "../extras/AeB_Logo.pdf"});
+\importIcon({cName: "logopush", cDIPath: "../extras/AeB_Logo_bw15.pdf"});
+\importIcon({cName: "logorollover", cDIPath: "../extras/AeB_Logo_bw50.pdf"});
+var f = this.getField("cheesySound"); // get the field object of the button
+f.buttonPosition = position.iconOnly; // set it to receive icon appearances
+var oIcon = this.getIcon("logo"); // get the "logo" icon
+f.buttonSetIcon(oIcon,0); // assign it as the default appearance
+oIcon = this.getIcon("logopush"); // get the "logopush" icon
+f.buttonSetIcon(oIcon,1); // assign it as the down appearance
+oIcon = this.getIcon("logorollover"); // get the "logorollover" icon
+f.buttonSetIcon(oIcon,2); // assign it as the rollover appearance
+\end{docassembly}
+\end{Verbatim}
+The result is the button you see above.
+
+\newtopic As a final example of \texttt{docassembly} usage, rather
+than using the attachments options of AeB Pro, you can also attach
+your own files using the \texttt{docassembly} environment.
+\begin{Verbatim}[fontsize=\small]
+\begin{docassembly}
+...
+...
+try {
+ \importDataObject({cName: "AeB Pro Example #2",cDIPath: "aebpro_ex2.pdf"});
+} catch(e){}
+\end{docassembly}
+\end{Verbatim}
+The attachments options automatically assign names. These names appear in the Description column of the attachments
+tab of Acrobat/Reader. For file attached using the \texttt{attachsource}, the base name plus extension is used, for
+the files specified by the \texttt{attachments} key, the names are given sequentially, \texttt{"AeB Attachment 1"},
+\texttt{"AeB Attachment 2"} and so on. When you roll your own, the description can be more aptly chosen.
+
+\newtopic I have found many uses for the \texttt{execJS}
+environment, or the simplified \texttt{docassembly} environment.
+You are only limited by your imagination, and knowledge of
+JavaScript for Acrobat.
+
+
+\newpage
+\markright{References}
+
+\begin{thebibliography}{[1]}\label{references}
+\addcontentsline{toc}{section}{\protect\numberline{}References}
+
+\bibitem{TUG:execJS} ``\texttt{execJS}: A new technique for introducing discardable
+JavaScript into a PDF from a \LaTeX{} source,'' TUG\textsc{boat}, The
+Communications of the \TeX{} User Group, Vol.~22, No.~4, pp.\
+265-268 (2001).
+
+\end{thebibliography}
+
+
+
+\end{document}
+
+\importDataObject({cName: "\myEmbeddedFile",cDIPath: "aebpro_ex2.pdf"});