HELIOS EtherShare OPI 2.1 User manual


8 Reference guide
8.1 General remarks
Fig. 45 again lists all tasks that are related to EtherShare OPI. This chapter describes some modules of our software that are only accessible when working on the UNIX server. It is meant for those who want to change or check specific OPI settings manually.
Fig. 45: OPI-related tasks with tasks described in this chapter

UNIX
programs
belonging to EtherShare OPI 2.1
EtherShare OPI 2.1 is composed of many individual UNIX-based programs as e.g. "opisrv", "opitouch", "layout", "oiinfo", "oiimginfo", "oictable", "hirespath". It also makes use of the EtherShare modules "papsrv" and "psresolve" and different printer interface programs ("papif", "tcpif", and others). Some of the above-mentioned programs are described in the following chapters. You may use them for setting specific parameters manually. This may be useful because some of these parameters have especially been designed to deal with application-inherent incompatibilities.
For programs that are not described in this manual and for instructions on how to integrate plug-ins, you have to refer to the "HELIOS OpenImage Software Developer Kit". This documentation has to be ordered from the HELIOS Software GmbH and is meant for third-party developers only.
About defaults
Please note that parameters you set using e.g. the "layout" or the "psresolve" program override the settings in the EtherShare Admin dialogs and those entered in the preference data base. If you do not specify a specific parameter, EtherShare OPI will use the settings from the EtherShare Admin dialog, or (for options that cannot be set with the EtherShare Admin program) will check the entry in the preference data base. In case the preference data base does not contain an entry for this parameter, the parameter default will be used. Otherwise, the entry in the preference data base is valid. For changing entries in the preference data base you will need the "HELIOS OpenImage Software Developer Kit" for developers.
8.2 Differences between program versions 1.x and 2.1
The EtherShare and EtherShare OPI configuration have changed significantly with the new EtherShare version 2.6 and EtherShare OPI 2.1.
Older OPI settings are
ignored
The printer interface programs do not recognize older EtherShare OPI parameters from "$ESDIR/atalk.conf" and SETUP. All parameters have to be checked and/or set up again using the EtherShare Admin program.
"OPI Setup" tool has been removed
We removed the "OPI Setup" tool from the EtherShare Admin program. The parameters from the related dialog are now integrated in other EtherShare Admin dialogs. Details are listed below:
Image Search Path behavior has changed
The image search path behavior is different with EtherShare OPI 2.1. When searching an image using
"ImageSearchPath" and the original image cannot be found in the directory specified by the image path name but the volume of the original path name still exists, then the old volume name will be skipped and the remaining hierarchy will be appended to the "ImageSearchPath". This allows image searching relative to volume specifications. The behavior applies to Macintosh path names only.
An example:
The original image path name was
"EtherShare:My Images:Image" and there is a search path defined as "OtherShare:".
The image will then be searched as "OtherShare:Image" as well as "OtherShare:My Images:Image".
Parameter backward compatibility
All OPI-related programs recognize the following parameters and options for backward compatibility:
From "$ESDIR/conf/atalk.conf" the option volumes= is recognized by the OPI programs "opisrv", "opitouch", "layout", "oiinfo", "oiimginfo", "oictable", "hirespath", "psresolve" and all printer interface programs. This option may be set in the "OpenImage" and program sections as well as in the "if" and printer sections for the printer interface programs.
Additionally, the options plugindir= and preferences= are recognized by the programs "papsrv", "opitouch", "opisrv", "layout", "oiinfo", "oiimginfo", "oictable",
"hirespath", "psresolve" and all printer interface programs. This options may be set in the "OpenImage" and program sections as well as in the "if" and printer sections for the printer interface programs.
The option plugindir=<PluginDirname> allows to choose a different location for the "OpenImage" plug-ins than the default "$ESDIR/OpenImage/Plug-ins".
The option preferences=<PreferencesFileName> allows to choose a different location for the "OpenImage" preference data base than the default "$ESDIR/conf/Preferences".
8.3 The "layout" program
Usually, layout files will be generated automatically by the EtherShare OPI server and new layouting parameters must be set using the EtherShare Admin program on any Macintosh client. If you want to create a layout manually, or if you want to use a special set of parameters for the creation, you may call the UNIX "layout" program directly.
There are two main possibilities of calling the "layout" program. If you want to create layout files for a single file or a set of known files, you can use the following call:
layout [options] files...
If you want the "layout" program to permanently scan for high-resolution files in a special directory, use the call:
layout [options] -p polltime directory &
Now, the layout process will go into the background and scan the given directory constantly with the given interval polltime in seconds for a new or changed high-resolution file to create a layout file from. This feature should only be used for small directories because it is not as fast and efficient as automatic layout generation.
In the following, we list the parameters that may be set with "layout" and then - at the end of this chapter - give you some examples that may be used for specific workflows.

Note: Parameters that can also be specified in one of the EtherShare Admin dialogs will be marked by "Compare EtherShare Admin!".

8.3.1 Syntax conventions
Independent of whether you call the "layout" program for a set of files or use it to poll permanently in the background, you may use the options described below. The type and the default value are shown in angle brackets just before the description. The following types are used:
32 bit integer value (72)
floating point value (72.6)
any string enclosed in quotation marks ("foo")
comma-separated strings ("foo","bar") - without spaces between the strings
TRUE or FALSE
Please note that instead of Boolean values you may alternatively use the preference name only (without any "=" or value) to set this option to TRUE, or the preference name with a preceding "no" to set the option to FALSE. The following two commands are equivalent:
layout -o PreviewFromPict=FALSE
layout -o noPreviewFromPict
8.3.2 List of parameters
-h
Display help text for the "layout" program.
-v
Display progress of layout generation on "stdout".
-D
Use the "layouts" subdirectory for generating layouts.
-H
Disable all users' home directories as EtherShare volumes.
-r dpi <double:72.0>
Set resolution in dpi used for creating layout files.
-M <boolean:TRUE> (opposite to -P)
Produce layout files for the Macintosh platform only (see also option CrossPlatformLayout below).
-P <boolean:FALSE> (opposite to -M)
Generate cross-platform layouts (see also option CrossPlatformLayout below).
-n <boolean:TRUE> (opposite to -N)
Limit size of EPSF layout files on generation.
-N <boolean:FALSE> (opposite to -n)
Do not limit size of EPSF layout files on generation.
-K <boolean:TRUE> (opposite to -k)
Create layout files with unspecified colors.
-k <boolean:FALSE> (opposite to- K)
Do not create layout files with unspecified colors.
-L dir <string:None>
Set destination directory for layout file generation. May only be used for manual (not for automatic "polling") mode. This option creates all layouts in the indicated directory. This option is mostly needed when the high-resolution files reside on a read-only medium e.g. a CD-ROM.
-l File(s) Destination
When using the -l option, one must specify one or more files to convert and a destination file (if converting a single file) or a directory (if converting several files). The image type of the destination file(s) is given by specifying destination as an "OpenImage" file specification.
For example,
layout -o PrintColor=RGB -l file1 file2 "{unix,native,TIFF}/tmp"
will convert "file1" and "file2" to RGB TIFF images and store them as plain UNIX files.
The "OpenImage" file specification precedes the file or directory name and is put in braces. It is structured as follows:
{FileSystem Type, FileRepresentation, Creator, ImageType, ImageTypeExtension}
FileSystem Type must be unix.
FileRepresentation may be either native, ES, or PCS.
Creator is a Macintosh file creator signature (as e.g. 8BIM for Adobe Photoshop).
ImageType is a file type signature (as e.g. TIFF or EPSF). ImageTypeExtension is an optional extension to the file type and may be empty.
The -l option may be combined with the -p option:
layout [options] -p polltime -l directory destination
The image type of the destination file(s) is given by specifying destination as an "OpenImage" file specification.
For example:
layout -o PrintColor=RGB -p 30 -l /user/dir "{unix,native,TIFF}/tmp"
Now, the layout process will go into the background, scan the given directory every 30 seconds (default) for a new or changed image file, and then converts this file into a TIFF-RGB image which will be stored in the directory "/tmp".

Important: The following six options are supported for backward compatibility with EtherShare OPI 1.2 only; please do not use these options for new installations or configurations.

-s suffix <string:".lay"> [compatibility only - use LayoutSuffix of OPI 2]
Define new suffix used for generation of layouts files. This option will only be considered if the -D option is not used.
-c <boolean:FALSE> [compatibility only - use CompressScreen of OPI 2]
Compress screen previews.
-d dcsSuffixes <string:"CMYK"> [compatibility only - use DcsSuffixes of OPI 2]
Define valid DCS suffixes. You may specify any number of characters here. These characters are handled case-insensitive.
-C [rgb|cmyk] <string:"CMYK"> [compatibility only - use PrintColor of OPI 2]
Define the color space used for raster-based layouts (e.g. TIFF layouts).
-e [rgb|cmyk|bw] <string:"CMYK"> [compatibility only - use PrintColor of OPI 2]
Define the color space used for EPSF layouts.
-t [rgb|cmyk|bw] <string:"CMYK"> [compatibility only - use ScreenColor of OPI 2]
Define the color space used for EPSF screen previews.

Important: All the following options correspond to a preference and are passed using the following syntax:
layout -o Preference=Value

LayoutSuffix <string:".lay">
Define suffix used for layout files.
DcsSuffixes <string list:"C","M","Y","K">
Suffixes of DCS plates that need not to be processed.
ProfileRepository <string:"ICC-Profiles">
Define Macintosh volume name (repository) where ICC-profiles reside.
Compare EtherShare Admin!
ProfileSearchPaths <string list:None>
Additional directories where to search for ICC-profiles.
ProfilePaths <string list: (RGB="ICC-Profiles:Scanner:HELIOS:CCIR-EBU-RGB",CMYK="ICC-Profiles:Printer:HELIOS:Euro 2.6 UCR-370")>
Define RGB or CMYK profiles used if the color space for the destination layout file and the color space of the high-resolution file are different. These profiles are used to match between color spaces properly. Each string has the format <color space>=<path name>.
PreferredCMM <string:"LinoType-Hell">
Define preferred color matching method.
RenderingQuality <uint32:2>
Define ICC rendering quality. You may choose one of the values listed below:
MissingIccProfileIsError <boolean:TRUE>
Define missing profile as error when creating layout file.
LogMissingIccProfile <boolean:TRUE>
Log missing profile in "syslog" file.
UseLayoutDir <boolean:TRUE>
Use the "layouts" subdirectory for generating layouts (compare -D option above).
Compare EtherShare Admin!
AutomaticLayout <boolean:TRUE>
Create layouts automatically.
Compare EtherShare Admin!
MinLayoutSize <uint32:0>
Define minimum size in bytes needed to start layout process (0 = any size).
KeepImageResolution <boolean:FALSE>
Do not consider PrintResolution option (see below); layout file will inherit the resolution of the high-resolution image.
PrintResolution <double: 72.0)
Define dpi used for printable part of layout (0 = omit printable part).
Compare EtherShare Admin!
ScreenResolution <double:72.0)
Define dpi used for screen preview part of layout (0 = omit screen preview).
Compare EtherShare Admin!
PrintColor <string:"CMYK">
Define color space used for printable part of layout file. If the string is set to None, the color space of the high-resolution file is used. For valid color spaces, see table 5 below.
Compare EtherShare Admin! (The Admin provides less options.)
ScreenColor <string:"CMYK")
Define color space used for screen preview part of layout file. If the string is set to None, the color space of the high-resolution file is used. For valid color spaces, see table 5 below.
          1. List of layout color spaces
Name of color space
None
HSV
YCbCr
Spot
HLS
CIELab
Bilevel
CMY
CIEXYZ
Grayscale
CMYK
CIELuv
Indexed
Multi
CIEYxy
RGB
Duotone
YCC
...
...

CompressPrint <string:None>
Define compression mode used to generate printable part of layout file using a string from table 6. Please note that some compression modes cannot be applied to each file format.
Compare EtherShare Admin! (The Admin provides less options.)
CompressScreen <string:None>
Define compression mode used to generate screen preview of layout file using a string from table 6. Please note that some compression modes cannot be applied to each file format.
          1. List of layout compression modes
Name of compression mode
None
CCITTG4
Thunder
Compress
JPEG
Berthold Lineart
CCITTRLE
PackBits
Pixar
CCITTG3
NextRle
Flate
...
...

LayoutHighQuality <boolean:TRUE>
Create the best layouts possible. Otherwise (FALSE), the first part of high-resolution image that matches defined layout resolution is used (high quality setting uses a bilinear resolution converter, low quality setting uses the "nearest neighbor" algorithm).
Compare EtherShare Admin!
LayoutCreator <string:"8BIM">
Define Macintosh file creator used to create layout (only applicable to EtherShare volumes; 8BIM defines Adobe Photoshop).
ForceRasterLayout <boolean:FALSE>
By specifying this parameter all layout images will be TIFF files even if there is no need to create a TIFF file from a raster-based high-resolution original image.
ForceEpsLayout <boolean:FALSE>
By specifying this parameter all layout images will be EPSF files even if there is no need to create an EPSF file from a raster-based high-resolution original image.
RasterImageType <string:"TIFF">
Usually, if the high-resolution file uses raster format and does not include any mask, the resulting layout file will use a raster format too, otherwise - if the high-resolution image is an EPSF file - EPSF will also be used for the layout file. The used layout file format can be overridden using this option. You may use any string defined for the file type member (e.g. "JPEG").
RegisterType =<string list:"Type">
Allow definition of additional file types (Macintosh).
RegisterSuffix =<string list:"Suffix">
Allow definition of additional file suffixes (Windows PC).
AttributeList= <string list:"key=value">
Consists of key=value pairs, delimited by comma characters. These attributes are passed to the image managers of OPI. The keys and possible values recognized depend on the image managers. Currently, the JPEG image manager is the only one which recognizes attributes:
ReplaceSuffix <boolean:TRUE>
This parameter controls if a known suffix will be replaced by the type-dependent suffix while creating the path name of a layout file. This parameter is ignored if layouting is done for PCs or on PCShare volumes.
Example:
A high-resolution TIFF file "Image.tif" normally leads to the layout file name "Image.eps" in case an EPSF layout file is generated. Specifying the option noReplaceSuffix on the command line of the layout program, the suffix will stay ".tif" even if the type of the layout file is EPSF.
RasterImageExt <string:None>
Define file extension member of key used to select the manager that creates layout files.
RasterImageSuffix <string:".tif">
Define suffix used for created layout when the high-resolution file uses raster format and has the registered suffix.
EpsImageType <string:"EPSF">
Define file type which is used to select the manager that creates layout files. You may use any string defined for the file type member here.
EpsImageExt <string:None>
Define file extension which is used to select the manager that creates a layout file. You may use any string defined for the file extension member here.
EpsImageSuffix <string:"eps">
Define suffix used for created layouts when the high-resolution file uses EPSF format and has the registered suffix.
EpsSkipUnknownColorspaces <boolean:FALSE>
Defines whether EPSF high-resolution files without color space specification should be processed or skipped.

Important: Please note that the following four options can only be used if the created layout file is an EPSF file.

EpsKeepSize <double:10.0>
Defines the allowed difference in size between the layout file and the high-resolution file (in percent). 20.0, e.g., specifies that the layout file must be smaller than 120% of the high-resolution file, or else only a copy of the high-resolution file will be used as layout file. You may also specify negative values here. Valid values range from -99% to any positive value. Applies to EPSF layout files only.
EpsPrintablePreview <boolean:TRUE>
If set to FALSE, "layout" creates a screen preview of the image but no printable layout. Applies only to EPSF layout files.
EpsLevel2Preview <boolean:FALSE>
Defines whether the layout process may use PostScript level 2 features (e.g. whether EPSF may include JPEG compressed data). Applies to EPSF layout files only.
EpsBinaryEncoding <boolean:TRUE>
Defines that image data may be stored using 8bit values (otherwise 7bit hex is used). Applies to EPSF layout files only.
PreviewFromPict <boolean:TRUE>
Macintosh PICT may be used as source for layout generation.
OmitScreenPreviewTypes <string list:"TIFF","8BPS">
By default, all provided managers create a screen preview in addition to the print preview. Thus, TIFF layouts may contain an additional PICT element. With this option you can define a list of layout file types for which the screen preview should not be included in the layout file, e.g.
<"TIFF", "JPEG", "..CT">
FailureInfoLayouts <boolean:TRUE>
Defines whether a standard default layout (indicating the error) should be created in case of layout generation failure.
CrossPlatformLayout <boolean:FALSE> (see also -P -M options above)
Defines whether the created layouts have to be usable on
all supported platforms (e.g. all relevant data are stored
in the data fork). If the high-resolution file has a resource,
the layout file may have a resource too, when stored on a
Macintosh volume. If the high-resolution file does not
have a resource, the layout generation depends on the CrossPlatformFiles option described below. In the
DOS name space under PCShare, a resource will only be created if the "root" directory (mount point) has an underlying ".rsrc" directory.
Compare EtherShare Admin!
CrossPlatformFiles <boolean:FALSE>
Defines whether a resource fork should be created or not (see also CrossPlatformLayout option above).
Thumbnail <boolean:TRUE>
Include Macintosh icon in layout file (not applicable to cross-platform files).
UseProfile <boolean:TRUE>
Process color matching for layout files, if the high-resolution files have tagged ICC-profiles.
IncludeProfile <boolean:FALSE>
Include profile in layout as value (copy) instead of a reference. Only applicable if UseProfile option is set.
ImageProfilePaths <string list:None>
When creating layout files which are not yet tagged with ICC-profiles, this parameter can be set for temporarily attaching a profile to the image while generating the layout. Each string has the format <color space>=<Pathname> and defines the ICC-profile path name for the given color space.
SpotToEps <boolean:TRUE>
Causes the creation of EPSF layout images if a high-resolution raster image contains extra colors like spot colors. This allows placement of the layout file in most DTP applications.
DcsCompatible <boolean:FALSE>
Lets the program generate DCS1 or DCS2 EPSF layout images if the raster-based high-resolution images include colors other than Black&White or Grayscale.
KeepDcs <boolean:TRUE>
This option lets EPSF layout images of DCS1 or DCS2 high-resolution images keep the DCS structure. Changing the option to FALSE will lead to simple EPSF layout files.
SpotToProcess <boolean:FALSE>
Forces layout images to always contain only the default inks of the layout color space. Spot colors defined in a high-resolution image will be converted into the appropriate values of the layout color space.
MultiInkSeparationColors <string list:None>
This option defines the names and order of the color components when using Multichannel ICC-profiles (5 or more channels). This option has to be specified if converting to the "Multi" color space. Usage of the "Multi" color space requires the use of ICC-profiles. For (future) ICC-profiles that include the names of the color components, this option will become obsolete.
ForceMatch <boolean:FALSE>
This option forces ICC color matching while creating layout images even if no color matching would be applied by the "layout" or "opisrv" default behavior.
KeepImageCompression <boolean:FALSE>
This option forces the layout image to be compressed the same way the high-resolution file is compressed. This option will only be recognized if the high-resolution file and the layout image have the same file format.
Fast <boolean:FALSE>
This option switches the "opisrv" and "layout" programs into a fast layout mode. Using this mode will stop ICC color matching and define a fast picking algorithm for downsampling.
LayoutComment <string:"Helios OPI 2.1 layout of %T file \"%f\", size %k kbytes, created by %C" >
This option overrides the default comment field for layout images. The parameter is a string which will be placed in the comment section of a Macintosh file and can be viewed in the Finder using the Get Info dialog box. This string may include the following symbols:
%f file name of the original image.

%b size (bytes) of the original image.

%k size (kilobytes) of the original image.

%m size (megabytes) of the original image.

%t file type of the original image printed as
4 byte signature.

%c file creator of the original image printed as
4 byte signature.

%T file type of the original image printed as clear text
if possible (otherwise printed as with %t).

%C file creator of the original image printed as
application name if possible (otherwise printed as
with %c.
LayoutLabel <uint32:0>
This option sets the label color of a layout file. An integer number between 1 and 8 reflects the Macintosh Finder label colors, "0" turns this option off.
FailureComment <string:"Failed Helios OPI 2.1 layout file of \"%f\" ">
This option defines the comment string for a failed layout image (see also LayoutComment).
FailureLabel <uint32:0>
This option gives the label color of a failed layout image (see also LayoutLabel).
ColorAliases <string list:None>
This option defines mappings from application or localization dependent color names to the names used in "OpenImage". String format is <ColorName>=<ColornameAlias>.
Signature <string:None>
This option defines a signature filter configuration file. See "HELIOS OpenImage Software Developer Kit" for more details.
RssLimit <uint32:0>
This parameter controls resource usage of hardcore memory. The specified value limits the maximum use of hardcore memory in kilobytes. Zero means no limits.
Facility <string:"daemon" (or "user")>
This parameter controls the error and warning messages
log facility. The string is naming the log facility. The default value depends on the program and is daemon for the "opisrv" program and user for the "layout" program. Valid names are listed below (please note that some names are not supported on every architecture):
"audit", "sat", "auth", "security", "cron", "daemon", "kern", "lpr", "mail", "news", "syslog", "user", "uucp", "local0", "local1", "local2", "local3", "local4", "local5", "local6" and "local7".

Note: The special preferences below are only recognized by the "layout" program:

RemoveAfterConvert <boolean:FALSE>
This option is only meaningful when using the -l option of the "layout" program. If set to TRUE, files converted using the -l option will be removed after successful conversion.
SkipLikeLayout <boolean:FALSE>
This option is only meaningful when using the -l option of the "layout" program. If set to TRUE, files converted using the -l option will be skipped as "layout" in standard mode would skip them.
EventPort <uint32:2002>
This parameter controls the TCP/IP port number where to send OPI event registration requests. If this parameter is not set, "layout" uses the port number given by the TCP service "OPIEvent". If this port number does not exist, it uses the default port number 2002.

Note: The special preferences below are only recognized by the "opisrv" program:

NiceIncr <uint32:10>
This parameter controls CPU resource usage. The value specifies the nice increment for the "opisrv" program.
EventPort <uint32:2002>
This parameter controls the TCP/IP port number where to listen for OPI event registration requests. If this parameter is not set, "opisrv" uses the port number given by the TCP service "OPIEvent". If this port number does not exist, it uses its default port number 2002.
MaxProc <uint32:Number of processors>
This parameter controls the maximum number of "opisrv" processes that may run simultaneously. Default is the number of physically available processors.
HoldTime <uint32:30>
This parameter controls the time that passes between an OPI save event and the starting of layout generation. Default is 30 seconds.
8.3.3 Examples
Example 1
If you want to induce the generation of layouts for a specific folder (e.g. "testimgs") manually without changing any preferences or defaults you may just call the "layout" program as shown below:
helios$ /usr/local/es/layout -v /opi-test/images
/testimgs/*

You do not need the -o statement as long as you do not want to change any parameters, -v may be used to display the progress of layout generation.
Example 2
If you want to create from a TIFF-CMYK high-resolution image without a clipping path a JPEG-RGB layout you have to induce the "layout" program to convert CMYK color data into RGB and the TIFF file format into JPEG. In that case you have to change the PrintColor parameter because the default for PrintColor is CMYK. Furthermore, you have to use the RasterImageType option to create a JPEG layout file. The complete command line is given below:
helios$ /usr/local/es/layout -v -o PrintColor=RGB
-o RasterImageType=JPEG /opitest/images/testimgs
/cmyktif.tif

8.4 The "opitouch" program
The "opitouch" command can be used to create OPI-layout files from high-resolution images which can be done with the "layout" command, as well. The benefit of "opitouch" is that it uses the same "opisrv" queue and global OPI-parameters as the OPI folder options for layout generation. This is the same as saving images from a Macintosh or Windows client using EtherShare and PCShare.
opitouch [-h host][-s service][-dr] files_or_direcory_path names
"opitouch" is the UNIX version of the Macintosh program "touch" allowing virtual touching of image files and therefore causing automatic OPI layout generation. This program is a stand-alone utility which is not bound to an EtherShare license or installation, and therefore can be used on any system of the architectures supported by HELIOS EtherShare OPI. It allows touching single files, all files of a directory, or even a complete directory tree on the local or remote system. Since "opitouch" does not recognize the types of the files specified, touching a non-image file may cause system error messages and failure info layout files.
Unless otherwise specified, "opitouch" touches files on the local host.
-h
Allows you to select a remote host by name or its dotted decimal internet address. You may only gain access to EtherShare OPI server systems with appropriate IP access control setup done with the EtherShare Admin program using the IP-access dialog.
The default service used is - if defined - OPIEvent or its default value 2002.
-s
Allows you to select the OPI event service port of the "opisrv" by name or numeric port number. Specifying a service that is served by the system by any other but "opisrv", this may cause "opitouch" to hang.
Unless otherwise specified, "opitouch" assumes that the path name arguments refer to plain files. In this case directories will be ignored by the contacted "opisrv".
-d
Requires all path names to be directories. In this case all plain files contained in the specified directories will be touched. Subdirectories will be skipped.
-r
Requires all path names to be directories. In this case all plain files and subdirectories contained in the specified directory path names will be touched.

Note: Be aware that the usage of this option may cause heavy system load on the OPI server system.

All files and directories have to be specified with their absolute path names beginning with a "/".
8.5 The "psresolve" program
The "psresolve" program acts like a printer driver, like e.g. "papif". Instead of sending the PostScript output to the network, "psresolve" passes all PostScript data to "stdout" which can be redirected into a file or piped into an application.
Usually, new output parameters must be set using the EtherShare Admin program on any Macintosh client. The "psresolve" program lets you set printer interface OPI-options manually on the UNIX server for one single print job. Specifying options to "psresolve" overrides the settings in the preference data base for the specific spooler (psresolve [options] [SpoolerName]).
In the following, we list the parameters that may be set with "psresolve" and then - at the end of this chapter - give you an example that may be used for a specific workflow.

Note: Parameters that can also be specified in one of the EtherShare Admin dialogs will be marked by "Compare EtherShare Admin!".

8.5.1 Syntax conventions
The "psresolve" parameters behave like the "layout" parameters. So, for behavior and syntax conventions you may read chapter 8.3.1 "Syntax conventions".
8.5.2 List of parameters
The following printer interface related preferences may be entered as command line options using the
-o Preference=Value syntax.
OpiEnabled <boolean:FALSE>
This option turns OPI functionality on or off. If it is set to TRUE, OPI image replacement is enabled.
Compare EtherShare Admin!
ImageSearchPaths <string list:None>
Specifies a list of path names where to search high-resolution images during image replacement, in case they cannot be found in the standard locations.
Compare EtherShare Admin!
ImageIDsearch <boolean:TRUE>
This parameter - if it is set to TRUE - enables the use of the EtherShare desktop data base to locate moved image files.
PrintDraft <boolean:FALSE>
This parameter - if it is set to FALSE - ensures that layout images are replaced by the corresponding high-resolution images for output. Otherwise, the layouts will be printed.
CheckFonts <boolean:TRUE>
If this parameter is set to TRUE all fonts used in the document will be checked before printing. Every missing font will be reported and this will stop the print job.
Compare EtherShare Admin!
CheckImages <boolean:TRUE>
If this parameter is set to TRUE all images placed in the document will be checked before printing. Every missing image will be reported and this will stop the print job.
Compare EtherShare Admin!
CheckICCProfiles <boolean:TRUE>
Specifies whether existence of ICC-image-profiles has to be verified before printing.
Compare EtherShare Admin!
CompatCheck <boolean:TRUE>
Specifies whether special PostScript setup has to be included to avoid application specific problems during printout. This is necessary for FreeHand 3.1, PageMaker 5 and QuarkXPress 3.0.
ResolveAll <boolean:FALSE>
If this parameter is set to TRUE all images will be replaced during printout. Otherwise only layout images are resolved.
Compare EtherShare Admin!
KeepInfo <boolean:TRUE>
Specifies whether in case of resolving an already resolved PostScript job, the use of fonts and other resources should still be accounted.
DefaultPrinterProfile <string:None>
This parameter specifies the path name of the default ICC-profile describing the printing device. Can be overridden using the HELIOS ColorSync 2 XT.
Compare EtherShare Admin!
DefaultProofProfile <string:None>
This parameter specifies the path name of the default ICC-profile describing the proof device. The string will only be recognized if a default printer profile is set. Can be overridden using the HELIOS ColorSync 2 XT.
Compare EtherShare Admin!
DownSampling <boolean:FALSE>
This option - if it is set to TRUE - allows downsampling of images to a given output resolution. The value that has to be used for printing is specified by the Resolution parameter below.
Compare EtherShare Admin!
FixedSampling <boolean:FALSE>
This option allows to fix the downsampling resolution (see Resolution parameter below) to the given value. Usually, if this parameter is set to FALSE, the output resolution is adjusted to the image resolution if the image resolution is smaller. When setting this parameter to TRUE the printer interfaces will use the given Resolution as is for downsampling. This may cause upsampling of images with resolutions smaller than the given one. This parameter is only meaningful when setting the DownSampling parameter to TRUE.
FastDownSampling <boolean:FALSE>
This option controls the downsampling algorithm. By default, a bilinear algorithm is used. If you set this option to TRUE you switch to a fast picking algorithm. This parameter is only meaningful when setting the DownSampling parameter to TRUE.
Resolution <double:0.0>
This option controls the resolution of downsampled images. Zero induces the software to use the default resolution of the printing device as specified in the queue's PPD file. This parameter is only meaningful when setting the
DownSampling parameter to TRUE.
Compare EtherShare Admin!
ProcessColorspace <string:"CMYK">
This option sets the color space used while printing separations. The default is CMYK for a four color print process. Spot colors are not affected by this parameter. Valid color spaces are "CMYK" and "Multi". If you set the string to "Multi" you have to define the names and order of the color components. Furthermore, the usage of the "Multi" color space requires the use of ICC-profiles. For (future) ICC-profiles that include the names of the color components, this option will become obsolete. Please note that the value you choose for this option can be overridden by the printer profile you have selected using ColorSync 2 XT or using the
DefaultPrinterProfile option.
ProcessInks <string list:"Cyan","Magenta","Yellow","Black">
This option controls, together with the ProcessColorspace option, the names of the process inks used for separations. Spot colors are not affected by this parameter.
CompositeColorspace <string:"CMYK">
This option sets the color space used while printing composite. The default is CMYK. Setting this option to None causes all color images in a print job to be kept and printed in their original color space. This applies to CMYK, CIE- Lab and RGB images only. Valid strings are "CMYK", "RGB", and "CIELab". Please note that the value you choose for this option can be overridden by the printer profile you have selected using ColorSync 2 XT or using the DefaultPrinterProfile option.
CompressPostScript <string:None>
This option selects a compression mode for images while being printed. JPEG and Compress are currently supported.
MaxLowResolution <double:72.0>
When printing layout images, EtherShare OPI 2.1 is able to scale down a high-resolution image to layout quality on the fly if the layout image cannot be found. This parameter controls the maximum resolution used for printing these transformed images.
IgnoreMissingLowRes <boolean:TRUE>
This parameter is used to specify whether non-existing layout images should be ignored when printing layout quality.
TemporaryTagging <boolean:TRUE>
This parameter enables the use of the ICC info files while printing images. If it is set to TRUE, every non-tagged image will be temporarily tagged during printing provided that the ICC info file specifies tagging for that kind of image.
IgnoreUntagged <boolean:TRUE>
This parameter controls whether non-tagged images should be ignored when printing to an ICC color matched queue.
ScitexApr <boolean:FALSE>
This parameter - if it is set to TRUE - tells EtherShare OPI not to resolve OPI comments if printing a PSImage file to an APR-aware RIP.

Note: The following two parameters will usually be specified when setting up EtherShare. They may, however, be relevant to EtherShare OPI as well and can therefore be set as preferences, too.

IgnoreResolveOpts, IgnoreProcsetResolveOpt, IgnoreFontResolveOpt,
IgnoreIncludeResolveOpt and IgnoreOpiResolveOpt <boolean:FALSE>
When printing from an EtherShare spooler to a second EtherShare spooler, print jobs will usually not be resolved a second time. Specifying one or more of these options for the second spooler re-enables resolving of fonts, procsets, included files or OPI comments (IgnoreOpiResolveOpt).
ExtendedInfo <boolean:TRUE>
This parameter is valid for EtherShare and EtherShare OPI. It enables explanatory accounting. If it is set to TRUE, the accounting file will include e.g. the OPI image replacement list.
8.5.3 Example
Imagine you want to print a document using the
CompressPostScript option. For that purpose, you have to change the default setting for this particular print job using the "psresolve" program. The complete procedure is described below:
First of all, you have to set up two different printer queues using the EtherShare Admin program. One queue (e.g. "real_printing") is to be used for printing to an output device and the other one (e.g. "print_to_disk") is to be used for printing to a PostScript file (spool only).
Make sure that Spool only has been activated for the "print_to_disk" queue (EtherShare Admin Printer menu) and then print to this queue from your layout application.
Then, on your UNIX server, change to the spool directory that now contains your print job
(e.g. "/usr2/spool/print_to_disk"):
helios$ cd /usr2/spool/print_to_disk
Start the "psresolve" program, enter the parameters you want to use, and specify the queue name, the input file name (e.g. "your_print_job") and the output file name:
helios$ /usr/local/es/psresolve -o
CompressPostScript=LZW print_to_disk
<your_print_job>your_print_job_output

Finally, you may send the file "your_print_job_output" to your Spool & Print printer queue for output:
helios$ lpr -Preal_printing your_print_job_output
Please note that the "real_printing" printer queue will not resolve your print job once again. The job will be printed according to the settings that had been specified for the "print_to_disk" queue using the EtherShare Admin program and/or according to the parameters set by the
psresolve command line.
8.6 The "hirespath" program
The "hirespath" program is a program which resolves an OPI image file name to the appropriate high-resolution UNIX path name. It also maps client (UNIX, Mac or PC) file names to UNIX path names. "hirespath" receives the low-resolution file name or reference as a command line argument or on "stdin". It prints the file name or reference of the high-resolution image on "stdout". It recognizes all known OPI printer interface parameters. "hirespath" may also check a complete PostScript job for OPI references and give a detailed report on "stdout". If checking a PostScript job, "hirespath" receives a file name of the job to check as a command line argument or uses "stdin" as source.
The program recognizes the environment variable "ESDIR" to locate the EtherShare installation and also the variable "PCDIR" to locate the PCShare installation in case they are not installed under the default locations "/usr/local/es" and
"/usr/local/pcshare".
8.6.1 Possible commands and return codes
"hirespath" always understands the arguments:
-e
enable explanatory error messages of unresolved references
-o
set an interface option as known from psresolve
hirespath [-P <printer>] [-d <pathprefix>] [<loResRef>] or
hirespath -j [-P <printer>] [<postScriptFileName>] or
hirespath -m [-d <pathprefix>] [<clientName>]
with
<printer>::
The name of a specific printer queue. "hirespath" will then access the OPI parameters for that printer queue.
<loResRef>::
File name or reference of the low-resolution image. This name is taken from the OPI comment without any modification. It can be in the format of the client's file system (i.e. Mac, PC, UNIX, etc.). The file name is quoted to allow for spaces. If <loResRef> is omitted, "hirespath" will read <loResRef> from "stdin".
<clientName>::
File name of an UNIX, Mac, or PC file. If <clientName> is omitted, "hirespath" will read <clientName> from "stdin".
<pathprefix>::
An UNIX directory path name which precedes the
<clientName>. If this parameter is supplied, <clientName> has to be a file name without directory specification. <pathprefix> does not require a slash at the end.
<postScriptFileName>::
Name of a file containing a complete PostScript print job.
"hirespath" returns the name or reference on "stdout", and returns an integer to indicate the result of the operation:
result: <hiResRef>
with:
<hiResRef>::
File name and path of the high-resolution image. Nothing is printed on "stdout" if the program cannot resolve
<loResRef>. The high-resolution file location has the format of the native file system on which "hirespath" is running.
or
result: List of <opiRef> references, each on a single line
with:
<opiRef>::
<code>\t(<Reference>)\t(<resolvedName>)
<code> is one of the codes listed below, <reference> is the OPI reference found in the PostScript file and
<resolvedName> is the name of the replaced image.
<resolvedName> may be empty. The names are quoted in
( ) using the ADSC quoting conventions.
or
result: <UNIXPath>
with:
<UNIXPath>::
Mapped UNIX Path name of <clientName>.
The return code of the program can be any of the following:
0 Success; <loResRef> was successfully resolved into <hiResRef>, and the high-resolution file is accessible. <hiResRef> is printed on "stdout".
1 Error; an (UNIX) error occurred. An explanatory error message is printed on "stderr". Nothing is printed on "stdout".
2 Error; <loResRef> cannot be resolved into <hiResFile>. If the theoretical <hiResFile> is reasonable, it is printed on "stdout".
3 Error; <loResRef> can be accessed but is a <hiResRef> and the parameter resolveall is not set. If the theoretical <hiResFile> is reasonable, it is printed on "stdout".
4 Error; <loResRef> can be accessed but is not a valid layout file. Nothing is printed on "stdout".
If the option -j is specified, "hirespath" instead will check the PostScript job for all OPI-references and check each reference as described above. On exit a report will be printed on "stdout" as list of <opiRef>.
The return code of the program can be any of the following:
0 Success. All OPI references could be resolved.
1 Error; an (UNIX) error occurred. An explanatory error message is printed on "stderr". Nothing is printed on "stdout".
2 Error; one of the OPI-references could not be resolved.
If the option -m is specified, "hirespath" instead will map a client file name <clientName> to an UNIX path name
<UNIXPath> without OPI resolving. This works for UNIX, Mac, and PC client file names. There are a few restrictions:
The return code of the program can be any of the following:
0 Success; <clientName> was successful mapped into <UNIXPath>, and the file is accessible. <UNIXPath> is printed on "stdout".
1 Error; An (UNIX) error occurred. An explanatory error message is printed on "stderr". Nothing is printed on "stdout".
2 Error; <clientName> cannot be mapped into
<UNIXPath> or <UNIXPath> is not accessible. If the theoretical <UNIXPath> is reasonable, it is printed on "stdout".
8.6.2 Example
The following example shows the command you have to enter if you want the program to return the UNIX path name of a high-resolution image for a given layout image in a particular print job:
sgi$ hirespath -Plw EtherShare:Texel:layouts:branding.tif
The server will return the UNIX path name:
/usr/ethershare/Texel/branding.jpg
8.7 The "oiinfo" and "oiimginfo" programs
8.7.1 The "oiinfo" program
The "oiinfo" program allows you to prompt a list of all "OpenImage" plug-ins that are installed and available with EtherShare OPI 2.1. The program, by default, searches the directory "$ESDIR/OpenImage/Plug-ins". Every file in this directory will be checked to find out whether it is a correct plug-in and - if so - what type of plug-in it is.
The program returns information about the name and version of the respective plug-ins.
Example:
helios$ /usr/local/es/oiinfo
Found Plugin at /usr/local/es/OpenImage
/Plug-ins/opibase.so:
Magic is HeliosOpenImage.

Version is 1.0.
Module is HeliosBase
Module description is "EtherShare OPI base functionality". Module version is 1.0.
Furthermore, for every correct plug-in, the "oiinfo" program lists all included "OpenImage" managers.
Example:
Modtoc:
Sectiontype 1: HeliosUnixFs (Helios Unix Fs mgrs)
Sectiontype 1: HeliosNativeFspec (Helios Native
Fspec mgrs)

Sectiontype 1: HeliosESFspec (Helios EtherShare
Fspec mgrs)

Sectiontype 1: HeliosPCSFspec (Helios PCShare
Fspec mgrs)

Sectiontype 1: HeliosAdjust (Helios Adjust
mgrs)

Sectiontype 1: HeliosTiff (Helios TIFF mgrs)
Sectiontype 1: HeliosJPEG (Helios JPEG mgrs)
Sectiontype 1: HeliosEPSF (Helios EPSF mgrs)
Sectiontype 1: HeliosScitexCT (Helios Scitex CT
mgrs)

Sectiontype 1: HeliosAdobePhotoShop (Helios
Adobe PhotoShop mgrs)

Sectiontype 1: HeliosPICT (Helios PICT mgrs)
Sectiontype 1: HeliosMacintoshIcons (Helios
Macintosh Icon mgrs)

Sectiontype 1: HeliosAdobePath (Helios Adobe
Path mgrs)

Sectiontype 1: HeliosColor (Helios simple
Color mgrs)

After that, you will get a list of "OpenImage"-registered managers. This specific list provides information about which managers are available for use.
Example:
Manager type : Color
Predicate : 17530
Version : 1
Quality : 127
Registered key is
Scope : (00269) HeliosColorAll
Filesystem : (00000) *
Filespec : (00000) *
Filecreator : (00000) *
Filetype : (00000) *
Filetype Extension : (00271) RGB
Manager supports raster images.
Manager supports the following capabilities:
Capability 1:
Supports colorspace mapping:
Maps colorspace from RGB to Bilevel.
Supports image valuating.
Supports inkset change:
Accepts imagedata with any inkset.
Produces imagedata with any inkset.
Supports bpc change:
Accepts imagedata with 8 bpc.
Produces imagedata with 1 bpc.
...
Capability 4:
Supports colorspace mapping:
Maps colorspace from RGB to CMYK.
Supports image valuating.
Supports inkset change:
Accepts imagedata with any inkset.
Produces imagedata with any inkset.
Supports bpc change:
Accepts imagedata with 8 bpc.
Produces imagedata with 8 bpc.
-f (registered fonts)
With this option specified, information about all registered fonts are given out.
8.7.2 The "oiimginfo" program
With the "oiimginfo" program you can prompt various information about single image files.
There are three different possible parameters, they are optional:
oiimginfo [-v VerboseLevel] [-e]
[-o prefix_for_export] files

-v (VerboseLevel (0 - 9))
The higher the Verbose level, the more detailed the information you will receive. Default is 0. With level 9 you request all available image data. This level should only be used after careful consideration.
-e (Export Image Data)
With this option, all objects that can be found in an image file are exported to files. Raster data are exported "as is". The names of the export files are created using the prefix that is entered with the -o option, followed by the object ID, the numeric object type, quality, and access method.
-o (prefix_for_export)
See explanation of the -e option above.
Example:
If you want to check a specific image file (e.g.
"flowers.tif") to find out whether this image is already tagged with an image profile, you may proceed as follows:
Change to the directory that contains the image file and then enter the following command:
helios$ /usr/local/es/oiimginfo -v 1 flowers.tif
Verbose Level: 1 Info for flowers.tif:
Creator: 8BIM
File type: TIFF (Tagged Image File Format)
Extension: 3.0
Reference ID: (None)
Itoc manager 'HeliosTiff' used with registered key:
Fstype: (None)
Fspec: (None)
Creator: 8BIM
Type: TIFF
Extension: 3.0
File contains 4 objects:
Object 1:
Id: 1
Type: Image
Quality: Print
Main access method: Raster
Image type: TIFF
Type extension: 3.0
Reference ID: (None)
Object may be handled by any image manager
by using binary access of region 1 from L-File 1 (see below) Image manager 'HeliosTiff' used with registered key:
Fstype: (None)
Fspec: (None)
Creator: 8BIM
Type: TIFF
Extension: 3.0
There is one L-File assocciated to the object:
L-File 1:
Filename: flowers.tif
File type: TIFF
Creator: 8BIM
File Id: 490
Comment:
Has custom icon resource
File is handled by fspec manager
'HeliosNativeFspec' with registered key:

Fstype: unix
Fspec: native
Creator: (None)
Type: (None)
Extension: (None)
GFX information of this object:
Colorspace: CMYK
Colorspace dependent info:
Dot range: [255 0]
Compression: None
Minimum is low color value
Image data is organized interleaved
Image data must be accessed with all channels
simultaneously

Image data may be accessed in any order
Image data must be accessed as
complete scanlines or
tiles Rows: 394

Columns: 394
Depth: 1
X resolution: 200.000000 dpi
Y resolution: 200.000000 dpi
Size per unit: 1576 bytes
Bits per channel: 8
Number of channels: 4
There are 4 inks defined:
Ink 0:
Name: Process `Cyan'
Opacity: 100.00 percent
Reference ID: (None)
Ink 1:
Name: Process `Magenta'
Opacity: 100.00 percent
Reference ID: (None)
Ink 2:
Name: Process `Yellow'
Opacity: 100.00 percent
Reference ID: (None)
Ink 3:
Name: Process `Black'
Opacity: 100.00 percent
Reference ID: (None)
There is one ICC profile connected:
ICC profile 1:
Profile pathname: ICC-Profiles:Printer:HELIOS:
Euro 2.6 UCR-370

Profile creation: 19960627111511
Object 2:
Id: 1
Type: Mask
Quality: Print
Main access method: AdobeMask
Image type: TIFF
Type extension: (None)
Reference ID: (None)
.
.
.
Information about the image profile are bold in the above example.

© 2002 HELIOS Software GmbH