summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/docassembly
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-06-20 03:01:22 +0000
committerNorbert Preining <norbert@preining.info>2021-06-20 03:01:22 +0000
commit0b024adf546cd484554e4de5bd1a9919a4fdd03d (patch)
treef688c8afa79d522868966c9c91e09088f28b5248 /macros/latex/contrib/docassembly
parentdaa6873fe1d06863ffc2980970295b39071f02ba (diff)
CTAN sync 202106200301
Diffstat (limited to 'macros/latex/contrib/docassembly')
-rw-r--r--macros/latex/contrib/docassembly/README.md15
-rw-r--r--macros/latex/contrib/docassembly/aeb_pro.js177
-rw-r--r--macros/latex/contrib/docassembly/docassembly.dtx32
-rw-r--r--macros/latex/contrib/docassembly/docs/docassembly.pdfbin335594 -> 341939 bytes
-rw-r--r--macros/latex/contrib/docassembly/docs/install_jsfiles.pdfbin189663 -> 0 bytes
-rw-r--r--macros/latex/contrib/docassembly/docs/install_jsfiles.tex325
6 files changed, 39 insertions, 510 deletions
diff --git a/macros/latex/contrib/docassembly/README.md b/macros/latex/contrib/docassembly/README.md
index 56dd576cc8..6765966759 100644
--- a/macros/latex/contrib/docassembly/README.md
+++ b/macros/latex/contrib/docassembly/README.md
@@ -1,6 +1,15 @@
-docassembly
-Dated: 2021-06-11
-Author: D. P. Story
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% docassembly.sty package, %%
+%% Copyright (C) 2021 D. P. Story %%
+%% dpstory@acrotex.net %%
+%% %%
+%% This program can redistributed and/or modified under %%
+%% the terms of the LaTeX Project Public License %%
+%% Distributed from CTAN archives in directory %%
+%% macros/latex/base/lppl.txt; either version 1.2 of %%
+%% the License, or (at your option) any later version. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Dated: 2021-06-18
Targeted audience: LaTeX authors who love their pdflatex, lualtex, xelatex,
or dvips -> ps2pdf workflow, who also own Acrobat Pro application.
diff --git a/macros/latex/contrib/docassembly/aeb_pro.js b/macros/latex/contrib/docassembly/aeb_pro.js
deleted file mode 100644
index 5dbfe4d53a..0000000000
--- a/macros/latex/contrib/docassembly/aeb_pro.js
+++ /dev/null
@@ -1,177 +0,0 @@
-/*
- AEB Pro Document Assembly Methods
-
- Copyright (C) 2012 -- 2021 AcroTeX.Net
- D. P. Story
- http://www.acrotex.net
-
- Version 1.6.1
-
- v1.6.1 aebCreateTemplate now returns an object
- v1.6 Added aebAddWatermarkFromText, aebLaunchURL
- v1.5 Added aebCertifyInvisibleSign
-*/
-
-if ( typeof aebTrustedFunctions == "undefined") {
- aebTrustedFunctions = app.trustedFunction( function ( doc, oFunction, oArgs )
- {
- app.beginPriv();
- var retn = oFunction( oArgs, doc );
- app.endPriv();
- return retn;
- });
-}
-aebAddWatermarkFromFile = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- var Msg=function(e){return (aebAddWatermarkFromFile.msg==undefined)?("Add Watermark from File Error: " + e.toString()):aebAddWatermarkFromFile.msg;}
- app.beginPriv();
- try { doc.addWatermarkFromFile(oArgs); } catch(e) {console.println(Msg(e));}
- app.endPriv();
- aebAddWatermarkFromFile.msg=undefined;
-});
-aebAddWatermarkFromText = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return doc.addWatermarkFromText(oArgs);
- app.endPriv();
-});
-aebImportIcon = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return doc.importIcon(oArgs);
- app.endPriv();
-});
-aebInsertPages = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- var Msg=function(e){return (aebInsertPages.msg==undefined)?("Insert Pages Error: " + e.toString()):aebInsertPages.msg;}
- app.beginPriv();
- try { doc.insertPages(oArgs); } catch(e) {console.println(Msg(e));}
- app.endPriv();
- aebInsertPages.msg=undefined;
-})
-aebAppOpenDoc = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- var Msg=function(e){return (aebAppOpenDoc.msg==undefined)?("App Open Doc Error: " + e.toString()):aebAppOpenDoc.msg;}
- app.beginPriv();
- try { return app.openDoc(oArgs); } catch(e) {console.println(Msg(e));}
- app.endPriv();
- aebAppOpenDoc.msg=undefined;
- return retn;
-})
-aebImportTextData = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return doc.importTextData(oArgs);
- app.endPriv();
-});
-aebImportSound = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return doc.importSound(oArgs);
- app.endPriv();
-});
-aebSaveAs = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- app.execMenuItem("Save");
- app.endPriv();
-});
-aebDocSaveAs = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- var Msg=function(e){return (aebDocSaveAs.msg==undefined)?("Doc SaveAs Error: " + e.toString()):aebDocSaveAs.msg;}
- app.beginPriv();
- try {
- return doc.saveAs(oArgs);
- } catch(e){console.println(Msg(e));}
- app.endPriv();
- aebDocSaveAs.msg=undefined;
-
-});
-aebExtractPages = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return doc.extractPages(oArgs);
- app.endPriv();
-});
-aebMailDoc = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return doc.mailDoc(oArgs);
- app.endPriv();
-});
-aebImportDataObject = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return doc.importDataObject(oArgs);
- app.endPriv();
-});
-aebSignatureSign = app.trustPropagatorFunction( function ( oArgs, field )
-{
- app.beginPriv();
- return field.signatureSign(oArgs);
- app.endPriv();
-});
-aebSecurityHandlerLogin = app.trustPropagatorFunction( function ( oArgs, securityHandler )
-{
- app.beginPriv();
- return securityHandler.login(oArgs);
- app.endPriv();
-});
-aebTimestampSign = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return doc.timestampSign(oArgs);
- app.endPriv();
-});
-aebSecurityGetHandler = app.trustPropagatorFunction( function ( oArgs, security )
-{
- app.beginPriv();
- return security.getHandler(oArgs);
- app.endPriv();
-});
-aebAppGetPath = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- return app.getPath(oArgs);
- app.endPriv();
- return retn;
-});
-aebSignatureSetSeedValue = app.trustPropagatorFunction( function ( oArgs, field )
-{
- app.beginPriv();
- return field.signatureSetSeedValue( oArgs )
- app.endPriv();
-});
-aebCertifyInvisibleSign = app.trustPropagatorFunction( function ( oArgs, field )
-{
- app.beginPriv();
- return field.certifyInvisibleSign( oArgs )
- app.endPriv();
-});
-aebAddIcon=app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- doc.addIcon(oArgs);
- app.endPriv();
-});
-aebCreateTemplate = app.trustPropagatorFunction( function ( oArgs, doc )
-{
- var Msg=function(e){return (aebCreateTemplate.msg==undefined)?("Create Template Error: " + e.toString()):aebCreateTemplate.msg;}
- app.beginPriv();
- try { return doc.createTemplate(oArgs); } catch(e) {console.println(Msg(e));}
- app.endPriv();
- aebCreateTemplate.msg=undefined;
-
-})
-aebBrowseForDoc=app.trustPropagatorFunction( function ( oArgs, doc )
-{
- app.beginPriv();
- var retn = app.browseForDoc(oArgs);
- app.endPriv();
-});
-aebLaunchURL=app.trustPropagatorFunction ( function ( oArgs )
-{
- app.beginPriv();
- var retn = app.launchURL(oArgs);
- app.endPriv();
-});
diff --git a/macros/latex/contrib/docassembly/docassembly.dtx b/macros/latex/contrib/docassembly/docassembly.dtx
index 53bf22dae8..429ee327e4 100644
--- a/macros/latex/contrib/docassembly/docassembly.dtx
+++ b/macros/latex/contrib/docassembly/docassembly.dtx
@@ -14,7 +14,7 @@
%</copyright>
%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01]
%<package>\ProvidesPackage{docassembly}
-%<package> [2021/06/11 v1.0 docassembly: Post PDF creation assembly (dps)]
+%<package> [2021/06/18 v1.1 docassembly: Post PDF creation assembly (dps)]
%<*driver>
\documentclass{ltxdoc}
\usepackage{amstext}
@@ -88,14 +88,16 @@
% or even the much hated \app{dvips \texttt{->} Adobe Distiller}).
% \end{minipage}}
% \end{center}
-% This package requires \pkg{insdljs}, which loads \pkg{hyperref}. It also requires
+% This package requires \pkg{insdljs},\footnote{Part of the \pkg{acrotex} bundle} which loads \pkg{hyperref}. It also requires
% the successful installation of the file \texttt{aeb\_pro.js}, which is distributed
-% with this package, as well as with the \pkg{aeb\_pro} package. Version 1.6.1 of
+% by the \pkg{acrotex-js} package. Version 1.6.1 of
% \texttt{aeb\_pro.js} is required.\footnote{If you already have \pkg{aeb\_pro} installed on your
% system, be sure you have Version 1.6.1 of \texttt{aeb\_pro.js}, if not, use the version
-% of \texttt{aeb\_pro.js} that comes with \pkg{docassembly}.} Installation of \texttt{aeb\_pro.js}
-% is covered in \texttt{docs/install\_jsfiles.pdf}.
+% of \texttt{aeb\_pro.js} that comes with \pkg{acrotex-js}.} Installation of \texttt{aeb\_pro.js}
+% is explained in \texttt{install\_jsfiles.pdf}, found in the \texttt{docs} folder of the \pkg{acrotex-js} package.
%
+% \changes{v1.1}{2021/06/18}{The \string\texttt{aeb\_pro.js} file is now distributed by the
+% \string\pkg{acrotex-js} package}
% \changes{v1.0}{2021/06/11}{First publication version of this package}
%
% \section{Documentation}
@@ -138,6 +140,26 @@
% Require \pkg{insdljs} for this little exercise.
% \begin{macrocode}
\RequirePackage{insdljs}
+% \end{macrocode}
+% The critical JavaScript files are no longer distributed with this package,
+% but are distributed by the \pkg{acrotex-js} package. This package must be
+% installed, and the instructions in the \texttt{docs} folder followed to
+% propery install the critical JavaScript file \texttt{aeb\_pro.js}.
+% \begin{macrocode}
+\IfFileExists{acrotex-js.sty}{\let\reqpkg\relax}
+% \end{macrocode}
+% If the style file \texttt{acrotex-js.sty} is detected, we assume the document
+% author has correctly installed \texttt{aeb\_pro.js}, if not, we require
+% this package, which may be automatically installed on some {\TeX} systems.
+% \begin{macrocode}
+ {\PackageWarningNoLine{docassembly}
+ {The acrotex-js package is required.\MessageBreak
+ Before continuing, install this package,\MessageBreak
+ read the documentation, and place\MessageBreak
+ aeb_pro.js in the expected folder}
+ \def\reqpkg{\usepackage{acrotex-js}}
+ }
+\reqpkg
\execJSOn
% \end{macrocode}
%
diff --git a/macros/latex/contrib/docassembly/docs/docassembly.pdf b/macros/latex/contrib/docassembly/docs/docassembly.pdf
index a343c72fb4..f4aba50587 100644
--- a/macros/latex/contrib/docassembly/docs/docassembly.pdf
+++ b/macros/latex/contrib/docassembly/docs/docassembly.pdf
Binary files differ
diff --git a/macros/latex/contrib/docassembly/docs/install_jsfiles.pdf b/macros/latex/contrib/docassembly/docs/install_jsfiles.pdf
deleted file mode 100644
index 53d92d55d4..0000000000
--- a/macros/latex/contrib/docassembly/docs/install_jsfiles.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/latex/contrib/docassembly/docs/install_jsfiles.tex b/macros/latex/contrib/docassembly/docs/install_jsfiles.tex
deleted file mode 100644
index 6c46402905..0000000000
--- a/macros/latex/contrib/docassembly/docs/install_jsfiles.tex
+++ /dev/null
@@ -1,325 +0,0 @@
-\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
-\let\pkg\textsf
-
-\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=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.");
-}
-\retnAbsPathAs(_path);
-_path += "/"+manualfilename;
-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
-
-\begin{center}
- \fcolorbox{blue}{white}{\begin{minipage}{.75\linewidth}
- \textbf{\textcolor{red}{Note:}} These are the installation instructions
- for Folder JavaScript files \texttt{aeb.js} and \texttt{aeb\_pro.js}. The \pkg{docassembly} package
- uses \texttt{aeb\_pro.js}, so follow these instructions.\medskip
- \end{minipage}}
-\end{center}
-
-\section{Introduction}
-
-
-\noindent
-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}