diff options
author | Norbert Preining <norbert@preining.info> | 2021-06-19 03:01:48 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2021-06-19 03:01:48 +0000 |
commit | daa6873fe1d06863ffc2980970295b39071f02ba (patch) | |
tree | 436daaf0d6464d12d7ad7af294e5aeed5851f8fb /macros/latex/contrib/acrotex-js | |
parent | 3ecc00c27119bc47ba26b518b7d26c00b69599df (diff) |
CTAN sync 202106190301
Diffstat (limited to 'macros/latex/contrib/acrotex-js')
-rw-r--r-- | macros/latex/contrib/acrotex-js/README.md | 13 | ||||
-rw-r--r-- | macros/latex/contrib/acrotex-js/acrotex-js.dtx | 83 | ||||
-rw-r--r-- | macros/latex/contrib/acrotex-js/acrotex-js.ins | 60 | ||||
-rw-r--r-- | macros/latex/contrib/acrotex-js/docs/acrotex-js.pdf | bin | 0 -> 203759 bytes | |||
-rw-r--r-- | macros/latex/contrib/acrotex-js/docs/install_jsfiles.pdf | bin | 0 -> 188602 bytes | |||
-rw-r--r-- | macros/latex/contrib/acrotex-js/docs/install_jsfiles.tex | 333 | ||||
-rw-r--r-- | macros/latex/contrib/acrotex-js/js-files/aeb.js | 24 | ||||
-rw-r--r-- | macros/latex/contrib/acrotex-js/js-files/aeb_pro.js | 177 |
8 files changed, 690 insertions, 0 deletions
diff --git a/macros/latex/contrib/acrotex-js/README.md b/macros/latex/contrib/acrotex-js/README.md new file mode 100644 index 0000000000..2a2bb095aa --- /dev/null +++ b/macros/latex/contrib/acrotex-js/README.md @@ -0,0 +1,13 @@ +The acrotex-js Package +Author: D. P. Story +Dated: 2021-06-18 + +In the distribution of this package are two critical JavaScript files (aeb.js +and aeb_pro.js) used by the packages insdljs, aeb_pro, thorshammer, and +docassembly. Previously these JS files where distributed with the individual +packages, now they are distributed by this package and must be installed according +to the instructions in the docs folder. + + +dps + diff --git a/macros/latex/contrib/acrotex-js/acrotex-js.dtx b/macros/latex/contrib/acrotex-js/acrotex-js.dtx new file mode 100644 index 0000000000..950d7cb6a5 --- /dev/null +++ b/macros/latex/contrib/acrotex-js/acrotex-js.dtx @@ -0,0 +1,83 @@ +%\iffalse +%<*copyright> +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% acrotex-js.sty package %% +%% Copyright (C) 2021 %% +%% 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 of the %% +%% License, or (at your option) any later version. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%</copyright> +%<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01] +%<package>\ProvidesPackage{acrotex-js} +%<package> [2021/06/18 v1.0 acrotex-js: A library of JavaScript files (dps)] +%<*driver> +\documentclass{ltxdoc} +\usepackage[colorlinks,hyperindex=false]{hyperref} +\hypersetup{pdfpagemode=UseNone} +%\pdfstringdefDisableCommands{\let\\\textbackslash} +%\EnableCrossrefs \CodelineIndex +\OnlyDescription % comment out for implementation details +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\InputIfFileExists{aebdocfmt.def}{\PackageInfo{web}{Inputting aebdocfmt.def}} + {\def\IndexOpt{\DescribeMacro}\def\IndexKey{\DescribeMacro}\let\setupFullwidth\relax + \PackageInfo{web}{aebdocfmt.def cannot be found}} +\begin{document} +\def\CMD#1{\textbackslash#1} +\let\pkg\textsf +\let\opt\texttt +\let\app\textsf +\addtolength{\marginparwidth}{3pt} + \GetFileInfo{acrotex-js.sty} + \title{\texorpdfstring{\protect\pkg{acrotex-js}}{acrotex-js}: Formatting for mobile devices} + \author{D. P. Story\\ + Email: \texttt{dpstory@acrotex.net}} + \date{processed \today} + \maketitle + \tableofcontents + \DocInput{acrotex-js.dtx} +\IfFileExists{\jobname.ind}{\newpage\setupFullwidth\par\PrintIndex}{\paragraph*{Index} The index goes here.\\Execute + \texttt{makeindex -s gind.ist -o acrotex-js.ind acrotex-js.idx} on the command line and recompile + \texttt{acrotex-js.dtx}.} +\IfFileExists{\jobname.gls}{\PrintChanges}{\paragraph*{Change History} The list of changes goes here.\\Execute + \texttt{makeindex -s gglo.ist -o acrotex-js.gls acrotex-js.glo} on the command line and recompile + \texttt{acrotex-js.dtx}.} +\end{document} +%</driver> +% \fi +% \MakeShortVerb{|} +% \InputIfFileExists{aebdonotindex.def}{\PackageInfo{web}{Inputting aebdonotindex.def}} +% {\PackageInfo{web}{cannot find aebdonotindex.def}} +% \section*{Commentary} +% This file is a dummy {\LaTeX} package. The output of \pkg{acrotex-js} produces no document +% that is consumed by any {\LaTeX} engine. At the time of first publication of this ``package'' +% distributes the JavaScript files \texttt{aeb.js} and \texttt{aeb\_pro.js} (found in the +% \texttt{js-files} folder of this distribution) and provides documentation of how to +% install it, refer to \texttt{docs/install\_jsfiles.pdf}. +% +% \paragraph*{Packages that require this JS files.} The following is a list of packages +% that require the proper installation of the JS files provided by this package. +% \begin{itemize} +% \item \texttt{aeb.js}: Required by the \pkg{insdljs} package,\footnote{Or, any package that uses \pkg{insdljs}.} +% but for only for owners of the \app{Acrobat} application \emph{and} who use the +% \textsf{dvips \texttt{->} Adobe Distiller} +% or \textsf{dvips \texttt{->} ps2pdf} workflow.\footnote{There is no harm in the routine installation of this +% file even if you don't use \app{Distiller} or \app{ps2pdf}.} +% \item \texttt{aeb\_pro.js}: Required by the \pkg{aeb\_pro}, \pkg{thorshammer}, and \pkg{docassembly} packages. +% \end{itemize} +% In all cases, the JS files must be correctly installed for the above packages for them to perform as designed. +% Refer to \texttt{docs/install\_jsfiles.pdf} for installation instructions. +% +% \changes{v1.0}{2021/06/18}{First publication version} +% \begin{macrocode} +%<*package> +% noop +%</package> +% \end{macrocode} +\endinput diff --git a/macros/latex/contrib/acrotex-js/acrotex-js.ins b/macros/latex/contrib/acrotex-js/acrotex-js.ins new file mode 100644 index 0000000000..2f358ca317 --- /dev/null +++ b/macros/latex/contrib/acrotex-js/acrotex-js.ins @@ -0,0 +1,60 @@ +%% +%% This file will generate fast loadable files and documentation +%% driver files from the doc files in this package when run through +%% LaTeX or TeX. +%% +%% Copyright 1999-2012 D. P. Story +%% +%% This file is part of the `AcroTeX eDucation Bundle'. +%% ------------------------------------------- +%% +%% It may be distributed under the conditions of the LaTeX Project Public +%% License, either version 1.2 of this license or (at your option) any +%% later version. The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% --------------- start of docstrip commands ------------------ +%% +\def\filedate{2018/04/26} +\def\batchfile{acrotex-js.ins} + +\input docstrip +\ifx\generate\undefined + \Msg{**********************************************} + \Msg{*} + \Msg{* This installation requires docstrip} + \Msg{* version 2.4 or later.} + \Msg{*} + \Msg{* An older version of docstrip has been input} + \Msg{*} + \Msg{**********************************************} + \errhelp{Move or rename old docstrip.tex and get a newer one.} + \errmessage{Old docstrip in input path} + \batchmode + \csname @@end\endcsname\end +\fi + +\keepsilent +\askforoverwritefalse +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\preamble +\endpreamble + +\generate +{% + \file{acrotex-js.sty}{\from{acrotex-js.dtx}{copyright,package}} +} + +\Msg{***************************************************************} +\Msg{*} +\Msg{* \space To finish the installation you have to copy the files } +\Msg{*} +\Msg{* \space *.sty, *.cfg and *.def into a directory searched by TeX} +\Msg{*} +\Msg{***************************************************************} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/macros/latex/contrib/acrotex-js/docs/acrotex-js.pdf b/macros/latex/contrib/acrotex-js/docs/acrotex-js.pdf Binary files differnew file mode 100644 index 0000000000..fd3da4b47d --- /dev/null +++ b/macros/latex/contrib/acrotex-js/docs/acrotex-js.pdf diff --git a/macros/latex/contrib/acrotex-js/docs/install_jsfiles.pdf b/macros/latex/contrib/acrotex-js/docs/install_jsfiles.pdf Binary files differnew file mode 100644 index 0000000000..f4f1b89a47 --- /dev/null +++ b/macros/latex/contrib/acrotex-js/docs/install_jsfiles.pdf diff --git a/macros/latex/contrib/acrotex-js/docs/install_jsfiles.tex b/macros/latex/contrib/acrotex-js/docs/install_jsfiles.tex new file mode 100644 index 0000000000..bae522243b --- /dev/null +++ b/macros/latex/contrib/acrotex-js/docs/install_jsfiles.tex @@ -0,0 +1,333 @@ +\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} + +\ifpdf\def\x{% + \usepackage[T1]{fontenc} + \usepackage[altbullet]{lucidabr}} + \let\copyright\textcopyright +\else\def\x{% + \usepackage[altbullet]{lucidbry}} + \usepackage[active]{srcltx} +\fi\x + + + +\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 + +\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 \emph{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 of \app{Acrobat} and for installing JavaScript files in that folder. +Various packages distributed by package author D. P. Story (notably +\pkg{acrotex}, \pkg{aeb\_pro}, \pkg{thorshammer}, and \pkg{docassembly}), use +the JavaScript files \texttt{aeb.js} and \texttt{aeb\_pro.js}, which are +placed in the user JavaScript folder. It is important to correctly install +these files for the packages listed above to function as expected. + +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} (\pkg{acrotex}) and {\AEBP} (\pkg{aeb\_pro}, as +well as other packages, 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. + \item For \pkg{thorshammer} and \pkg{docassembly}, \pkg{aeb\_pro.js} is + required to be installed. + +\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} +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 $\mathbf{\text{\meta{ver}}}$, $\mathbf{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} (if applicable) and/or \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 $\mathbf{\text{\meta{ver}}}$, $\mathbf{10.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} (if applicable) and/or \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 $\mathbf{\text{\meta{ver}}}$, $\mathbf{ +\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} diff --git a/macros/latex/contrib/acrotex-js/js-files/aeb.js b/macros/latex/contrib/acrotex-js/js-files/aeb.js new file mode 100644 index 0000000000..09310d2e40 --- /dev/null +++ b/macros/latex/contrib/acrotex-js/js-files/aeb.js @@ -0,0 +1,24 @@ +/* + AEB Import FDF Methods + + Copyright (C) 2006--2016 AcroTeX.Net + D. P. Story + http://www.acrotex.net + + Version 1.0 +*/ +if ( typeof aebTrustedFunctions == "undefined") { + aebTrustedFunctions = app.trustedFunction( function ( doc, oFunction, oArgs ) + { + app.beginPriv(); + var retn = oFunction( oArgs, doc ) + app.endPriv(); + return retn; + }); +} +aebImportAnFDF = app.trustPropagatorFunction( function ( oArgs, doc ) +{ + app.beginPriv(); + doc.importAnFDF(oArgs); + app.endPriv(); +}); diff --git a/macros/latex/contrib/acrotex-js/js-files/aeb_pro.js b/macros/latex/contrib/acrotex-js/js-files/aeb_pro.js new file mode 100644 index 0000000000..5dbfe4d53a --- /dev/null +++ b/macros/latex/contrib/acrotex-js/js-files/aeb_pro.js @@ -0,0 +1,177 @@ +/* + 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(); +}); |