diff options
Diffstat (limited to 'macros/latex/contrib/acrotex/doc')
-rw-r--r-- | macros/latex/contrib/acrotex/doc/acrobat-in-workflow.pdf | bin | 0 -> 370603 bytes | |||
-rw-r--r-- | macros/latex/contrib/acrotex/doc/acrobat-in-workflow.tex | 232 | ||||
-rw-r--r-- | macros/latex/contrib/acrotex/doc/aeb_man.pdf | bin | 1499729 -> 2135045 bytes | |||
-rw-r--r-- | macros/latex/contrib/acrotex/doc/aeb_man.tex | 135 | ||||
-rw-r--r-- | macros/latex/contrib/acrotex/doc/eformman.pdf | bin | 987217 -> 988527 bytes | |||
-rw-r--r-- | macros/latex/contrib/acrotex/doc/eformman.tex | 47 | ||||
-rw-r--r-- | macros/latex/contrib/acrotex/doc/install_jsfiles.tex | 312 |
7 files changed, 654 insertions, 72 deletions
diff --git a/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.pdf b/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.pdf Binary files differnew file mode 100644 index 0000000000..9821c49870 --- /dev/null +++ b/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.pdf diff --git a/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.tex b/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.tex new file mode 100644 index 0000000000..bd12bdd607 --- /dev/null +++ b/macros/latex/contrib/acrotex/doc/acrobat-in-workflow.tex @@ -0,0 +1,232 @@ +\RequirePackage[!use=preview,!use=efpmca,!use=usebw,!use=finalbuild]{spdef} +\documentclass{article} +\usepackage[fleqn]{amsmath} +\usepackage[web,useacrobat]{aeb_pro} +\usepackage{eforms} +\usepackage{graphicx} +\usepackage{fancyvrb} + +\ifpdf\else +\def\x{% + \usepackage[altbullet]{lucidbry} + \usepackage[active]{srcltx} +}\expandafter\x +\fi + +\usepackage{pifont} + +%\usepackage{fancyvrb} + +\reversemarginpar + +\let\uif\textsf +\let\env\texttt +\def\cs#1{\texttt{\eqbs#1}} +\let\tops\texorpdfstring + +\makeatletter +\renewcommand{\paragraph} + {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt} + {\normalfont\normalsize\bfseries}} +\renewcommand{\subparagraph} + {\@startsection{subparagraph}{5}{\parindent}{6pt}{-3pt}% + {\normalfont\normalsize\bfseries}} +\def\parboxValign{t} +\newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{% + \raisebox{.5\baselineskip+#1}{% + \expandafter\parbox\expandafter[\parboxValign]% + {\marginparwidth}{\aebbkFmtMp#2}}}} +\def\aebbkFmtMp{\kern0pt\itshape\small + \ifusebw\color{gray}\else\color{blue}\fi + \raggedleft\hspace{0pt}} +\newcommand{\BlogArticle}{% + \makebox[0pt][l]{\hspace{-1pt}\color{blue}\Pisymbol{webd}{254}% + }\raisebox{.5pt}{\ifusebw\color{black}\else + \color{red}\fi\ding{045}}} +\def\dps{$\mbox{$\mathfrak D$\kern-.3em\mbox{$\mathfrak P$}% + \kern-.6em \hbox{$\mathcal S$}}$} + +\makeatother + +\setlength{\mathindent}{\the\parindent} + +\def\AEBP{\app{AeB Pro}} +\def\AEB{\app{AeB}} +\let\app\textsf +\let\pkg\textsf +\def\amtIndent{\parindent} +\def\meta#1{$\langle\textit{\texttt{#1}}\rangle$} +\def\SC#1{{\small#1}} +\def\PDF{\SC{PDF}} +\let\opt\texttt + +%\reversemarginpar +\def\jsSupInstr{\tops{{\AEB} and {\AEBP}\\[1ex]}{AeB and AeB Pro: }Including + \tops{\app}{}{Acrobat} in the \tops{\LaTeX}{LaTeX} workflow} +\title{\jsSupInstr} +\author{D. P. Story} +\version{1.0} + +\chngDocObjectTo{\newDO}{doc} +\begin{docassembly} +var titleOfManual="Acrobat workflow"; +var manualfilename="Manual_BG_Print_acrobat.pdf"; +var manualtemplate="Manual_BG_Brown.pdf"; // Blue, Green, Brown +var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate; +var doc; +var buildIt=false; +if ( buildIt ) { + console.println("Creating new " + manualfilename + " file."); + doc = \appopenDoc({cPath: _pathToBlank, bHidden: true}); + var _path=this.path; + var pos=_path.lastIndexOf("/"); + _path=_path.substring(0,pos)+"/"+manualfilename; + \docSaveAs\newDO ({ cPath: _path }); + doc.closeDoc(); + doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true}); + f=doc.getField("ManualTitle"); + f.value=titleOfManual; + doc.flattenPages(); + \docSaveAs\newDO({ cPath: manualfilename }); + doc.closeDoc(); +} else { + console.println("Using the current "+manualfilename+" file."); +} +var _path=this.path; +var pos=_path.lastIndexOf("/"); +_path=_path.substring(0,pos)+"/"+manualfilename; +\addWatermarkFromFile({ + bOnTop:false, + bOnPrint:false, + cDIPath:_path +}); +\executeSave(); +\end{docassembly} + +\begin{document} + +\maketitle + +\section{Introduction} + +\app{Adobe Acrobat} (\app{AA}) is a desktop application that has many +powerful features beyond the functionality of a PDF viewer. In this article +the focus is a {\LaTeX} workflow that includes \app{AA} in its workflow. + +{\AEB} and {\AEBP}, as well as other packages written under the {\AEB} +banner, use FDF files in various situations (as described in +Section~4).\footnote{An FDF file is a file type that was created by +\app{Adobe}. The \app{Acrobat} and \app{Adobe Reader} applications can use +FDF files in various ways.} These packages use \app{Acrobat} to import the +FDF files to perform designated JavaScript actions as required by the package +or document author. The importing of FDF files is only needed during the PDF +creation stage of document development; once the PDF file is created, the +document can be viewed by \app{Adobe Reader} or any other PDF viewer. + +For FDF files to be imported, the \app{Acrobat} application may need to be +configured. + +\section{Configuration of \tops{\app}{}{Acrobat}}\label{s:config} + +The current version of \app{AA} is \app{Adobe Acrobat DC}. In this and +previous versions of \app{AA} no special configuration is needed; however if +you purchased \app{AA} after December 2020, or you updated your \app{AA} +after December 2020, you need to make one change in the \uif{Preferences}. + +\begin{figure}[htb]\fboxsep0pt\relax\centering + \fbox{\includegraphics[width=.5\linewidth]{figures/SecurityPrefs}} + \caption{\tops{\protect\uif}{}{Security (Enhanced) Preferences}}\label{fig:SP} +\end{figure} + +Start \app{Acrobat} and open the menu \uif{Edit \ifpdf\texttt{>} \else> \fi +Preferences} (\uif{Ctrl+K}). In the \uif{Preferences} dialog box, select +\uif{Security (Enhanced)} category from the left panel; the top most line of +the right panel is a checkbox labeled \uif{Enable Protected Mode at startup}. +\emph{Clear this checkbox.}{\def\parboxValign{c}\FmtMP{\app{Acrobat DC} +users, action required!}}\footnote{When the box is checked, importing FDF +files, as described in the next two sections, is \emph{prohibited}. We want +FDF files imported, so we clear the checkbox.} Refer to +\hyperref[fig:SP]{Figure~\ref*{fig:SP}} for a visual. If this checkbox is not +present in your \app{Acrobat}, there is nothing to do until this checkbox +appears in a future updated version of your \uif{AA} application. + +\section{When FDF files are imported} + +It is important to be aware of when and how FDF files are imported, and to +understand the actions required of the document author in response to this +``import FDF event.'' + +For a document that uses FDF files to perform tasks, the files are imported +\emph{after} PDF creation when the newly created PDF document is \emph{first +opened} in \app{Acrobat}, and \emph{before the PDF file is moved to another +location and before any auxiliary files (the FDF files) are deleted}. Once +the FDF files are imported, it is important \emph{to save}\FmtMP{Save the +PDF} the PDF file, this incorporates the results of the actions taken by the +imported FDF files into the document, actions, such as the embedding of +document JavaScript. + +Another important point to realize is that the use of FDF files is not +restricted to the +\app{dvips\ifpdf\texttt{->}\,\else->\,\fi\app{Distiller}\,\ifpdf\texttt{->}\,\ignorespaces +\else->\,\fi\app{Acrobat}} method of creating a PDF; indeed, any PDF creator +used by the {\LaTeX} community may be used, for example, +\app{pdftex\ifpdf\texttt{->}\allowbreak\,\else->\,\fi\app{Acrobat}}. The +only prerequisite is to use {\LaTeX} markup that initiates the ``import FDF +event.'' This markup is available through packages that support it; this +includes, but not restricted to, {\AEB} and {\AEBP}. + +\section{Applications of FDF files to a \tops{\LaTeX}{LaTeX} workflow} + +With regard to producing a PDF file through a {\LaTeX} workflow, there are +two important applications to importing FDF files: importing document +JavaScript and post-PDF creation actions. These two applications to FDF files +are covered in the next two subsections. + +\subsection{Document JavaScript} + +In this case, FDF files are required only for the \app{dvips\,\ignorespaces +\ifpdf\texttt{->}\,\else->\,\fi\app{Distiller}\,\ifpdf\texttt{->}\,\else->\,\ignorespaces +\fi\app{Acrobat}} workflow; the other PDF creators (\app{pdflatex}, +\app{lualatex}, and \app{xelatex}) have primitives that facilitate the +creation of document JavaScript without FDF files or \app{Acrobat}. + +For the \pkg{exerquiz} package, part of the {Acro\!\TeX} eDucation Bundle +(\AEB), creation of Document JavaScript is automatic and invisible for all +PDF creators; it is only in the +\texttt{tex\,->\,dvi\,->\,\app{dvips}\,->\,\ignorespaces +\app{Distiller}\,->\,\app{Acrobat}} workflow that FDF files are used. + +Document JavaScript, by the way, is code that is embedded in the PDF and is +available to be called throughout the document. Usually, Document JavaScript +is general code that is repeatedly used. + + +\subsection{Post PDF Creation actions} + +The {\AEBP} Bundle has many ``post PDF creation'' actions, such as auto +saving the document, importing sounds, attaching documents, inserting pages, +extracting pages, and many more. With proper {\LaTeX} markup, when the +document is compiled, FDF files are written to the hard drive, when the +document is then first opened in \app{Acrobat}, the FDF files are imported +and the actions are executed. Again, for the FDF files to be imported, they +must not have already been deleted, and \app{Acrobat} must be correctly +configured (\hyperref[s:config]{Section~\ref*{s:config}}). One very simple +example, is automatic saving of the document when \app{Acrobat} is first +opened. For example, an \pkg{aeb\_pro} document has a \env{docassembly} +environment that is placed in the preamble. Within this environment, place +any post PDF creation JavaScript actions: +\begin{Verbatim}[xleftmargin=\parindent] +\begin{docassembly} +console.show(); +console.println("Saving document"); +\executeSave(); +\end{docassembly} +\end{Verbatim} +The \verb~\executeSave~ command is defined by \pkg{aeb\_pro} and its action +is to save the document. It is the \env{docassembly} environment that writes +the FDF file that contains its contents. \app{Acrobat} inputs this command on +opening and the PDF is saved.\footnote{\cs{executeSave} must be the last post PDF +creation action; otherwise, as later actions may not be executed.} + + +\end{document} diff --git a/macros/latex/contrib/acrotex/doc/aeb_man.pdf b/macros/latex/contrib/acrotex/doc/aeb_man.pdf Binary files differindex c62c427b52..be21253d90 100644 --- a/macros/latex/contrib/acrotex/doc/aeb_man.pdf +++ b/macros/latex/contrib/acrotex/doc/aeb_man.pdf diff --git a/macros/latex/contrib/acrotex/doc/aeb_man.tex b/macros/latex/contrib/acrotex/doc/aeb_man.tex index cf08a13258..8d99d237e9 100644 --- a/macros/latex/contrib/acrotex/doc/aeb_man.tex +++ b/macros/latex/contrib/acrotex/doc/aeb_man.tex @@ -21,6 +21,7 @@ \DeclareInitView{layoutmag={navitab:UseOutlines}} \xbmksetup{colors={int=red},styles={intbf}} +\reversemarginpar \newbox\aebbox \usepackage{acroman} @@ -29,6 +30,7 @@ \setcounter{secnumdepth}{4} \setcounter{tocdepth}{4} +\let\tops\texorpdfstring \let\uif\textsf \def\AcroBlog{{Acro\!\TeX} Blog} @@ -70,7 +72,7 @@ \LTpre=0pt %\medskipamount \LTpost=-2\medskipamount %\LTpost=0pt %\medskipamount -\setlength{\mathindent}{20pt} +\setlength{\mathindent}{\the\parindent} \def\AEBBook{\textsl{{Acro\!\TeX} eDucation System Tools: {\LaTeX} for interactive PDF documents}} @@ -175,7 +177,6 @@ \def\nhurl#1{\bNH\url{#1}\eNH} \def\grayV#1{\textcolor{gray}{#1}} \def\darg#1{\{#1\}} -\def\parboxValign{t} \renewcommand*{\backrefalt}[4]{% \ifcase #1\or See page~#2.\else See pages~#2.\fi @@ -183,6 +184,7 @@ \newenvironment{aebQuote} {\list{}{\leftmargin\amtIndent}% \item\relax}{\endlist} +\def\parboxValign{t} \newcommand{\FmtMP}[2][0pt]{\mbox{}\marginpar{% \raisebox{.5\baselineskip+#1}{% \expandafter\parbox\expandafter[\parboxValign]% @@ -233,10 +235,10 @@ \university{{\AcroT} Software Development Team} \email{dpstory@acrotex.net} \versionLabel{Dated:} -\version{2021/01/20} +\version{2021/02/07} \copyrightyears{1999-\the\year} \nocopyright -\prepared{2021/01/20} +\prepared{2021/02/07} \revisionLabel{Distribution Dated:} \copyrightStatus{True} @@ -547,64 +549,57 @@ are the installation files for the individual packages, \end{questions} - -\subsection{Installing \texttt{aeb.js}} - - -The JavaScript file \texttt{aeb.js} is only needed if you use \textbf{Acrobat -Pro 8.1} or later and \textbf{Adobe Distiller} as the PDF creator. Increased -security in that version has made it necessary to install a folder JavaScript -file. The JavaScript within \texttt{aeb.js} raises the ``trust'' of certain -JavaScript methods used to import document JavaScript into the document just -after the distillation process and the newly created PDF is opened in -\textbf{Acrobat} for the first time. The installation of this file is not -needed if you use \textsf{pdftex}, or \textsf{dvipdfm} (or any of their -variations), or use a version of \textbf{Acrobat} prior to 8.1. +\subsection{Concerning the use of \tops{\app}{}{Acrobat}}\label{ss:DistAcro} + +Some \hypertarget{DistAcroWF}{document} authors use the workflow +\begin{equation}\text{\ttfamily +tex\,->\,dvi\,->\,\app{dvips}\,->\,ps\,->\,\ameta{\upshape\app{Distiller}\string|\app{ps2pdf}}\,->\allowbreak +\,\app{PDF viewer}}\label{eq:AcrobatWF} +\end{equation} +to create a PDF document. If the document contains quizzes created by the +\pkg{exerquiz} package (see \Nameref{s:exerquiz}), \uif{Document JavaScripts} +are required; as a result, at the end of the above workflow, the \app{PDF +viewer} \emph{is required to be} \app{Acrobat}\FmtMP{\app{Acrobat} +required}.\footnote{Other PDF creation workflows do not require \app{Acrobat} +to embed \uif{Document JavaScripts}} The role of \app{Acrobat} is to embed +the \uif{Document JavaScripts} in the document. The next two subsections +discuss the use of \app{Acrobat}, first to install the folder JavaScript file +\texttt{aeb.js}, and second to configure \app{Acrobat}, if needed. + +\subsubsection{Installing \texttt{aeb.js}} + +The JavaScript file \texttt{aeb.js} is only needed if you use the workflow of +\hyperref[eq:AcrobatWF]{display~\begin{NoHyper}\eqref{eq:AcrobatWF}\end{NoHyper}} +and \uif{Document JavaScripts} are needed to be embedded. + +Increased security for the \app{Acrobat} application makes it necessary to +install a folder JavaScript file. The JavaScript within \texttt{aeb.js} +raises the ``trust'' of certain JavaScript methods used to import +\uif{document JavaScript} into the document just after the PDF creation and +the newly created PDF is opened in \app{Acrobat} for the first time. The +installation of this file is not needed if you use \app{pdftex}, +\app{lualatex}, or \app{xelatex} (or any of its variants), or if you use +a version of \app{Acrobat} prior to version 8.1. The instructions for installing \texttt{aeb.js} are in the \texttt{\href{install_jsfiles.pdf}{install\_jsfiles.pdf}}, which resides in -the \texttt{doc} folder of the \texttt{acrotex} installation. If you use -\textbf{Distiller} as your PDF creator, please refer to that document. +the \texttt{doc} folder of the \texttt{acrotex} installation. if you use the workflow of +\hyperref[eq:AcrobatWF]{display~\begin{NoHyper}\eqref{eq:AcrobatWF}\end{NoHyper}}, please refer to that document. -After you've installed the JavaScript files, as directed by the +After you've installed the JavaScript file, as directed by the \texttt{\href{install_jsfiles.pdf}{install\_jsfiles.pdf}}, validate the installation of the JavaScript files by navigating to the \texttt{examples} subfolder and opening the file \texttt{test\_install.pdf} in \app{Acrobat}; follow the directions contained on that one page document. +\subsubsection{Configuring \tops{\app}{}{Acrobat}} -\begin{comment} -\paragraph*{Acrobat Pro~8.1 or later.} -Start \textbf{Acrobat Pro~8.1}\footnote{The file will cause no harm if you -install it in an earlier version of Acrobat, as early as version 7.} or -later, and open the console window \textsf{Advanced \texttt> JavaScript -\texttt> Debugger} (\texttt{Ctrl+J} for Windows or \texttt{Cmd+J} for Mac -OS). Copy and paste the following code into the window. -\begin{Verbatim}[xleftmargin=\amtIndent] -app.getPath("user","javascript"); -\end{Verbatim} -Now, with the mouse cursor on the line containing this script, press -the \texttt{Ctrl+Enter} key. This will execute this JavaScript. This -JavaScript method returns the path to where \texttt{aeb.js} should -be placed. For example, on my system, the return string is -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -/C/Documents and Settings/story/ - Application Data/Adobe/Acrobat/8.0/JavaScripts -\end{Verbatim} -Follow the path to this folder. If the \texttt{JavaScripts} folder -does not exist, create it. Finally, copy \texttt{aeb.js} -into this folder. The file is read each time Acrobat starts. +If you have \app{Acrobat DC} that was purchased or updated after December 2020, +\app{Acrobat} needs to be configured for the workflow +\hyperref[eq:AcrobatWF]{display~\begin{NoHyper}\eqref{eq:AcrobatWF}\end{NoHyper}} +to function correctly. For detailed discussion, refer to the document +\texttt{\href{acrobat-in-workflow.pdf}{acrobat-in-workflow.pdf}}. -\paragraph*{Acrobat Pro 10.1.1 for Windows only.} For this version of \textbf{Acrobat}, -things have tightened up even more. The user JavaScripts folder has moved to -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -%AppData%\Adobe\Acrobat\Privileged\10.0\JavaScripts -\end{Verbatim} -\exAeBBlogArticle{p=737}where \verb!%AppData%! is an environment variable defined by Acrobat. For details -of how to install the folder JavaScripts in the new location, see my blog -article \mlhref{http://www.acrotex.net/blog/?p=737}{Acrobat Security Changes in 10.1.1 and -Acro\!\TeX}. -\end{comment} \subsection{Language Localizations} @@ -789,6 +784,26 @@ document. At this point you can move your \textsf{PDF} to another folder, or to the web. The document does not need the \texttt{.fdf} files any more. +\redpoint \textcolor{red}{Important:} If you use \app{Acrobat +DC}\FmtMP{\app{Acrobat DC}} in your PDF creation workflow and have updated +the application after December 2020, the {\AEB} workflow is broken. To +restore the workflow, it is necessary \emph{to clear the checkbox} labeled +\uif{Enable Protected Mode at startup}\FmtMP{Protected Mode}, this checkbox +is found under the menu \uif{Edit > Preferences} +(\uif{Ctrl+K}).\footnote{When the box is checked, importing FDF files, as +described above, is prohibited. We want FDF files imported, so we clear the +checkbox.} In the \uif{Preferences} dialog box, select the \uif{Security +(Enhanced)} category from the left panel; the targeted checkbox is at the top +line on the right panel. Refer to \hyperref[fig:SP]{Figure~\ref*{fig:SP}} for +a visual. + + +\begin{figure}[htb]\fboxsep0pt\relax\centering + \fbox{\includegraphics[width=.5\linewidth]{figures/SecurityPrefs}} + \caption{\tops{\protect\uif}{}{Security (Enhanced) Preferences}}\label{fig:SP} +\end{figure} + + \begin{comment} \redpoint \textbf{For Distiller~4.0--4.05 Users.} Versions prior to~5.0 of the Acrobat product cannot import document level @@ -834,7 +849,7 @@ You can edit \textsf{eq\_dljs.pdf} and make whatever changes you please to the script, in terms of changing color. \end{comment} -There are several ways the Distiller workflow can be accomplished: +%There are several ways the Distiller workflow can be accomplished: %\begin{itemize} % \item \textbf{Through the {\LaTeX} Editor.} Some editors, WinEdt, in particular, have toolbars that can distill % a PostScript file. (The default is to use Ghostscript, you'll have to change to Distiller.) From WinEdt, you @@ -858,12 +873,13 @@ There are several ways the Distiller workflow can be accomplished: % 5. Open the .pdf file. % % This will allow readers the opportunity to see what will happen if they fail to save the file before moving it -to another location, like the web. +%to another location, like the web. % % % \end{enumerate} %\end{itemize} + \newtopic For distiller users, the \href{http://www.math.uakron.edu/~dpstory/aeb_pro.html}{\AEB\ Pro package} has many exciting features, functionality requires the document author use @@ -3688,7 +3704,7 @@ dot (.) at the end of the section number. To revert to this behavior, use the \par\vskip6pt\vskip0pt plus .25\vsize\penalty-1000 \vskip0pt plus-.25\vsize} %\addtocontents{toc}{\par\protect\vspace{\bigskipamount}\kern0pt\vspace{-\medskipamount}} -\part{The Exerquiz Package}\label{s:exerquiz} +\part{The Exerquiz Package}\chgCurrLblName{The Exerquiz Package}\label{s:exerquiz} %The \textsf{exerquiz} package contains a series of macros for %creating on-line exercises, short quizzes (with or without @@ -3751,12 +3767,13 @@ discussed in this section. \section{\protect\textsf{Exerquiz} and Acrobat JavaScript} -\textsf{Exerquiz} now uses the \textsf{insdljs} Package to insert -Document level Java\-Scripts into the \textsf{PDF} file. The quizzes -created using the \texttt{shortquiz} or \texttt{quiz} environment are -graded, marked and scored using these inserted JavaScript functions. +\pkg{Exerquiz} now uses the \pkg{insdljs} package to insert \uif{Document +level Java\-Scripts} into the {PDF} file. (Review +\hyperref[ss:DistAcro]{Section~\ref*{ss:DistAcro}} on page~\pageref*{ss:DistAcro}, as needed.) The quizzes +created using the \texttt{shortquiz} or \texttt{quiz} environment are graded, +marked and scored using these inserted JavaScript functions. -Because the package \textsf{insdljs} is already loaded, it is easy +Because the package pkg{insdljs} is already loaded, it is easy for the document author to develop JavaScripts that can be called from the standard \textsf{Exerquiz} commands. The ability to write JavaScript, therefore, right in the \LaTeX{} document gives a diff --git a/macros/latex/contrib/acrotex/doc/eformman.pdf b/macros/latex/contrib/acrotex/doc/eformman.pdf Binary files differindex 03a576d453..13407570db 100644 --- a/macros/latex/contrib/acrotex/doc/eformman.pdf +++ b/macros/latex/contrib/acrotex/doc/eformman.pdf diff --git a/macros/latex/contrib/acrotex/doc/eformman.tex b/macros/latex/contrib/acrotex/doc/eformman.tex index 881a9f4090..8e95e82fe6 100644 --- a/macros/latex/contrib/acrotex/doc/eformman.tex +++ b/macros/latex/contrib/acrotex/doc/eformman.tex @@ -11,7 +11,7 @@ %\usepackage{myriadpro} \setlength{\marginparpush}{3pt} - +\setlength{\mathindent}{\the\parindent} %\previewOn\pmpvOn \usepackage{graphicx,array,longtable} @@ -26,7 +26,7 @@ \def\negSTRUT{\rule[-8pt]{0pt}{0pt}} \def\mSTRUT{\makebox[0pt][l]{\phantom{$\frac00$}}} \let\vrbnormal\sffamily -\let\uif\sffamily +\let\uif\textsf \let\key\texttt @@ -36,6 +36,7 @@ %\def\numberline#1{\hb@xt@2.5em{#1\hfil}} %\makeatother \makeatletter +\let\gob\@gobble \renewcommand*\l@subsection{\@dottedtocline{2}{2em}{3.5em}} \renewcommand*\l@subsubsection{\@dottedtocline{4}{5.5em}{1.5em}} \renewcommand\@pnumwidth{2.55em} @@ -80,7 +81,7 @@ subject={Documentation for the eforms and insdljs packages}, talksite={\url{www.acrotex.net}}, version={2.0}, - prepared={2021/01/20}, + prepared={2021/02/07}, preparedLabel={Distribution Dated:}, keywords={LaTeX, hyperref, PDF, exercises, quizzes}, copyrightStatus=True, @@ -2688,8 +2689,8 @@ lock={action=include,fields={!ameta(field!SUB1),!ameta(field!SUB2),...}} lock={action=exclude,fields={!ameta(field!SUB1),!ameta(field!SUB2),...}} \end{Verbatim} -\newtopic Another option that is included in the \uif{Signed tab} is titled ``This script executes -when field is signed.'' +\newtopic Another option that is included in the \uif{Signed tab} is titled ``\uif{This script executes +when field is signed.}'' This is an option that, through the user interface, is mutually exclusive from locking fields. This option is implemented through the format event; @@ -2860,7 +2861,7 @@ b\hspace{9.5pt}}}}}}\texttt{\href{\urlAcroTeXBlog/?p=334}{settaborder1.pdf}} for %\section{Introduction} -The \hypertarget{\pkg{insdljs}}{insdljsPkg} package provides support to {\LaTeX} in four areas: +The \hypertarget{insdljsPkg}{\pkg{insdljs}} package provides support to {\LaTeX} in four areas: \begin{enumerate} \item for embedding document level JavaScript into the PDF file created from a {\LaTeX} source, the \texttt{insDLJS} environment. @@ -2876,12 +2877,32 @@ The \hypertarget{\pkg{insdljs}}{insdljsPkg} package provides support to {\LaTeX} \newtopic This package defines a new environment, \texttt{insDLJS}, used for inserting \app{Acrobat} JavaScript into a PDF file created from a -\LaTeX{} source. This package works correctly for users of \textsf{pdftex} -(and \app{luatex}), \textsf{dvipdfm}, \textsf{dvipdfmx}, and \texttt{xetex}. -For\marginpar{\small\raggedleft\app{Acrobat} required for -\app{dvips}} those who use either \app{dvips} or -\app{dvipsone} to produce a postscript file, which is then distilled, you are -required to have \app{Acrobat}~5.0 (or later). +\LaTeX{} source. This package works correctly for users of \app{pdflatex}, +\app{lualatex}, or \app{xelatex}. +\gob{For\FmtMP{\small\raggedleft\app{Acrobat} required for \app{dvips}} those +who use \app{dvips} to produce a Postscript file, +which is then distilled, you are required to have \app{Acrobat}~5.0 (or +later).} +For document authors that use the workflow +\begin{equation}\text{\ttfamily +tex\,->\,dvi\,->\,\app{dvips}\,->\,ps\,->\,\ameta{\upshape\app{Distiller}\string|\app{ps2pdf}}\,->\allowbreak +\,\app{PDF viewer}}\label{eq:AcrobatWF} +\end{equation} +to create a PDF document, if the document (or one of the packages it +imports) uses \uif{Document JavaScripts} created by this package, at the end +of the above workflow, the \app{PDF viewer} \emph{is required to be} +\app{Acrobat}\FmtMP{\app{Acrobat} required}.\footnote{Other PDF creation +workflows do not require \app{Acrobat} to embed \uif{Document JavaScripts}} +The role of \app{Acrobat} is to embed the \uif{Document JavaScripts} in the +document for the workflow of +\hyperref[eq:AcrobatWF]{display~\bNH\eqref{eq:AcrobatWF}\eNH}. +It is necessary to install the folder JavaScript file \texttt{aeb.js} (read +\texttt{\href{install_jsfiles.pdf}{install\_jsfiles.pdf}} for instructions) +and to possibly configure \app{Acrobat} (read +\texttt{\href{acrobat-in-workflow.pdf}{acrobat-in-workflow.pdf}} to see how +to do this). For additional discussion on this workflow, refer to the section +titled ``Concerning the use of \app{Acrobat}'' in the +\texttt{\href{aeb_man.pdf\#DistAcroWF}{AeB Manual}}. \section{Package Options} @@ -3415,7 +3436,7 @@ console.println("Enter the button area"); \begin{defineJS}{\JSAAX} console.println("Exiting the button area"); \end{defineJS} -\pushButton[\A {\JS{\JSA}} +\pushButton[\A{\JS{\JSA}} \AA{\AAMouseEnter{\JS{\JSAAE}} \AAMouseExit{\JS{\JSAAX}}} ]{myButton}{30bp}{15bp} diff --git a/macros/latex/contrib/acrotex/doc/install_jsfiles.tex b/macros/latex/contrib/acrotex/doc/install_jsfiles.tex new file mode 100644 index 0000000000..5639318335 --- /dev/null +++ b/macros/latex/contrib/acrotex/doc/install_jsfiles.tex @@ -0,0 +1,312 @@ +\documentclass{article} +\usepackage[fleqn]{amsmath} +% +% the driver line is not necessary if you +% have aebpro.cfg configured to your driver. +% +\usepackage[web]{aeb_pro} +\usepackage{eforms} +\usepackage[altbullet]{lucidbry} +\usepackage{pifont} + +\usepackage{fancyvrb} + +\makeatletter +\renewcommand{\paragraph} + {\@startsection{paragraph}{4}{0pt}{6pt}{-3pt} + {\normalfont\normalsize\bfseries}} +\renewcommand{\subparagraph} + {\@startsection{subparagraph}{5}{\parindent}{6pt}{-3pt}% + {\normalfont\normalsize\bfseries}} +\makeatother + +\mathindent\parindent + +\def\AEBP{\app{AeB Pro}} +\def\AEB{\app{AeB}} +\def\app#1{\textsf{#1}} +\def\amtIndent{\parindent} +\def\meta#1{$\langle\textit{\texttt{#1}}\rangle$} +\def\SC#1{{\small#1}} +\def\PDF{\SC{PDF}} +\let\opt\texttt + +\def\copyGetPath{\qquad\pushButton[\TU{Copy app.getPath to console} +\CA{getPath}\A{\JS{console.show();\r +console.println('\\napp.getPath("user");'); +}}]{cpyGtPth}{}{11bp}} + +\def\copyGetPathJS{\qquad\pushButton[\TU{Copy app.getPath to console} +\CA{getPath}\A{\JS{console.show();\r +console.println('\\napp.getPath("user", "javascript");'); +}}]{cpyGtPthJS}{}{11bp}} + +%\reversemarginpar +\def\jsSupInstr{How to install JavaScript support files} +\title{\jsSupInstr} +\author{D. P. Story} +\version{1.0} + +\chngDocObjectTo{\newDO}{doc} +\begin{docassembly} +var titleOfManual="How to install JavaScript files"; +var manualfilename="Manual_BG_Print_jsfiles.pdf"; +var manualtemplate="Manual_BG_Brown.pdf"; // Blue, Green, Brown +var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate; +var doc; +var buildIt=true; +if ( buildIt ) { + console.println("Creating new " + manualfilename + " file."); + doc = \appopenDoc({cPath: _pathToBlank, bHidden: true}); + var _path=this.path; + var pos=_path.lastIndexOf("/"); + _path=_path.substring(0,pos)+"/"+manualfilename; + \docSaveAs\newDO ({ cPath: _path }); + doc.closeDoc(); + doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true}); + f=doc.getField("ManualTitle"); + f.value=titleOfManual; + doc.flattenPages(); + \docSaveAs\newDO({ cPath: manualfilename }); + doc.closeDoc(); +} else { + console.println("Using the current "+manualfilename+" file."); +} +var _path=this.path; +var pos=_path.lastIndexOf("/"); +_path=_path.substring(0,pos)+"/"+manualfilename; +\addWatermarkFromFile({ + bOnTop:false, + bOnPrint:false, + cDIPath:_path +}); +\executeSave(); +\end{docassembly} + +\begin{document} + +\maketitle + +\section{Introduction} + +Because some of the \app{Acrobat} JavaScript methods have security +restrictions, they can be only executed in the console window, or as part +of a batch sequence, or from the JavaScript folder reserved by +\app{Acrobat} for that use. The developer (of {\LaTeX} packages or {\PDF} +form documents) may want to use these restricted JavaScript methods as +part of document assembly. To use the restricted methods, they must be +called from the user JavaScript folder. The scripts are contained in a +\SC{JS} file that \app{Acrobat} reads when it first starts up. + +In this article, we provide detailed steps for locating the user +JavaScript folder. For {\AEB} and {\AEBP}, the files \texttt{aeb.js} and +\texttt{aeb\_pro.js} are placed in the folder. Other JavaScript files may +be placed in the folder as well, for example, the \texttt{config.js} file +is one that is commonly used for general purposes. + +Before we get started, if you are using a version of \app{Acrobat} prior +to version~8.1, you need not read any further. The security restrictions +described below were not in effect for those versions. + +\section{Installing the JavaScript support files} + +The functionality of {\AEB} and {\AEBP} depends, to some extent, on the +proper installation of their JavaScript support files. +\begin{itemize} + \item \AEB: For authors using the $\app{dvips}+\app{Acrobat Distiller}$ + workflow, \texttt{aeb.js} is required; this file is not used by + \app{pdflatex} or \app{xelatex} users. + + \item \AEBP: For authors using the $\app{dvips}+\app{Acrobat + Distiller}$ workflow, \texttt{aeb\_pro.js} is required; for authors + that prefer \app{pdflatex}, \app{lualatex}, or \app{xelatex} as the + {\PDF} creator \emph{and who own} the \app{Acrobat} application, + the \texttt{aeb\_pro.js} is required with the \opt{useacrobat} + option of \AEBP. When using the \opt{nopro} option of \AEBP, the + JavaScript file \texttt{aeb\_pro.js} is not used. + +\end{itemize} +The placement of the JavaScript files has changed over the years and is a +function of the version number \meta{ver}. Start \app{Acrobat} and open the +console debugger window by pressing \texttt{Ctrl+J} (for \app{Windows OS}) +or \texttt{Cmd+J} (for \app{Mac OS}). Now execute the code +\texttt{app.getPath("user")} in the console window. To do this, press the +\textsf{getPath} button provided below, which copies the necessary code to +the console window. +\begin{equation} +\begin{minipage}{.8\linewidth} +\begin{Verbatim}[commandchars={!~@}] +app.getPath("user");!copyGetPath +\end{Verbatim} +\end{minipage}\label{display:getPath} +\end{equation} +Now, with the cursor on the line containing the script, press the +\texttt{Ctrl+Enter} (for \app{Windows OS}) or \texttt{Cmd+Enter} (for +\app{Mac~OS}) key. This will execute the JavaScript and return the `root' +path to the user's application data for \app{Acrobat}. + +The rest of the instructions depend on your operating system, +\app{Windows} or \app{Mac}. + +\subsection{For users of \app{Windows OS}} + +There are several cases, jump to the numbered paragraph that describes your +version (\meta{ver}) of \app{Acrobat}. + +%/C/Users/D. P. Story/AppData/Roaming/Adobe/Acrobat/11.0 +%/C/Users/D. P. Story/AppData/Roaming/Adobe/Acrobat/Privileged/11.0/JavaScripts + +\def\Stepi{\ding{182}\enspace} +\def\Stepii{\ding{183}\enspace} +\def\Stepiii{\ding{184}\enspace} + +\paragraph*{{\Stepi}For $\boldmath\text{\meta{ver}}$, $\boldmath 8.1 \le +\text{\meta{ver}} < 10.1.1$.} For the \app{Windows OS}, executing the script +in display~\eqref{display:getPath} returns a string of the +form:\footnote{This string is for \app{Windows OS} beyond \app{WinXP}.} +\begin{equation} +\begin{minipage}{.8\linewidth} +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/C/Users/!meta(username)/AppData/Roaming/Adobe/Acrobat/!meta(ver) +\end{Verbatim} +\end{minipage}\label{display:path} +\end{equation} +Navigate to this folder location. The correct location for the \SC{JS} +files is in the \texttt{JavaScripts} subfolder. If the folder does not +exist, create it. The final path for the JavaScript support files is then +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/C/Users/!meta(username)/AppData/Roaming/Adobe/ + Acrobat/!meta(ver)/JavaScripts +\end{Verbatim} +Finally, copy \texttt{aeb.js} (and \texttt{aeb\_pro.js}, if applicable) +into this folder. Close \app{Acrobat}, the next time \app{Acrobat} +is started, it will read in the \SC{JS} files. + +\paragraph*{{\Stepii}For $\boldmath\text{\meta{ver}}$, $\boldmath10.1.1 \le +\text{\meta{ver}} < 12$.} For these versions of \app{Acrobat} security has +have tightened up even more; the \texttt{JavaScripts} folder is now a +subfolder of a special \texttt{Privileged} folder. Execute +\texttt{app.getPath("user")} in the console window, as in +display~\eqref{display:getPath}. The method brings back a string similar to +the one in display~\eqref{display:path}. The correct path is obtained by +simply inserting \texttt{Privileged} into the path in +display~\eqref{display:path}, between \texttt{Acrobat} and \meta{ver}, as +displayed below. +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/C/Users/!meta(username)/AppData/Roaming/Adobe/ + Acrobat/!textbf(Privileged)/!meta(ver)/JavaScripts +\end{Verbatim} +But this is a mere description of the correct location, the path must +exist! The path must be created, if it does not already exist. + +Navigate to the folder, one folder above the path shown in +display~\eqref{display:path}, that is, navigate to, +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/C/Users/!meta(username)/AppData/Roaming/Adobe/Acrobat/ +\end{Verbatim} +If a \texttt{Privileged} folder exists, enter into it; otherwise, create +it, then enter it. +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/C/Users/!meta(username)/AppData/Roaming/Adobe/Acrobat/Privileged +\end{Verbatim} +Now create a folder named \meta{ver}, unless it already exists, and enter +it. The version is always the major release \texttt{8.0}, \texttt{9.0}, +\texttt{10.0}, or \texttt{11.0}. +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/C/Users/!meta(username)/AppData/Roaming/Adobe/ + Acrobat/Privileged/!meta(ver) +\end{Verbatim} +Finally, create the \texttt{JavaScript} folder, unless it already exists, +to obtain the final path to the user folder JavaScripts: +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/C/Users/!meta(username)/AppData/Roaming/Adobe/ + Acrobat/Privileged/!meta(ver)/JavaScripts +\end{Verbatim} +Copy \texttt{aeb.js} (and \texttt{aeb\_pro.js}, if applicable) into this +folder. Close \textsf{Acrobat}, the next time \textsf{Acrobat} is started, +it will read in the \SC{JS} files. + +\paragraph*{{\Stepiii}For $\boldmath\text{\meta{ver}}$, $\boldmath +\text{\meta{ver}} > 12 $.} Beginning with the next major version following +version~11, Adobe changed its versioning scheme. There are now two tracks, +\emph{subscription} and \emph{classic} (also called \emph{perpetual}). For +subscription, the version, as I understand it, will always be \texttt{DC} +(Document Cloud), and for the classic, for which you've purchased a +\emph{perpetual license}, the \meta{ver} is a calendar year. The first +classic version is \texttt{2015}, the next one is most likely \texttt{2017}, +since major releases occur about every two years. + +Execute the code of display~\eqref{display:getPath} by pressing the button +provided to obtain a path of the form, +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/C/Users/!meta(username)/AppData/Roaming/Adobe/Acrobat/DC +\end{Verbatim} +for the subscription license or, +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/C/Users/!meta(username)/AppData/Roaming/Adobe/Acrobat/2015 +\end{Verbatim} +for the classic (or perpetual) license. Of course, this last path is for +the first classic version. + +Now, to obtain the path to the \texttt{JavaScripts} folder, follow the +instructions for numbered paragraph \ding{183}, but with \meta{ver} equal +to either \texttt{DC} or \texttt{2015} (a calendar year). + +%/C/Users/D. P. Story/AppData/Roaming/Adobe/Acrobat/Privileged/11.0/JavaScripts + +\subsection{For users of \app{Mac OS}} + +\app{Mac OS} does not have the security restrictions that \app{Windows OS} +does, as described in paragraphs \ding{183} and \ding{184}. + +Follow the instructions of paragraph \ding{182}, by first pressing the button +provided in display~\eqref{display:getPath}, then, in the console window, +execute this script as described in the paragraph following +display~\eqref{display:getPath}. After working through \ding{182}, one +obtains any of the following paths depending on the version (\meta{ver}) you +are using:\medskip + +\noindent +For $\text{\meta{ver}} = \texttt{8.0}, \texttt{9.0}, \texttt{10.0}, +\texttt{11.0}$: +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/Users/!meta(user)/Library/Application\ Support/Adobe/ + Acrobat/!meta(ver)/JavaScripts +\end{Verbatim} +\medskip + +\noindent +For $\text{\meta{ver}} > 12$, the path is, +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/Users/!meta(user)/Library/Application\ Support/Adobe/ + Acrobat/DC/JavaScripts +\end{Verbatim} +for a subscription license, and, +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/Users/!meta(user)/Library/Application\ Support/Adobe/ + Acrobat/2015/JavaScripts +\end{Verbatim} +or more generally, +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] +/Users/!meta(user)/Library/Application\ Support/Adobe/ + Acrobat/!meta(year)/JavaScripts +\end{Verbatim} +for the perpetual license. + +In all cases, if the \texttt{JavaScripts} folder does not exist, it must +be created. Copy any \SC{JS} support files into the \texttt{JavaScripts} +folder. The script files are read the next time \app{Acrobat} is started. + +\section{Testing the placement of the JavaScript support files} + +Assuming you have successfully followed the instructions and created the +\texttt{JavaScripts} folder, test the validity of what you have done by +closing \app{Acrobat} then opening it again. Open the console window +(\texttt{Ctrl+J} or \texttt{Cmd+J}, for \app{Mac OS}) and execute this +command in the console window: +\begin{Verbatim}[xleftmargin=\amtIndent,commandchars={!~@}] +app.getPath("user","javascript");!quad!copyGetPathJS +\end{Verbatim} +If you have followed the instructions, the return string should read the +complete path to the \texttt{JavaScripts} folder. +\end{document} |