From 08429b2ebce33f39aef9d2efa79a08bd4e1b495f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 27 Aug 2017 23:54:58 +0000 Subject: forms16be (27aug17) git-svn-id: svn://tug.org/texlive/trunk@45143 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/forms16be/README.md | 21 ++ .../doc/latex/forms16be/doc/forms16be-man.pdf | Bin 0 -> 742092 bytes .../doc/latex/forms16be/doc/forms16be-man.tex | 301 +++++++++++++++++++++ .../doc/latex/forms16be/examples/forms16b3-ap.tex | 59 ++++ .../doc/latex/forms16be/examples/forms16b3-ef.pdf | Bin 0 -> 572468 bytes .../doc/latex/forms16be/examples/forms16b3-ef.tex | 46 ++++ .../doc/latex/forms16be/examples/forms16b3-hy.tex | 78 ++++++ 7 files changed, 505 insertions(+) create mode 100644 Master/texmf-dist/doc/latex/forms16be/README.md create mode 100644 Master/texmf-dist/doc/latex/forms16be/doc/forms16be-man.pdf create mode 100644 Master/texmf-dist/doc/latex/forms16be/doc/forms16be-man.tex create mode 100644 Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ap.tex create mode 100644 Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ef.pdf create mode 100644 Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ef.tex create mode 100644 Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-hy.tex (limited to 'Master/texmf-dist/doc') diff --git a/Master/texmf-dist/doc/latex/forms16be/README.md b/Master/texmf-dist/doc/latex/forms16be/README.md new file mode 100644 index 00000000000..c1431866eec --- /dev/null +++ b/Master/texmf-dist/doc/latex/forms16be/README.md @@ -0,0 +1,21 @@ +The forms16b3 Package +Author: D. P. Story +Dated: 2017-08-11 + +The forms16be package provides support for UTF-16BE Unicode character +encoding (called a big-endian character string) for the text string +type (PDF Reference, version 1.7, beginning on page 158). Text strings are +used in "text annotations, bookmark names, article threads, document +information, and so forth" (to partially quote page 158). The particular +application is to set property values of form fields, at least those +properties that take the text strings as its value. The package contains +support for Basic Latin plus the ability to enter any unicode character using +the notation \uXXXX, where 'XXXX' are four hex digits. Package +works for dvips/Distiller, pdflatex, lualatex, and xelatex. + +Enjoy! + +Now, I must get back to my retirement. + +dps +dpstory at uakron dot edu diff --git a/Master/texmf-dist/doc/latex/forms16be/doc/forms16be-man.pdf b/Master/texmf-dist/doc/latex/forms16be/doc/forms16be-man.pdf new file mode 100644 index 00000000000..67b1af67869 Binary files /dev/null and b/Master/texmf-dist/doc/latex/forms16be/doc/forms16be-man.pdf differ diff --git a/Master/texmf-dist/doc/latex/forms16be/doc/forms16be-man.tex b/Master/texmf-dist/doc/latex/forms16be/doc/forms16be-man.tex new file mode 100644 index 00000000000..ec3e3057aab --- /dev/null +++ b/Master/texmf-dist/doc/latex/forms16be/doc/forms16be-man.tex @@ -0,0 +1,301 @@ +\documentclass{article} +\usepackage[fleqn]{amsmath} +\usepackage[ + web={centertitlepage,designv,forcolorpaper,tight*,latextoc,pro}, + eforms,aebxmp +]{aeb_pro} +\usepackage{forms16be} +%\usepackage{graphicx,array,fancyvrb} +%\usepackage{aeb_mlink} +%\usepackage{myriadpro} +%\usepackage{calibri} +\usepackage[altbullet]{lucidbry} + +\def\hardspace{{\fontfamily{cmtt}\selectfont\symbol{32}}} + +\usepackage{acroman} +\usepackage[active]{srcltx} + +\urlstyle{tt} + +\def\STRUT{\rule{0pt}{14pt}} + +\makeatletter +\newcount\hesheCnt \hesheCnt=-1 +\def\heshe{\@ifstar{\heshei}{\global\advance\hesheCnt1\relax\heshei}} +\def\heshei{\ifodd\hesheCnt she\else he\fi} +\def\HeShe{\@ifstar{\HeShei}{\global\advance\hesheCnt1\relax\HeShei}} +\def\HeShei{\ifodd\hesheCnt She\else He\fi} +\def\hisher{\@ifstar{\hisheri}{\global\advance\hesheCnt1\relax\hisheri}} +\def\hisheri{\ifodd\hesheCnt her\else his\fi} +\def\himher{\@ifstar{\himheri}{\global\advance\hesheCnt1\relax\himheri}} +\def\himheri{\ifodd\hesheCnt her\else him\fi} +\makeatother + +\DeclareDocInfo +{ + university={\AcroTeX.Net}, + title={The \textsf{forms16be} Package}, + author={D. P. Story}, + email={dpstory@acrotex.net}, + subject=Documentation for the forms16be package, + talksite={\url{www.acrotex.net}}, + version={1.0, 2017/08/11}, + Keywords={LaTeX, form fields, UTF-16BE, AcroTeX}, + copyrightStatus=True, + copyrightNotice={Copyright (C) \the\year, D. P. Story}, + copyrightInfoURL={http://www.acrotex.net} +} + +\universityLayout{fontsize=Large} +\titleLayout{fontsize=LARGE} +\authorLayout{fontsize=Large} +\tocLayout{fontsize=Large,color=aeb} +\sectionLayout{indent=-62.5pt,fontsize=large,color=aeb} +\subsectionLayout{indent=-31.25pt,color=aeb} +\subsubsectionLayout{indent=0pt,color=aeb} +\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}} + +\chngDocObjectTo{\newDO}{doc} +\begin{docassembly} +var titleOfManual="The forms16be Package"; +var manualfilename="Manual_BG_Print_forms16be.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 + +\selectColors{linkColor=black} +\tableofcontents +\selectColors{linkColor=webgreen} + + +\section{Introduction} + +The \pkg{forms16be} package\footnote{The code in this package was extracted +from \pkg{aeb\_pro}. The code itself did not depend on PostScript, it is +useful, therefore, to remove it from \pkg{aeb\_pro} code base and make it +available to {\LaTeX} users with different workflows (\app{pdflatex}, +\app{lualatex}, and \app{xelatex}).} provides support for UTF-16BE Unicode +character encoding (called a big-endian character string) for the \emph{text +string type} (PDF Reference, version 1.7, beginning on page 158). Text +strings are used in ``text annotations, bookmark names, article threads, +document information, and so forth'' (to partially quote page~158). The +particular application is to set property values of form fields, at least +those properties that take the text strings as its value. The package +contains support for Basic Latin plus the ability to enter any unicode +character using the notation \cs{uXXXX}, where `\texttt{XXXX}' are four hex +digits. + +The code was originally designed to be used with the \pkg{eforms} package, +but can be used with the form fields generated by \pkg{hyperref}, but +requires some custom modification of the form field commands of +\pkg{hyperref}. + +\section{Using the package} + +We use the example from \texttt{forms16be-ef.tex} to discuss how to use this package. + +First define the unicode string to be used. +\bVerb\takeMeasure{\string\defUniStr\darg{\ameta{name}}\darg{\ameta{string}}}% +\setlength\aebscratch{\bxSize}% +\begin{dCmd}[commandchars=!()]{\bxSize} +\defUniStr{!ameta(name)}{!ameta(string)} +\end{dCmd} +\eVerb Define a unicode string with \cs{defUniStr}. The \ameta{name} is the +name of the unicode string you are defining, it is used later to refer to +this string. The \ameta{string} argument is a combination of Basic Latin +characters and unicode characters (more specifically, expressions of the form +\cs{uXXXX}, where `\texttt{XXXX}' are hex digits). In the example below, we +declare, +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] +\defUniStr{VDV}{\u03B1 cos(\u03B8)} +\defUniStr{TU}{Don \u\EURO Story "\u03B1 cos(\u03B8)"} +\end{Verbatim} +The definition file \texttt{uni4basic-latin.def} defines the encoding for the +Basic Latin character set plus a few more definitions, including \cs{EURO}. +See that file for more details. + +\defUniStr{VDV}{\u03B1 cos(\u03B8)}% +\defUniStr{TU}{Don \u\EURO Story "\u03B1 cos(\u03B8)"} + +After declaring and naming your unicode strings, use \cs{unicodeStr} to set the values +of selected field properties. +\bVerb\takeMeasure{\string\unicodeStr\darg{\ameta{name}}}% +\setlength\aebscratch{\bxSize}% +\begin{dCmd}[commandchars=!()]{\bxSize} +\unicodeStr{!ameta(name)} +\end{dCmd} +\eVerb \cs{unicodeStr\darg{\ameta{name}}} expands to the \ameta{string} +argument associated with \ameta{name}, as declared by the \cs{defUniStr} +command above. For example, \cs{unicodeStr(VDV)}, declared above, expands to +\begin{quote}\ttfamily +\unicodeStr(VDV) +\end{quote} +Notice the first four hex digits, `\texttt{FEFF}', these are `marker digits'. +As the PDF Specification describes, the markers are used to signal the +beginning of a big-endian hex string. + + +For \pkg{eforms}, incorporating these ideas into field creation is easy: +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] +\textField[\TU{\unicodeStr(TU)} + \DV{\unicodeStr(VDV)}\V{\unicodeStr(VDV)}]{tst16be}{1.5in}{11bp} +\end{Verbatim} +The result is \textField[\textSize{8}\TU{\unicodeStr(TU)} + \DV{\unicodeStr(VDV)}\V{\unicodeStr(VDV)}]{tst16be}{1.5in}{11bp}\!\cgBdry. Pass your mouse over + the field to see the tool tip as well. + +\section{List of field properties that take a text string} + +The property entries in a form field that support the text string type are +\psf{DV}, \psf{V}, \psf{TU}, \psf{CA}, \psf{RC}, and \psf{AC}. The +\pkg{eforms} key counterparts are \cs{DV}, \cs{V}, \cs{TU}, \cs{CA}, \cs{RC}, +and \cs{AC}. When the argument of any of these begins with \cs{unicodeStr}, +\pkg{eforms} detects this and passes its argument to the unicode keys +\cs{uDV}, \cs{uV}, \cs{uTU}, \cs{uCA}, \cs{uRC}, and \cs{uAC}. Normally, the +value of \psf{DV}, for example, is \texttt{DV\,(\ameta{text})}, its value is +enclosed in parentheses; when the value consists of hex digits, angle +brackets are required, like so \texttt{DV\,<\ameta{string}>}. + +If you enter raw big-endian hex digits, use the special \cs{u\ameta{cmd}} version of the keys, for example, +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] +\pushButton[\CA{\unicodeStr(263A263C)}]{btn}{.5in}{11bp} +\pushButton[\uCA{FEFF263A263C}]{btn}{.5in}{11bp} +\end{Verbatim} +expands to \pushButton[\CA{\unicodeStr(263A263C)}]{btn}{.5in}{11bp} or +\pushButton[\uCA{FEFF263A263C}]{btn}{.5in}{11bp}\!\cgBdry. The first version +uses \cs{unicodeStr} with raw hex digits, because \cs{unicodeStr} is used, +the unicode is detected and \cs{uCA} is used (with angle brackets). In the +second example, \cs{unicodeStr} is not used, so \cs{uCA} must be explicitly +used; also, the unicode marker \texttt{FEFF} must explicitly appear as well. +(\cs{unicodeStr} automatically inserts the marker.) The results of the markup +forms is the same. + +\section{Fonts} + +When using unicode to reference glyphs, such as the dings presented above, it +is important that the fonts the PDF viewer uses contains the glyphs. If the +glyph does not exist in the font, the viewer might be successful at +substituting the font. The viewer is not always successful. For example, +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] +\defUniStr{subS}{x\u209B} +\textField[\V{\unicodeStr(subS)} + \DV{\unicodeStr(subS)}]{tstsubS}{.5in}{11bp} +\end{Verbatim} +The result is +\defUniStr{subS}{x\u209B}\textField[\V{\unicodeStr(subS)}\DV{\unicodeStr(subS)}]{tstsubS}{.5in}{11bp}\!\cgBdry, +the default value of this field should be $x_S$, is it so? The default font +is \texttt{Helv}. Now, if we change to the \texttt{TiRo} font, we obtain +\textField[\textFont{TiRo}\V{\unicodeStr(subS)}\DV{\unicodeStr(subS)}]{tstsubS}{.5in}{11bp}\!\cgBdry. +A better result! The (newer) \cs{u209B} glyph is not supported for all fonts. +Generally, you'll have to find a font that works and is available to the end +user as well. + +\section{A combobox example} + +For combo boxes and list boxes, things are slightly more +complicated. In the example below, we define a combo box. First, +define the appearance values of the combo box (the string that is +seen listed in the combo box). +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] +\defUniStr{myEuro}{\u20AC (Euro)} +\defUniStr{myYen}{\u00A5 (Yen)} +\defUniStr{mySheqel}{\u20AA (Sheqel)} +\defUniStr{myPound}{\u00A3 (Pound)} +\defUniStr{myFranc}{\u20A3 (Franc)} +\end{Verbatim} + +\defUniStr{myEuro}{\u20AC (Euro)} +\defUniStr{myYen}{\u00A5 (Yen)} +\defUniStr{mySheqel}{\u20AA (Sheqel)} +\defUniStr{myPound}{\u00A3 (Pound)} +\defUniStr{myFranc}{\u20A3 (Franc)} + +Then we can define our combo box. According to the PDF file format, +unicode strings should be enclosed in angle brackets +\verb!!. In initializing the combo box below, the +\cs{unicodeStr} command is used, but this time it is enclosed in +angle brackets. (That is all the ``u'' versions of the keys do above +is to automatically insert the angle brackets for you. Here we have +to do it ourselves. (I suppose one could have a helper command, but +you can handle it.) +\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] +\comboBox[\Ff\FfEdit\DV{Euro}\V{Euro}\textFont{Arial} +\BG{0.98 0.92 0.73}\BC{0 .6 0}]{myCombo}{1in}{11bp} +{*{[(Euro)<\unicodeStr(myEuro)>]% + [(Yen)<\unicodeStr(myYen)>]% + [(Sheqel)<\unicodeStr(mySheqel)>]% + [(Pound)<\unicodeStr(myPound)>]% + [(Franc)<\unicodeStr(myFranc)>]} +} +\end{Verbatim} +where the \texttt{*} in the position shown above is a token that signals the +passing of a raw form of the value options of a combo or list box; it is +defined in \pkg{eforms}. + +\newtopic\noindent +The result is +\comboBox[\Ff\FfEdit\DV{Euro}\V{Euro}\textFont{Arial} +\BG{0.98 0.92 0.73}\BC{0 .6 0}]{myCombo}{1in}{11bp} +{*{[(Euro)<\unicodeStr(myEuro)>]% + [(Yen)<\unicodeStr(myYen)>]% + [(Sheqel)<\unicodeStr(mySheqel)>]% + [(Pound)<\unicodeStr(myPound)>]% + [(Franc)<\unicodeStr(myFranc)>]} +}\!\cgBdry. Very swave! + + +\section{Demonstration files} + +There are three sample files: +\begin{itemize} +\item \texttt{forms16b3-ef.tex} uses the \pkg{eforms} package to create + form fields and demonstrate how to initialize form fields using + unicode. +\item \texttt{forms16b3-hy.tex} uses form fields created by \pkg{hyperref}. + \pkg{hyperref} does not support initializing the value of a field, for + example, with big-endian, so a redefinition is needed. +\item \texttt{forms16b3-ap.tex} demonstrates the \pkg{forms16be} with + \pkg{aeb\_pro} (\app{dvips}/\app{Distiller} workflow required). For consistency with previously + documented behavior of \pkg{aeb\_pro}, the \opt{linktoattachments} option is used to import \pkg{forms16be}. + It is not necessary, however, to use \opt{linktoattachments}. +\end{itemize} + +\section{My retirement} + +Now, I simply must get back to it. \dps + +\end{document} diff --git a/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ap.tex b/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ap.tex new file mode 100644 index 00000000000..b036669ffcf --- /dev/null +++ b/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ap.tex @@ -0,0 +1,59 @@ +\documentclass{article} +\usepackage{amsmath} + +\usepackage[ + useacrobat, + web={designv,forcolorpaper,tight*}, + eforms, +% The next two option require dvips/Distiller workflow +% linktoattachments, +% attachsource=tex +]{aeb_pro} +\usepackage{forms16be} + +\def\cs#1{\texttt{\char`\\#1}} +\let\pkg\textsf +\let\opt\texttt +\let\app\textsf + +\parindent0pt \parskip6pt + +\begin{document} + +This file uses \pkg{aeb\_pro}, which assumes the document author uses \app{Acrobat}. When the \opt{linktooption} +is used, \pkg{forms16be} is automatically included, but \app{dvips/Distiller} must be used as the PDF creator. However, +if you don't want to attach or link to files, then simply say \verb~\usepackage{forms16be}~, as is done in this +file, but specify the \opt{useacrobat} for \pkg{aeb\_pro}. The latter is how this source file is configured. As a +user of \app{pdflatex}, \app{lualatex}, or \app{xelatex}, you can build this source file if you have \app{Acrobat} as your default +PDF viewer. + +Initialize a text field using unicode character strings, + +\defUniStr{VDV}{\u03B1 cos(\u03B8)} +\defUniStr{TU}{Don \u\EURO Story "\u03B1 cos(\u03B8)"} + +\textField[\TU{\unicodeStr(TU)}\DV{\unicodeStr(VDV)}\V{\unicodeStr(VDV)}]{tst}{1.5in}{11bp}\olBdry +\pushButton[\CA{\unicodeStr(VDV)}\AAmouseup{app.alert("Initialized to \\"\\u03B1 cos(\\u03B8)\\"");}]{btn}{1in}{11bp}\cgBdry[1em] +\pushButton[\CA{Reset}\AAmouseup{this.resetForm();}]{reset}{}{11bp} + +Note the JavaScript alert message, we use the same markup as for \cs{defUniStr}, but use \cs{\cs{uXXXX}} rather than \cs{uXXXX}. See the source file. + +Initialize a combo box using unicode character strings. + +\defUniStr{myEuro}{\u20AC (Euro)} +\defUniStr{myYen}{\u00A5 (Yen)} +\defUniStr{mySheqel}{\u20AA (Sheqel)} +\defUniStr{myPound}{\u00A3 (Pound)} +\defUniStr{myFranc}{\u20A3 (Franc)} + +\comboBox[\Ff\FfEdit\DV{Euro}\V{Euro}\textFont{Arial} +\BG{0.98 0.92 0.73}\BC{0 .6 0}]{myCombo}{1in}{11bp} +{*{[(Euro)<\unicodeStr(myEuro)>]% + [(Yen)<\unicodeStr(myYen)>]% + [(Sheqel)<\unicodeStr(mySheqel)>]% + [(Pound)<\unicodeStr(myPound)>]% + [(Franc)<\unicodeStr(myFranc)>]} +} + +\end{document} + diff --git a/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ef.pdf b/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ef.pdf new file mode 100644 index 00000000000..8c558630f37 Binary files /dev/null and b/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ef.pdf differ diff --git a/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ef.tex b/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ef.tex new file mode 100644 index 00000000000..c7bf9e92f57 --- /dev/null +++ b/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-ef.tex @@ -0,0 +1,46 @@ +\documentclass{article} +\usepackage[designv,forcolorpaper,tight*]{web} +\usepackage{eforms} +\usepackage{forms16be} + +\previewOff + + +\def\cs#1{\texttt{\char`\\#1}} +\let\pkg\textsf + +\parindent0pt \parskip6pt + +\begin{document} + +Initialize a text field using unicode character strings, + +\defUniStr{VDV}{\u03B1 cos(\u03B8)} +\defUniStr{TU}{Don \u\EURO Story "\u03B1 cos(\u03B8)"} + +\textField[\TU{\unicodeStr(TU)}\DV{\unicodeStr(VDV)}\V{\unicodeStr(VDV)}]{tst}{1.5in}{11bp}\olBdry +\pushButton[\CA{\unicodeStr(VDV)}\AAmouseup{app.alert("Initialized to \\"\\u03B1 cos(\\u03B8)\\"");}]{btn}{1in}{11bp}\cgBdry[1em] +\pushButton[\CA{Reset}\AAmouseup{this.resetForm();}]{reset}{}{11bp} + +Note the JavaScript alert message, we use the same markup as for +\cs{defUniStr}, but use \cs{\cs{uXXXX}} rather than \cs{uXXXX}. See the +source file. + +Initialize a combo box using unicode character strings. + +\defUniStr{myEuro}{\u20AC (Euro)} +\defUniStr{myYen}{\u00A5 (Yen)} +\defUniStr{mySheqel}{\u20AA (Sheqel)} +\defUniStr{myPound}{\u00A3 (Pound)} +\defUniStr{myFranc}{\u20A3 (Franc)} + +\comboBox[\Ff\FfEdit\DV{Euro}\V{Euro}\textFont{Arial} +\BG{0.98 0.92 0.73}\BC{0 .6 0}]{myCombo}{1in}{11bp} +{*{[(Euro)<\unicodeStr(myEuro)>]% + [(Yen)<\unicodeStr(myYen)>]% + [(Sheqel)<\unicodeStr(mySheqel)>]% + [(Pound)<\unicodeStr(myPound)>]% + [(Franc)<\unicodeStr(myFranc)>]} +} + +\end{document} diff --git a/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-hy.tex b/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-hy.tex new file mode 100644 index 00000000000..269042aab25 --- /dev/null +++ b/Master/texmf-dist/doc/latex/forms16be/examples/forms16b3-hy.tex @@ -0,0 +1,78 @@ +\documentclass{article} +%\usepackage[designv,forcolorpaper,tight*]{web} +\usepackage{hyperref} +\usepackage{forms16be} + +\defUniStr{VDV}{\u03B1 cos(\u03B8)} +\defUniStr{TU}{Don \u\EURO Story "\u03B1 cos(\u03B8)"} + +\makeatletter +% Define two new keys udefault and uvalue to take big-endian values +\define@key{Field}{udefault}{% + \def\Fld@udefault{#1}% +} +\define@key{Field}{uvalue}{% + \Hy@pdfstringdef\Fld@uvalue{#1}% +} +\let\Fld@udefault\ltx@empty +\let\Fld@uvalue\@empty +\def\PDFForm@Text{% + /Subtype/Widget% + \Fld@annotflags + \Fld@pageobjref + \Fld@annotnames + /FT/Tx% + \Fld@flags + /Q \Fld@align + /BS<>% + \ifcase0\ifnum\Fld@rotation=\z@ \else 1\fi + \ifx\Fld@bordercolor\relax\else 1\fi + \ifx\Fld@bcolor\relax \else 1\fi + \space + \else + /MK<<% + \ifnum\Fld@rotation=\z@ + \else + /R \Fld@rotation + \fi + \ifx\Fld@bordercolor\relax + \else + /BC[\Fld@bordercolor]% + \fi + \ifx\Fld@bcolor\relax + \else + /BG[\Fld@bcolor]% + \fi + >>% + \fi + /DA(/Helv \strip@pt\Fld@charsize\space Tf% + \ifx\Fld@color\@empty\else\space\Fld@color\fi)% +% Determine which key to used based on uvalue and udefault +\ifx\Fld@udefault\ltx@empty + /DV(\Hy@escapestring{\Fld@default})\else + /DV<\Hy@escapestring{\Fld@udefault}>\fi +\ifx\Fld@uvalue\@empty + /V(\Hy@escapestring{\Fld@value})\else + /V<\Hy@escapestring{\Fld@uvalue}>\fi + \Fld@additionalactions + \ifnum\Fld@maxlen>\z@/MaxLen \Fld@maxlen \fi +} +\makeatother + +\def\cs#1{\texttt{\char`\\#1}} +\let\pkg\textsf + +\parindent0pt \parskip6pt + +\begin{document} +\begin{Form} + +The \pkg{hyperref} package does not support initializing form fields with big-endian, but it is possible +to modify some \pkg{hyperref} core code to get the desired result. The maintainer can take this example +and generalize it to all appropriate form fields and properties, it there is a demand. + +\def\LayoutTextField#1#2{#2} +\TextField[uvalue={\unicodeStr(VDV)},udefault={\unicodeStr(VDV)}]{textfield} + +\end{Form} +\end{document} -- cgit v1.2.3