UnForm (r) Version 8.0 Copyright 1997-2009 by Allen Miglore. All rights reserved. UnForm is a registered trademark of Synergetic Data Systems Inc. UnForm is provided under a license, which must be accepted during installation. The text of this license is found in license.txt. Published under license by: Synergetic Data Systems Inc. 3976 Durock Road, Suite 102 Shingle Springs, CA 95682 Phone: (530)-672-9970, Fax: (530)-672-9975 Email: sdsi@synergetic-data.com Web: http://synergetic-data.com RELEASE HISTORY Version 8.0.01 released January 11, 2010 Version 8.0.02 released January 29, 2010 Version 8.0.03 released Febrary 16, 2010 Version 8.0.04 released Febrary 26, 2010 Version 8.0.05 released March 23, 2010 Version 8.0.06 released April 9, 2010 Version 8.0.07 released May 13, 2010 Version 8.0.08 released June 22, 2010 Version 8.0.09 released July 9, 2010 Version 8.0.10 released July 21, 2010 Version 8.0.11 released August 17, 2010 Version 8.0.12 released September 8, 2010 ** 8.0.12 provides significant changes to the browser ** interface. Customized interfaces should be tested. ** See details below for which files were modified. ** Users may need to press Reload once in their browsers ** when in the browser interface in order to update cached ** copies of some files. Version 8.0.13 released October 7, 2010 Version 8.0.14 released October 26, 2010 Version 8.0.15 released November 12, 2010 Version 8.0.16 released January 21, 2011 Version 8.0.17 released January 31, 2011 Version 8.0.18 released Febrary 11, 2011 Version 8.0.19 released March 18, 2011 Version 8.0.20 released May 5, 2011 Version 8.0.21 released July 25, 2011 Version 8.0.22 released October 3, 2011 Version 8.0.23 released January 4, 2012 Version 8.0.24 released February 23, 2012 Version 8.0.25 released June 25, 2012 Version 8.0.26 released October 1, 2012 Version 8.0.27 released June 4, 2013 Version 8.0.28 released August 15, 2013 Version 8.0.29 released October 3, 2013 Version 8.0.30 released January 14, 2014 NOTES: Complete documentation is provided in the unform80.pdf file, included with every download. Installation instructions are provided both in that file and on the UnForm 8.0 download page. If you are upgrading from a previous release, see the 8.0 Enhancements chapter in the manual, particularly the Caveats section. The AIX 4.3 port uses an older version of the runtime engine, and does not support MySQL access. CHANGE HISTORY: 8.0.02 1/13/10 - The license.sh program on Unix was obtaining a run-time license for an older release of the engine. The resulting key would work, but not all features available in the engine would be enabled. 1/19/10 - The Image Manager would get a run-time crop error if a zone (typically a detection zone) was outside an image's dimensions. This would typically result from image rotation jobs. 1/21/10 - Fixed a Design Tool crash when a watch variable exceeded 32K bytes. 1/25/10 - Fixed a problem where jobexec() would force a -r argument to match the current rule set even if no -r option was specified in the main job's command line. This behavior differed from previous releases, where the -r was only added if the main job also had a -r. 1/29/10 - Corrected a problem in the Unix uf80c client, where client-side file output would only produce an empty filename-1.xxx file. 8.0.03 2/9/10 - Added new coding to handle PostScript input for application-formatted reports that can be enhanced in many ways, plus offer full document management capabilities by providing access to the text elements of each page. See the manual for details. 2/9/10 - Fixed an error 42 in ufinprs.pv when processing a report with null pages along with the -printblanks command line option. 2/9/10 - Added the HP/UX Itanium port and an AIX 4.3 port. The AIX 4.3 port does not offer MySQL functionality. 8.0.04 2/19/10 - Modified handling of rpq input jobs to allow correct handling of any number of jobs up to the maximum allowed by the user's license. 2/23/10 - Corrected a problem with the deliver command related to application-formatted input, where the last page would be delivered to all delivery addresses in a batch run. 2/24/10 - Updated MODI word sorting to provide more consistent word order in OCR zones that contain words with slightly different row positions. The new algorithm rounds rows to the nearest 1/12 inch to normalize vertical positions. This might affect the word order in some OCR zones. The goal was to correct incorrect word ordering cause by scan anomolies. 2/24/10 - Corrected a problem in PDF output with anchored text and barcode commands that included an erasecols option. The erase would not occur. 2/25/10 - Adjusted detect handling for text input streams to allow detection of row data after column 255. 2/25/10 - Corrected a bug where a font with a case-conversion option would affect later fonts with not case conversion option. 2/25/10 - Added a new 'column n' option to the font command, for the purpose of preventing touching regions with otherwise identical font attributes being combined into a single region. Previously, rule sets could use alternating "black" or "shade 100" options to identify columns as having unique attributes, but this option is more intuitive. 8.0.05 3/9/10 - Added handling of non-printable control characters in text commands with TrueType fonts when using characters sets without those control characters mapped. 3/19/10 - Improved the word stitching algorthim in the Image Manager to better identify MODI "words" that belong to the same word, based upon a 1/2 space or less calculation. 3/19/10 - Optimized detection pass logic in the Image Manager to completely ignore jobs that are disabled or are not of a selected type. 3/19/10 - Corrected the PDF version of the images command when a multipage .pdf file is used, to render all pages rather than just the first. 3/23/10 - Corrected a problem in Search bulk action transfer, where the source image property records would not be removed. If a later update replaced the document record, the image property records would reappear, even though the images themselves were not present. 8.0.06 3/24/10 - Modified log entries for clarity. 3/24/10 - Corrected an Image Manager error when printing the image. 3/25/10 - Corrected a problem in the Unix perl client when submitting jobs to a remote server with a -i option rather than piped input. 3/31/10 - Corrected a text parsing problem with \, where the first digit was dropped from the literal text. 4/8/10 - Added a 'notrim' option to the pcl/pdf/ps barcode command, to support the use of a trailing space in barcode data. 4/9/10 - Modified the design tool Find/Replace function to not reset the current search position if the replace value changes. 8.0.07 4/21/10 - Adjusted word stitching in the Image Manager MODI interface, to help prevent zone words from losing spaces. 4/25/10 - Corrected a problem with custom form definitions in the Image Manager, which would fail unless a default response array was provided. 4/25/10 - Added a job type selection capability to the 'detect and run' option of the scan and import windows. 4/25/10 - Added a -jobtype jobname option to the command line argument support. 4/26/10 - Modified Image Manager import to remember the file type (image files, all files) option between imports. 4/26/10 - Corrected an error 29 message when a prejob code block changed output$ to a //server/sharename device. \\server\sharename worked. 5/4/10 - Corrected an Image Manager 'print image' crash when running under Windows Vista. 5/4/10 - Modified Image Manager zone behavior so zones whose margins exceed the image margin are still scanned for ocr or barcode data. This helps in issues where scans may be truncated of white space, so larger zones won't be ignored. 5/4/10 - Corrected a problem with Image Manager auto-fill, which could update the job name if the property grid focus cell was the job name cell. Also disabled auto-fill of the property grid if the grid is locked. 5/5/10 - Corrected an address paste problem in the web document interface if the fax panel was not enabled in the uf80d.ini [archive] section. 5/5/10 - Corrected an Image Manager runtime error 9 related to using a date/time field type in a custom form definition. 5/11/10 - Corrected the distributed version of ufparam.txt to contain correct Zebra barcode signatures. If you have a ufparam.txc file copied from a previous version 8.0.xx release, you should copy the [zebra-bc] section from ufparam.txt to ufparam.txc. 5/11/10 - Modified browser interface search form behavior to force doc types with hyphens to not be treated as doc type ranges, and also corrected handling of multiple doc type selections to use proper 'or' logic. 8.0.08 5/13/10 - Corrected drawing of zebra box and cbox commands, which were being treated as black-filled objects. 5/14/10 - Corrected a Windows 7-related timing problem that could result in a runtime error 5 on startup of the server manager. 5/18/10 - Corrected a difference in cpi calculation in AFO when a rule set is specified with -r vs. when it is detected. 5/19/10 - Added support for color images when combining matching images to multi-page tiff in the Image Manager. 5/20/10 - Corrected a problem with the images command producing color pages from a pdf file. This problem was also visible in the browser interface Marked Records screen, when generating a color pdf document. 5/27/10 - Modified the textwidth function to properly recognize TrueType fonts for metrics. Note the need to use a 'touc()' function to convert the text being calculated to unicode. 5/27/10 - Corrected a rule set parsing problem when a text command contained an initial column expression (i.e. text {expression},row,"text") that had quote characters in it. 5/28/10 - Corrected a postscript error related to font commands with a shade 0 or white option. 6/3/10 - Corrected a problem with the circle command radius calculation in PDF output, noticable at small radius values around 0.5. 6/3/10 - Corrected a circle shading problem in PDF output, where a shade of 100 and a scolor option would always cause black fill. 6/3/10 - Corrected a circle shading problem with PCL, where the shading was not occurring. 6/15/10 - Modified internal bmp to pcl handling to honor -color settings, to allow mixing of pre-converted b&w images in addition to those converted dynamically, such as support server formatted barcode images. 6/16/10 - Design tool correction to honor the Cancel button when printing the sample text file from the menu or toolbar. 6/18/10 - Corrected a problem with hline looking for two characters, and finding occurances of exactly two characters, and printing a vertical line. 6/18/10 - Corrected a problem if the last box or cbox command in a rule set contained grid information with shading, an hline or vline command would trigger additional shading. 6/18/10 - New function added: textheight(text$,fontname$|fontnum,size ,attr,cols[,spacing]) to calculate the word-wrapped text height in rows. 6/20/10 - Corrected a problem with hpgl text rotation. 6/20/10 - Corrected a problem with hpgl line spacing. 6/22/10 - Incorporated the latest Windows version of the runtime pvx engine, to address socket handling problems related to raw ports on Windows. 6/22/10 - Added empty row truncation to bmp to pcl conversions to prevent pcl page ejects when a barcode is placed too close to the bottom margin. 6/22/10 - Corrected a PostScript barcode resolution problem when an option requires the support server and job dpi is greater than 300. 8.0.09 7/7/10 - Corrected handling of TrueType fonts and unicode text in fit and wrap options. 7/7/10 - Updated uf80c.pl client to use 'printf' rather than 'echo -n' when attempting to obtain a md5 hash from openssl, when the -arclogin option is used. This avoids incompatibilites with systems that use alternate versions of echo that do not support -n. 7/9/10 - Corrected scaling of AFO UnForm output to match the cols/rows settings for all drivers. There were differences between pdf, pcl, and ps drivers so that added elements would vary in position by driver. 7/9/10 - Moved the AFO overlay in the pdf driver to the first layer, so images would aways be on top regardless of the pdfimageorder setting in ufparam.txt. 8.0.10 7/13/10 - Modfied timing of webdirs search prefix generation to ensure custom messages are properly displayed in the browser interface. 7/16/10 - Added the -noafo command line option to suppress automatic AFO processing of Postscript input jobs. This can be useful as an argument in the jobexec() function, as subjobs of AFO jobs default to AFO processing. 7/21/10 - Update the runtime engine and added signal event trapping code to ignore SIGHUP. This was in response to reports on some Unix systems that use the Bourne shell (rather than bash or ksh) as the default shell. There was a bug in the Bourne shell's nohup command that allowed SIGHUP to get through to the UnForm server despite being executed with a nohup command. The result was that if uf80d is started and the starting user exits, a SIGHUP signal is sent and terminates the server. Runtime updates are not yet available for all UnForm Unix platforms. Those updated this release include AIX 5.3 and 6, SCO 5 and 6, Solaris 10 x86-64, and Unixware 7.1. 8.0.11 8/9/10 - Added AFO support for incoming PDF files in addition to Postscript. The design tool was also updated to properly handle PDF files in the sample pane, as they can't be treated as text data. Instead, PDF samples are displayed in a PDF viewer on the sample pane. 8/9/10 - Modified the way the Image Manager displays non-image files in the file viewer pane. Until this update, all non-image files were displayed using an instance of Internet Explorer. This works well for files that IE knows how to render "in line", but caused a prompt to download any other file. This change assumes IE can render pdf, txt, htm, html, and xml files. All other files are shown as a button that can be clicked to attempt to open the file via Windows. An application must be associated with the file's extension in order for the file to be viewed. Image file handling is not affected. 8/16/10 - Updated the design tool to work around event handling issues caused by large design samples, where user actions could interfere with the uploads and downloads and cause socket timing problems with unpredictable results, up to and including crashes. This update also recognizes PDF and PostScript samples as binary data, using server-side versions of the files for preview generation. In addition, PDF samples are displayed in an Acrobat plugin rather than a text viewer. 8/17/10 - Added auto-sensing of html message bodies in email functions. If the message text starts with , the bodymime value will default to text/html. This change enables all emailing functions, including those in the deliver command, to easily use html message bodies. 8.0.12 8/19/10 - Updated the Image Manager auto-run options to support all file types with the new -allfiles option, and to provide user control of the configuration for importing PDF files as images (-pdfasimage and -pdfaspdf options). In addition, operation of the -run option was corrected. 8/24/10 - Corrected an error 65 in ufjusts.pv, when centering text using Postscript output. 8/27/10 - Updated the design tool Test Print to a local device, to use direct spooler access rather than querying the port list to locate UNC and LPTx: ports. This change provides more meaningful local printer names and avoids potential instability found with some printers on Windows Vista. Note that printers must still support pcl or postscript, as that is the test print data that is sent to the spooler. 8/30/10 - Modified support server to use barcode control in a way that reduces memory leak potential. 8/30/10 - Significant modifications to the browser interface to reduce popup windows, and provide more intuitive navigation. This change affects many files used by the browser interface. The following files have been modified: pdfwrap.html subdocedit.html imgwrap.html docview.html docedit.html libview.html popcal.html common.js addrlist.html addrimport.html addredit.html grpedit.html useredit.html libedit.html userimport.html ssform.html anform.html ssnedit.html srsaved.html srview.html srform.html srlist.html menu.html email.html subidmissing.html popupnm.html master.html iframe.html docmissing.html popup.html default.css mnlibs_br.html 8/30/10 - Added support for library-level workflow forms, configured in the forms.ini file as [libname|*], and visible in the Browse function of the browser interface, once a library has been selected. 8/31/10 - Updated uf80a.pl and uf80a.exe CGI scripts to use the same block-oriented file copy methods used in uf80c. These methods are more efficient when working with large files. 8/31/10 - Added new library object functions, and used them internally to improve performance of the browser interface popup calendar. getdates$([year[,month]]) updated to allow specification of the year and month to limit the date range returned. getyears$() added to return just the years on file in a library. getrecentdates$(count) added to return the specified most recent dates in the library. 8/31/10 - Added browser Browse support for document types that have odd characters. In one particular case, the document type contained quote characters. 8/31/10 - Corrected a problem printing TrueType text with trailing spaces. Also corrected a problem with multiple font commands that mix TrueType and non-TrueType fonts, related to pcl and postscript justification and fit calculations. 8/31/10 - Modified archive creation of the store.img file path to ensure that if a new file is required, a stray existing file will not be reused. This helps prevent problems when a site restores library master files without also completely restoring store.img path structure. 8/31/10 - Added escape handling for hardcoded \{ and \} sequences in text commands. 9/1/10 - Updated the runtime engine for the following ports: AIX 5.3 (new compile using the IBM C compiler), HP/UX 11 (PARisc and Itanium), Solaris 9 and Solaris 10 SPARC. These ports offer workarounds for the Bourne shell nohup bug that caused manual server launches to quit when the launching user logged out. 9/1/10 - Corrected a problem with the get() function not honoring the optional page parameter when used with AFO input. 9/1/10 - Corrected a lpi calculation mismatch between pdf, ps, and pcl drivers that caused get() to potentially return different information depending on the driver in use. 9/2/10 - Restored parsing functionality to non-text command quoted values, such as bop and eop, that supported it in previous versions. 9/8/10 - Modified job number logging in the Support Server to reference the parent job when a subjob uses the server. 9/8/10 - Added retry logic to the PDF to Text parsing in the Support Server to try to work around occassional automation errors reported by the PDF parsing control. 8.0.13 9/10/10 - Obtained Microsoft Windows 7 certification for the Image Manager and Design Tool. Digitally signed all Windows components and installers. 9/13/10 - Corrected a browser error when editing a sub ID value. 10/4/10 - Corrected a problem where a Search, Bulk Action option would close the main browser window, though the action did complete. 10/4/10 - Corrected problem with using the address book from Marked Records, where the paste of an address would close the main window. 10/4/10 - Updated the text command to support a "nohpgl" option, used internally by the micr command under pcl, to correct a scaling problem with the micr soft font when used in hp/gl mode. 10/5/10 - Updated pcl shaded box drawing to provide consistency with other drivers, including pcl when hp/gl not turned off, when using a shade 0 or white option. Previously, white shaded boxes would always print on top of other boxes, resulting in an inability to place a black shaded box on top of a white shaded box. All other drivers allowed this. 10/6/10 - Added support for the documented -arcentityid option in a -arcput operation in the uf80c command line. 10/6/10 - Modified the Support Server's PDF to Text handling to account for Ghostscript problems with text box sizes when some printing programs produced Postscript with null bounding boxes. In particular, we saw that Crystal Reports output would exhibit this problem. The new algorithm calculates box sizes based on font size in cases where the box size appears to be wrong. 10/7/10 - Updated the Support Server barcode processing to add a small timeout period to reduce a memory leak discovered when many thousands of barcodes are processed. 8.0.14 8/12/10 - Added the "attachfax" option to the supported tags in the msfax() command, to trigger the addition of the fax image when a receipt email is requested. 8/14/10 - Corrected a work file purging problem introduced in 8.0.11 and not discovered until now. 8/25/10 - Added space trim to sub ID after stripping the sequence identifier character when auto-sequencing is desired (i.e. "subid *" now is written without the trailing space). Standard doc ids and subids are space trimmed, but those with the asterisk suffix were not, which caused failures in the browser interface to load the document image. 8/25/10 - Corrected a problem with the text command resolving @xxx substitution references. 8/26/10 - Corrected a problem with symbol set management in pcl output, causing incorrect symbol sets to be displayed in some text commands if a micr command was used in the job. 8.0.15 11/1/10 - Modified UTC time function used by the internal http server to avoid error 41 messages at certain times of the day in regions where the UTC offset is negative. 11/3/10 - Corrected a runtime error 380 in the design tool when submitting a large AFO PDF file. 11/10/10 Updated the design tool and image manager to modify socket transaction management to avoid potential deadlocks caused by multiple socket events firing simultaneously. 11/10/10 - Updated the date/time parse routines found in the browser interface and date object to honor seconds in a time segment. 11/10/10 - Corrected a time seeding problem in the browser Browse page when sorting by descending date/time. 11/11/10 - Implemented changes to the library object to use read-only mode for most library actions, resulting in performance improvements for sequential i/o, particularly noticable in the Search function. 11/11/10 - Modified several link generation points to use javascript escape() functions rather than pre-encoded data to work around a problem discovered when javascript functions are passed arguments with url-encoded data, where the browser decoded the value before javascript would receive it. This caused problems accessing document ID's and sub ID's containing "&" and other url-encoded characters. 11/12/10 - Corrected a regular expression pattern generated for a generic "Filter" search value, to improve performance of searches using that field. 8.0.16 11/18/10 - Added image resolution to the bmp image returned by the support server, allowing proper scaling of support server-converted images to pcl output when using resolutions higher than 300 dpi. 12/8/10 - Corrected error 41 when a text command encountered a value in angle brackets with a fractional part, such as <200.50>. 12/13/10 - Added subdate, subtime, and subtype fields to xml listings for the -arcsearch command line option. 1/3/11 - Added support for input that appears to be just pcl initialization sequences are treated as null data for support of the -nn option. 1/21/11 - Corrected pcl image positioning problem when rows or cols are changed during the job and the same image appears more than once. 1/21/11 - Rounded cols and rows to integers to prevent error 41's when a rule set uses a fractional column value: i.e. cols 90.5. 1/21/11 - Added workaround code to an Image Magick bug that would produce bmp files with the wrong resolution, causing pcl output to be scaled incorrectly. 1/21/11 - Corrected default keyword calculations for achiving AFO batch jobs. 1/21/11 - Updated the support server to work around object handle leaks in the barcode component. The reduced overhead had the side benefit of improving performance in jobs that used a lot of support server actions. 8.0.17 1/28/11 - Corrected postscript output for jobs with no pages, to not print page closing code which caused a printing error. 1/31/11 - Reinstated full support for Image Alchemy, which 8.0 had not been updated for. As this requires entries in the [images] section of uf80d.ini, which is not overwritten during updates, the following lines must be added if you wish to used Alchemy for dynamic image conversions: jpg="%i" "%o" -o -Q -D %d %d -+ -Xc%x -Yc%y -jh 75 -24 >/dev/null 2>&1 bmp1="%i" "%o" -o -Q -D %d %d -+ -Xc%x -Yc%y -b -c2 -d5 -w >/dev/null 2>&1 bmp8="%i" "%o" -o -Q -D %d %d -+ -Xc%x -Yc%y -8 -w >/dev/null 2>&1 bmp24="%i" "%o" -o -Q -D %d %d -+ -Xc%x -Yc%y -24 -w >/dev/null 2>&1 newfmt="%i" "%o" -o -Q -D %d %d >/dev/null 2>&1 imgtopdf="%i" -o -Q -U ---U "%o" --d3 >/dev/null 2>&1 Note when you do this, you should also comment out any Image Magick-oriented lines, and of course enable a converter= line. 1/31/11 - Added a custom change to the uf8ptr driver to support explicit server-side output to *windev* devices. Please note this only affects the uf8ptr driver used in ProvideX installations. Without the server: prefix, *windev* devices are assumed to be client-side devices. The -o syntax is: "server:*windev*;printer". 8.0.18 2/16/11 - Corrected an error 14, 3150, in ufarcrun.pv, when a document with an entity ID property was added and a user with that entity ID had recently visited the external web interface. The result would be missing images. Any installation that utilizes entity ID's and provides browser access to external users should update to this version. 2/16/11 - Corrected a problem with archive args options when two or more archive commands are used in a rule set. The args options would not be applied to the correct archive command. 8.0.19 Added support for the UnForm Desktop Client (DTC), a Windows-based program the provides features for closer integration between Windows desktop applications and UnForm document archives. The client utilizes special rule files to present custom dialog windows related to specific application windows, and server-side logic to respond to requests for documents, searches, web forms, and more. The DTC program can be installed through tradional downloads, and can be made available via the browser interface by configuring the new [dtc] section in uf80d.ini. [dtc] airule= webinstall=0|1 (1=allow install from the user's Options screen) DTC is an optional component, available for purchase in live environments, and enabled in demo installations. For more information, see the unform80.pdf manual, Desktop Client chapter. 3/2/11 - Added server support for the design tool to be able to save sample txt, ps, in, and pdf files to the server, as well as rud and rul files. 3/2/11 - Updated the design tool to indicate when text sample lines contain embedded CR characters (chr(13)). These are now indicated with a tag in the sample text pane (similar to tags used for formfeeds). Those tags are converted back to true CR characters when running previews or saving the sample. Note that the server has configurable options for how to handle embedded CR characters. See the cr=x option in uf80d.ini. 3/9/11 - Updated PDF parser to support xref trailers with a mix of CR and CRLF terminators. 3/15/11 - Corrected a problem when a text command, or one executed via exec() in a code block, would cause a fatal error if the text contained <> or <0>, which produced a character that conflicted with internal parsing structures. 3/16/11 - Corrected a mdy formatted date parsing problem, where a year of 00 would result in the current year being returned. 3/17/11 - Corrected a problem with adding new images via the web browser, where an error about a null subid not being found in the library would be presented. 3/17/11 - Corrected a shading problem when shading a rounded-corner box in PDF. The addition of transparancy support or 8.0 resulted in a rectangle shade region being drawn in addition to the curved (filled) region. 3/18/11 - Corrected a problem in archive libraries where if a file sequence pointer gets corrupted, subsequent new documents would not update correctly. The @unform PDF image would be written to a new file, but the file sequence pointer would not be correctly updated, and the @text image would be written to a different store.img file. This problem stems from other file corruption, so was not discovered before a previous problem had also been discovered and corrected. 8.0.20 3/24/11 - Corrected an error 65 creating a textfile, binfile, or keyfile object with no filename argument. 3/31/11 - Corrected a pdf417 barcode scaling issue. 4/6/11 - Modified support server socket management to utilize individual tasks handle incoming connections, to limit potential for memory leaks in third party tools. 4/6/11 - Modified search 'delete' checkbox handling to prevent a response list that was seeded after the last deleted checked item. 4/29/11 - Added signal handling code to the raw port monitor and the internal http server to prevent them from closing when the uf80d start user logs out. This problem was an issue specific to the SCO platform, due to a bug in the nohup command that allowed signals through to these services. 4/29/11 - Updated focus management in the DTC client so that when a monitoring window was minimized, it wouldn't become invisible when the taskbar icon was clicked to raise it again. 5/4/11 - Corrected a library object copydoc function problem when the docid was null. 5/4/11 - Added support for escaped characters in the Image Manager lookup configuration, specifically in the Where clause of fields. This supports the use of characters that conflict with brace characters ({}) used in run-time prompting, when those characters are required by an odbc driver. An example if the ProvideX odbc driver, which support scaler functions inside braces. The escape character is a backslash, so \{ and \} will place literal braces in the Where expression. 5/4/11 - Added support for expressions in the position and size arguments to the annotate command. 5/5/11 - Added a detailed logging option to the support server's configuration screen, which enables extra logging of job requests, including byte counts. In addition, when logdetail is set on the unform server, support server request data is logged in uf80d.log. 5/5/11 - Added support for a -errfile "pathname" argument when running auto-execution command lines in the image manager, to provide access to errors by scripts. 8.0.21 5/13/11 - Updated the DTC program to support rollup mode when a job window is not focused. A new "lock" icon is on the toolbar. When not on, the window will "rollup" to a smaller size when the it does not have focus. If the lock icon is pressed, then the window will retain its original size whenever visible. 5/19/11 - Corrected a color image problem in pcl, where the image would be one line below its correct position, and would not match the image position for other drivers or b&w images. This would only affect images converted from standard graphic files. Note that this correction can impact existing jobs, and there may be a delay in impact until after the image cache is reset. The corrective action is to simply reduce the row position by 1. 5/24/11 - Corrected a problem in the Image Manager where a downscale process for TIF images would not produce a valid image, and there could be a failure to upload or an error on upload as a result. 5/26/11 - Modified the uf8ptr pvx print driver to handle [wdx] print devices that contain spaces. 5/26/11 - Corrected a problem with postscript images where auto conversion and scaling wasn't taking place when color options were chosen and a non-jpg image was specified. 6/9/11 - Update the Image Manager to improve the following functionality: > Autofill in multiline fields now appends with a linefeed if the cursor is at the end of the field data, or inserts without a linefeed if the cursor is not at the end. If data is selected, it is replaced. Also, the cursor is moved forward the length of the pasted input. > Text input forms raised by the property grid are no longer modal. In addition, they remember the row setting so multiple forms can be active and when saved will update the proper image's properties. > When combining matching images, keywords are now merged, rather than being set to the keywords of the first image in the combine group. Note that if the image is then exploded back to single-page images, the combined keywords are now present in each image page. > The image Lock option now remembers manual settings as well as job-driven settings. 6/13/11 - Updated DTC to optimize library/doctype validations. All validations for a form are performed with a single server request, and validations are cached to avoid server transactions when a given library, doctype, and docid have been validated previously in a session. This change requires that DTC communicate with a 8.0.21 or higher server. Also note that document deletions, assumed to be rare, will cause the cache to be out of sync until the user restarts DTC. 6/22/11 - Updated handling of text with angle brackets, to allow an exec() of a text command with unicode bracketed values that contain internal delimiter characters such as $01$ and $10$. The timing of resolving the bracket expression was changed. A runtime expression, such as {get(x,y,z)} could run into a problem if the text contains angle brackets that could be interpreted as a character representation. To avoid this problem, add a sub() function to change "<" to "\<": {sub(get(x,y,z),"<","\<")}. 6/22/11 - Corrected a decimal alignment problem with truetype fonts. 6/27/11 - Added support in Image Manager lookup definitions for data sources that do not return record set counts. Previously such sources would return errors when looking up records. 7/7/11 - Corrected a search criteria parse issue when a criteria contained three or more 'or' or 'and' conditions. The use of comma and semicolon synonyms for 'or' and 'and' was unaffected. 7/8/11 - Modified image manager OCR handling to address runtime MODI OCR errors on random images with data that broke the Microsoft MODI ActiveX server. Also corrected a random runtime error related to array indexes. 7/14/11 - Modified clipboard change detection method to use the system's clipboard sequence counter, available in 2000, XP, and up. This should improve the robustness of clipboard change detection. 7/25/11 - Modified DTC server verification logic to handle multiple validations properly. 8.0.22 8/17/11 - Modified CGI object output, used by some features of the archive browser interface, to include headers required for IIS for CGI operations. 8/22/11 - Updated Aztec barcode support server coding to use a different image save method, to work around a bug in the barcode library that did not release a file handle, resulting in a permission error when the support server tried to remove a work file. 8/25/11 - Corrected a problem with the putaddress() function. 9/2/11 - Corrected the right() function to pad as documented. 9/18/11 - Corrected cache ID for pcl images to include the cpi and lpi values, in order to avoid using a cached image for the wrong scale size when rows or cols are changed for the page. 9/23/11 - Restored substitute value support in text commands, broken in previous updates that corrected angle bracket substitutions. text 1,1,@xxx now works again, substituting xxx value(s) from subst file or -s file. 9/23/11 - Corrected a problem with truetype fonts and the pdf protect option, where the font referencing get an internal error 12 (visible in the job .err file) and produce a corrupt pdf file. 9/30/11 - Added workaround code for cases where a font command would be for a negative number of columns. Instead of a fatal error 47, the columns is now set to 0, so no fonting takes place. 10/1/11 - Added a maintenance object, "recover", intended for use in a foreground runtime window, to provide additional library corruption recovery options. This object is intended for use by a support technician, so is documented internally. 10/3/11 - Work around code added to support UNC devices on Windows 2008, where this functionality was lost due to a change in the API stat() function, which began returning "file not found" errors when applied to UNC devices on such newer Windows platforms. The work around routes such output to a work file, then copies the work file(s) to the original UNC device using a DOS copy command, which is immune to this problem. This is all done transparently to the user, the main difference being that output for all copies of a job is not sent to the printer until the entire job is complete. Errors that occur during the copy are logged to the main server log. This change is implemented only on Windows version 6.00 and above, which includes Vista, 7, and 2008 installations. 8.0.23 11/11/11 - Corrected postscript duplex problems. Since the most common use for duplexing is during a pcopies job, to print a back-side document using copy 2, it might be necessary to manage duplexing with code in other cases. For example, to turn on duplexing only on the first page, you can use a prepage code block statement if pagenum=1 then duplex$="1". 11/17/11 - Corrected a right() function problem. 11/19/11 - Added support for unicode TTF fonts to the textheight function. 12/8/11 - Updated DTC to support window title monitoring, and server-side parsing of title and clipboard values before they are used in DTC fields. This update also includes UI performance enhancements. 12/15/11 - Added defensive code to the raw port listener (ufrp.pv) to work around possible conflicts with files produced but not processed by a previous server task. 1/4/12 - Completed testing of updated DTC. 8.0.24 1/12/12 - Modified logic used when a -o argument specifies a file, so that if the file contains spaces, a Unix permission (chmod) command is issued against a quoted name rather than an unquoted name. 2/20/12 - Modified internal timing of socket messages when a connection is initialized, so that if an error occurs due to file corruption very early in the initialization phase, the client listener will still be able to disconnect the client rather than leave it hanging waiting for an init response that will never come. 2/21/12 - New feature added to support multiple rule files in a job, to allow easy insertion of customized rule sets ahead of standard ones. The command line -f "rulefile" option now supports -f "file1;file2...". At parse time, the files are merged, with the rule sets placed in the order specified and the globals section reversed, so if duplicate global constant definitions are encountered, the one from the first rule file will override those in later rule files. 2/21/12 - Enhanced logging of uploads from the Image Manager. Previous to this change, uploads were logged in the main server log, and served only has a guide to the success or failure of the upload, as this log is backed up and cleared on restarts. The new feature adds a directory ./scanlogs to the unform server path, and updates date-oriented CSV files with uploads. These files are purged on the same aging basis as the delivery logs, which defaults to 30 days. 2/23/12 - Updated the Image Manager to disable several menu and toolbar options while MODI is doing an OCR pass on an image. If the user caused image file modifications during the OCR run, it had the potential to crash MODI and the Image Manager. 2/23/12 - Modified dtmonitor.html to use a different technique for opening the desktop browser window, as newer browsers were not opening the browser window more than one time. 8.0.25 2/24/12 - Corrected a bug in the SubIDExists function in the Image Manager. 2/24/12 - Fixed a problem when a category contained a single quote (i.e. Tim's BBQ), and the browser failed to open the library browse window for the category segment. 2/27/12 - Resolved a random timing issue with job management that could potentially result in job initialization problems in extremely busy periods with many jobs submitted at once. 3/7/12 - Corrected an issue in pdf and ps output with decimal justification of monospaced fonts, something that would normally not be used. 3/12/12 - Corrected a problem in the Image Manager when with a header/attach job with attachment pages whose size caused barcode or ocr zones to be outside the page. 3/24/12 - Corrected a browser interface Search error when "and" was used in search criteria. The semi-colon version of "and" was not affected. For example, 'this and that' would get the error, while 'this;that' would work. 4/12/12 - Updated DTC to to force windows back into visible screen space when loaded, in cases where they had been previously placed on a larger screen. 4/26/12 - Corrected a rare error when a client disconnected before a ufproc task could launch and be assigned to the client, and the ufproc task was randomly assigned the same handle as the client by the tcp/ip stack. 5/2/12 - Added dynamic translation features, described in the manual. 5/8/12 - Added a "duration" column to the deliver log files, which logs the number of seconds the delivery to a particular address or fax took. The purpose is to help determine if a slow mail server is causing a performance bottleneck. 5/22/12 - Modified the url decoding function to support unicode escapes (format %uXXXX) generated by many browsers when they escape() a string with high value characters. The unicode escape sequences are converted back to iso-8859-1 values, the character set UnForm archives use. 5/23/12 - Modified PDF bookmark handling to suppress bookmarks to pages added via the images command. 6/7/12 - Corrected an error 47 in the xmlreader object when an empty tag () was referenced in child situations such as x'getchildren(). 6/25/12 - Modified the pdfpages function to fall back to Ghostscript if it can't determine the number of pages in a PDF file directly. This can happen if the file contains "object streams", which are not supported by UnForm's PDF parsing engine. Using a modern Ghostscript, the file can be converted to a version of PDF that does not include object streams, and then UnForm can parse it. This affects the pdfpages() function and also the images command, when referencing a PDF document. 8.0.26 7/10/12 - Modified pdfwrap.html and imgwrap.html templates in web/en-us to display a simpler title without field duplication. 7/11/12 - Enhanced the design tool to support the multiple rule files feature added in 8.0.24. The Preview Options menu option offers a second input box when the server is 8.0.24 or higher. The second box is for a secondary rule file (or multiples separated by ";" if needed). When a preview is run, the secondary rule file is appended as a suffix to the design tool's -f argument. 7/26/12 - Corrected a problem with grid lines in boxr commands in postscript output adding square corners to the top of the box. 8/7/12 - Modified the standalone support server to address confusion when the service executable (uf80ssd.exe) would stop after activity in the support server, even though the support server listener would correctly remain running. The problem resulted from previous changes that caused listener tasks to swap in and out, confusing the stand alone service executable. This change adds a static execution of uf80ss.exe that manages uf80ss.exe listeners. As this task remains active, the service task remains running. A normal standalone support server, when running as a service, now has one uf80ssd.exe task and two or more uf80ss.exe tasks. Also note that the support server manager interface is an instance of the uf80ss.exe program. 8/20/12 - Added two new options to uf80c, supported on both Windows and Unix/Linux. These options are -rd n and -rdt n (or -rdelay and -rthresh). The purpose is to introduce a random delay of n seconds whenever the number of active jobs on the server exceeds a certain threshhold. 8/20/12 - Corrected a subid length error if an asterisk suffix (xxx*) designed for sequencing caused the value to exceed 20 characters. 8/21/12 - Added a new option to uf80c.exe, currently only implemented on Windows. The option is -serialize, which will cause clients to ensure the server has responded to a given client before additional clients can start. The effect is to pace out job swarms by ensuring the server has resources to start a job before additional clients can proceed. 9/10/12 - Corrected an error 42 in ufmains.pv when using a cover page along with job-level output redirection and the postscript driver. 9/13/12 - Added support for a special output device type on Windows: -o unc:\\server\sharename. The unc: prefix indicates the server should use special work file handling to work around Windows 2008 issues that affect UnForm's ability to print to UNC printer shares. Normally, UnForm is able to detect Windows 2008 and up operating systems, and performs this processing automatically. However, if there is a need to force this workaround to be performed, the unc: prefix in front of the device name causes this to occur. The work around was originally added in version 8.0.22, and causes printer output to be written to a work file before being copied to the printer. 9/13/12 - Added an ability to configure user- or group-specific menu options in the browser interface. This feature is built around custom web forms, and uses new configuration entries in the forms.ini file. Designed for work flow features, it can be extended through standard html and javascript templates to perform a variety of functions. For configuration details, see the Browser Forms Configuration, Form Access Configuration, in the manual. 9/14/12 - Added automatic support for merging categories and links, as well as keywords, when combining documents in the Image Manager. 8.0.27 10/3/12 - Corrected a decimal alignment issue with pcl output when running in hp/gl mode (no -nohpgl option). 10/17/12 - Modified handling of agetmp to treat it as a 'days' value, as described in the documentation. It was being treated as an 'hours' value. Also adjusted purging logic to allow purging of the ./delivery directory. 10/24/12 - Behavior difference between 7.1 and 8.0 discovered: when using the zebra driver with no cols command in the rule set, 7.1 would infer a cols value based on cpi and label size, but 8.0 will use the value specified by a -cols command line option or 80. Cols should be specified under 8.0. 11/1/12 - Added forms.ini custom menu panel name "break", optionally followed by a comma and title, to force a line break and title in the custom menu panel area. 11/14/12 - Corrected a problem related exec() of boxr with shade or line colors in pcl output. 11/28/12 - Found an incompatability between ghostscript 9.06 and the control used by the Windows Support Server to parse PDF text data during an AFO job. The result is a hang of the support server. For users who use AFO jobs, we recommend downgrading ghostscript. We have tested 8.71 successfully. 11/29/12 - Added experimental load balancing to the Unix perl client code. Specify multiple, semicolon delimited servers in a -server option, optionally with a :port suffix if needed. The client will poll servers to determine which one has the most job availability relative to its license count, and use that one (or the first idle one it encounters). Please note that this feature is incompatible with archiving, as there is no way to know which system a given document is stored on. All other options are passed to whatever server is selected, so all servers must have the same rule files, image files, spooler destinations, etc. 1/15/13 - Modified the Image Manager to convert control characters to spaces in library, doctype, docid, and subid values, to prevent the accidental assignment of invalid identification values, after it was discovered that a Shift-Enter sequence could insert a linefeed character into an ID value, rendering that document inaccessible once uploaded. 1/15/13 - Corrected a tray selection error with the winprt output format. 2/12/13 - Early feature support for a licensed workflow object added. 3/6/13 - Added content-type and content-length headers to post method submission in the http object, to emulate form posts. 3/7/13 - Corrected an error 99 in ufimgsto.pv on hp/ux platforms that do not have zlib support. 3/25/13 - Modified library security tests to resolve a library alias. 5/24/13 - Modified clipboard monitoring in DTC to only paste changes to the clipboard while a given DTC window is open. This should help with an issue where clipboard updates from another window are pasted into the currently visible window. 5/24/13 - Corrected DTC parsevalue type fields to send the panel name when a dtcpanel is active. 6/3/13 - Updated library object to properly handle security of aliased library names. This was evidenced by an error 13 in ufcgilib'listsubdocs when viewing document properties with an aliased library specified. 8.0.28 6/18/13 - Corrected a problem with UNC output that contained spaces. 6/26/13 - Updated uf80c.pl to allow quoted strings in a -z file to contain a \\ sequence to include a backslash in the string. 6/26/13 - Corrected a problem where inactive users could login. 8/2/13 - Modified permission requirements for re-keying a sub ID to match that for rekeying a doc ID. Now a user with write permission can do both. Before this change, write permission allowed rekeying the document, but delete permission was required to rekey a sub ID. This was inconsistent and prevented users with write permission from simply re-writing an image. 8/9/13 - Adjusted internally generated links in several places in the browser interface to address problems with document types, IDs, or subIDs containing apostrophes. 8/14/13 - Added two fields to the [defaults] section of uf80d.ini, errnotify= and errnotifysubject=. Existing installs will have to add these lines manually, as uf80d.ini is not overwritten during updates. The errnotify value can be set to an administrator email address, or addresses separated by commas. The errnotifysubject value becomes an email subject when email notifications are sent. The purpose of these entries is to send an email whenever runtime errors or warnings occur when jobs run. These messages have always been written to temp/jobno.err files. This additional functionality reduces the need to proactively monitor these files. For reference, here are the lines found in the new uf80d.ini template: # Enable errnotify= line, specifying an administrator email address # Requires valid email configuration in prog/mailcall.ini # Multiple addresses can be separated with commas #errnotify=admin@mycompany.com #errnotifysubject=Warning/error messages from UnForm job @jobid More details are available under 'Configuring the Server' in the manual. 8/14/13 - Added a message to the status bar when the design tool is saving a rule file. 8/14/13 - Added the getuserprop(userid$,prop$) function to allow rule sets to retrieve certain information about a user, such as a name or email address. Details are provided in the manual in the internal functions table. 8/15/13 - Modified several locations in code where single quotes required escaping in order to be used in the openDocument hyperlinks. 8.0.29 8/26/13 - Corrected a problem with parsing TrueType font data into PDF structures, which under specific conditions could cause incorrect metric data to be provided in the PDF file, producing a 'bad widths' message when opening the PDF document in Adobe Acrobat. 9/9/13 - Retrofitted 9.0 inifile object into 8.0 to gain a feature that enables parsing of ini-formatted strings rather than requiring the object argument to be a disk file. Now you can use o=new("inifile",string$) where string$ is a value with a [header] line and linefeed-delimited name=value pairs (the exact same content an INI file contains). 9/26/13 - Corrected a design tool crash when an image preview is generated with both skip=1 and showimages=1 settings in a precopy code block. No page dimension data is returned from the preview generation if no print pages are produced (excluding 'images' attachments), which resulted in an error when trying to bring up the command editor window after such a preview is generated. 9/26/13 - Corrected a problem in postscript output with the images command, if using skip=1 and showimages=1, where an initial blank page would be produced. 10/3/13 - Release of Image Manager 8.1, with an extensive list of new features and a new barcode reading engine. 8.0.30 10/6/13 - Updates json object to quote item names in order to fully support current browser JSON object parsers. 10/14/13 - Corrected a drive-letter case sensitivity issue that could cause an error 13 report browsing a library. 11/4/13 - Corrected connection coding for [mysql] to properly handle host names as documented. 12/6/13 - Fixed a problem with webform async execution. 12/11/13 - Changed out escape()/unescape() for encode/decodeURIComponent in all js and html files in web/en-us to work around plus-sign encoding problems in DocID's. Also updated several web templates to support newer browsers without compatibility mode settings. 12/18/13 - Corrected a text fit command problem, if the text is anchored to a pattern across a multi-line region, the point size was not reset from line to line, possibly resulting in smaller text than expected. 1/9/14 - Added Links to the search form in both searches and saved searches. 1/14/14 - Fixed a bug in the deliver command, when multiple send-to addresses or fax numbers were provided for the same docid and the job was an AFO job. The document(s) delivered after the first address were formatted as internal AFO text rather than the formatted overlay output. 1/14/14 - Fixed a non-removal of a work file after an AFO job going to a PCL print device. 1/16/14 - Added a log line to uf80d.log when a user logs in from the Image Manager. 1/23/14 - Corrected an xmlreader object bug where a tag could be found when nested at a lower level than was specified. 1/24/14 - Corrected an error 47 in the xmlreader getattr$ method when getting an attribute value last element in a file. 2/3/14 - Corrected a relative font enhancment that referenced data outside the cols setting. 2/19/14 - Modified deliver tag parsing logic to support use of url-encoded message content. 3/27/14 - Updated Image Manager 8.1 to downscale high resolution barcode image zones to improve performance. 5/13/14 - Corrected cover page orientation issue with pcl output. 5/19/14 - Corrected a child count issue in the xmlreader object when sub-children element names were prefixed with the parent element name. 10/29/14 - Corrected a problem in the browser interface when a document ID contained a % character. 12/16/14 - Added support for UNC devices when doing passthru printing. 12/16/15 - Corrected error 47 in ufrule when parsing an exec() statement for copy 17. 12/24/15 - Corrected a random error 43 at 1410 in ufrp.pv. 5/25/16 - Added the -noirs option to suppress possible interpretation of an inline rule set if an input file contains the header structure that would otherwise trigger it. 6/7/16 - Corrected a handle calculation in the tcp/ip receive port. 6/14/16 - Corrected a security problem related to certain URL structures. 1/26/17 - Ensured that a javascript command witn an empty expression would not result in an empty javascript tag in pdf output.