Print Server Presentation and Operation Guide

The SAFE X3 print server processes the print requests coming from the different entities of one or more SAFE X3 solutions in a concurrent manner. Depending on global system availability, each print request saved at the server level is addressed in a dedicated print process. The entity that has submitted a request can ask the print server to either recover its current status, modify certain attributes, or delete it at any moment.

The following table shows the different sections of this document:

Installation / UninstallationConfigurationServer startup / stopMonitoringTechnical architecturePrinter management and error listsSupport and troubleshooting

Installation / Uninstallation

Prerequisites

Before starting the installation of a print server, check the configuration requirements.

Installation

The installation program allows you to place the executable files, libraries, and other resources necessary for the correct execution of the print server in the folder of your choosing. The following tree structure is then created in the installation folder:

Uninstallation

Before uninstalling the print server, you first need to unpublish the SAFE X3 solutions attached to the print server by using the SAFE X3 administration console. You can then go to the control panel and click Add/Remove programs.

Configuration

Like the other Server components of an X3 solution, the print server is configured using the Administration Console. Users should not manually modify the configuration files produced and updated by the administration console.

For more information, refer to the Administration Console documentation.

Startup setup

These parameters allow the configuration of the technical execution environment of the print server. They are stored in the adxeditionserverconfig.xml file in the Config folder. They include:

Example adxeditionserverconfig.xml:
CODECODE CODExml<AdxSrvImp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><config cap="Default configuration" id="DEFAULT"><general AdxSolPrf="DEFAULT" lang="ENG" log="0" port="1890" restartrpts="1" OdbcUserDSN="0" prefixname="Safe_X3_SE_V2" prefixtitle="Safe_X3_SrvEdt_V2_EDT_" description="Sage X3 PrintServer" user="FranckDep" pwd="" hostname="" installPath="" /><jobs max="200" purgetime="150" vpalloc="40" /><log number="3" size="2000000" /><processes killtime="20" max="5" min="1" maxjobsbyprocess="10" /></config></AdxSrvImp>

Parameters for the description of the attached SAFE X3 solutions

The print server can only process print requests coming from a SAFE X3 technology application that belongs to a published solution. The parameters used to describe the SAFE X3 solutions attached to the print server are stored in the adxeditionserversolutions.xml file in the Config subfolder. This file is updated by the SAFE X3 administration console after the publication of a solution.

The tree structure of the file describes a solution profile. This notion is reserved for future use. Currently, only the "ADMIN" profile code is used.

Each profile has 1 to n solutions, and each solution contains:

Advanced settings

To be able to run a print server Windows service with a non-administrator user, you can add or modify the REG_DWORD registry entry with a suitable value:

To be able to turn on debug mode for the Crystal Report U212Ltext.dll embedded functions, you can add or modify the REG_SZ registry entry with a suitable value :

Server startup / stop

A print server can be started in "Console" mode or in "Windows service" mode. The function of the server is strictly identical in both modes. The only difference is that in "Console" mode, server activity is displayed on the screen in the Windows panel.

During the first server configuration from the SAFE Administration Console, the Console automatically creates a "Windows Service", associated with the server by default. You can start and stop this service from the administration console. You can also use standard tools in the Windows system to administer and control the service.

Note that the print server startup options described below are available both in "Console" and "Windows Service" modes.

Ex:

AdxSrvImp.exe /noservice /d /verbose /noodbc

Launching PrintServer


Monitoring

You can follow the server activity by consulting the activity log file, the Windows Events Viewer, or by accessing the "Print Monitor" function available in each SAFE X3 folder, even if the server has not been started with the "/d" log file option.

Monitoring window

Connect to the print monitor function (PSIMP) in Classic mode to display this window. Enter the name and port of the print server to display data related to the server activity.

PSIMP function

From this screen, you can:

Activity log file and exception log file

The activity log file records "saving", "submission", "termination", and "deletion" events related to a print request. The exception log file records all errors and anomalies detected by the server.

These log files are activated and set up by the server administration console. Note that the exception log file automatically inherits the setup of the activity log file. Refer to Configuration for more information.

Windows Events Viewer

All the information, warnings and error messages issued by the print server or one of the print processes are displayed in the Windows Events Viewer.

In case of incidents, see the Events Viewer to establish a detailed diagnosis (AdxSrvImp and AdxImp sources).

Technical architecture

The diagram below shows the simplified technical architecture of the print server.

Technical architecture

Principles

The print server is a "multiprocessing" server which maintains and controls a pool of specialized processes. The production of Crystal Report reports is the only function of these processes. The server manages the preparation and formatting of all the information necessary for the correct production of printouts and the execution of the print processes.

The main logical components of the server are described below:

Printer management and error lists

Follow the rules below so that the print server can carry out the printing operation correctly:

Error codes and messages

The message associated with an error code refers to the following:

The error codes generated by the print server are referenced below:

Print server error codes

CodeExplanation
251Waiting time exceeded when an attempt is made to access a shared memory segment.
252An attempt to access a shared memory segment was stopped.
253Failure during an attempt to access a shared memory segment.
254Unable to release the synchronization object to access a shared memory segment.
255Unable to write data in a shared memory segment.
256Unable to read data in a shared memory segment.
257Unable to delete data in a shared memory segment.
258Unable to recover the reference associated with the print request number.
259Too many requests in the pending request stack.
260Error during the submission of a file transfer request.
261The SAFE X3 solution description has not been found in the solutions description file.
262The connection to the SAFE X3 file server has failed.
263Unable to open the configuration file of the print server.
264Error during the initialization of the print server configuration file.
265Error during the analysis of the print server configuration file.
266The total length of the execution parameters for the report is too large. Contact the system administrator.
267Error during the storage of the execution parameters of the report. No group memory available.
268Error during the reading of the execution parameters for the report.
269Error during the deletion of the execution parameters for the report.
270Error during the memory transfer of the execution parameters for the report.
271Unable to launch a print process.
272The initialization context for a print process is absent or has failed.
273The print request could not be submitted (request not ready).
274The print request could not be submitted (unable to activate the thread).
275Error generated by the print engine.
276The command line option is unknown.
278Unknown error.
279Error upon log file initialization.
280Error upon opening the "Recovery" files.
281Unable to recover a Web preview request.
282Unable to recover an already faulty request.
283Error upon reading the "Recovery" files.
284Error upon saving a "Recovery" request.

Error codes in the cache management module

CodeExplanation
181Root folder for the cache is not found.
182"Application" folder not found.
183Unable to access the registry database.
184Sage X3 server type unknown.
185Transfer type not supported.
186File type unknown.
187Error upon access/transfer with SAFE X3 (SADFSQ) file server.
188Error during the conversion of a character string in Unicode.
189Error during the creation of the cache structure.
190The current session of the cache manager is not initialized.
191Error on opening a local file.
192The file server requested does not exist.
193Unable to open the local file.
194Unable to open the server file.
196The local file requested does not exist.
199Unable to establish a connection with the distant server.
200Error in the reading/writing of the file.
201Unable to compare the Timestamps.
202Error during the conversion of a Timestamp to the system date.
203Error upon deletion of an "Archive" type folder.
204Error upon restoration of an "Archive" type folder.
205The server archive files could not be found.
239Unknown error.

Error codes for the Windows service management module

CodeExplanation
361Unable to open the "Service Control Manager".
362Unable to open the requested service.
363Unable to delete the service.
364Unable to stop the service.
365Unable to stop the service. Number of attempts exceeded.
366Unable to start the service.
367Unable to start the service. Number of attempts exceeded.
368Unable to perform the operation. The service is already started or in the process of being started.
369The service already exists.
370Unable to create the service.

Error codes of the SAFE X3 solutions management module

CodeExplanation
231Unable to determine the installation folder for the 'SAFE X3 Solutions' file.
232Unable to open the 'SAFE X3 Solutions' file.
233Unable to start the analysis of the 'SAFE X3 Solutions' file.
234An error has occurred during the analysis of the "SAFE X3 solutions" file.

Error codes in the ODBC management module

CodeExplanation
311Unable to determine the installation folder for the 'SAFE X3 ODBC Description' file.
312Unable to open the 'SAFE X3 ODBC Description' file.
313Unable to start the analysis of the 'SAFE X3 ODBC Description' file.
314An error has occurred during the analysis of the "SAFE X3 ODBC Description" file.
315The driver description has not been found in the "SAFE X3 ODBC Description' file.
316Error during the deletion/creation operation for the ODBC data sources.
317Error during the creation of an ODBC data source.
318Error during the call to an ODBC configuration API.
319Unable to open the "TnsNames.ora" file.
320Unable to read the "TnsNames.ora" file.
321Unable to update the "TnsNames.ora" file.
322Unable to recover the installation information for the Oracle*Net client.
323Unable to find the Oracle*Net "Tnsnames.ora" configuration file.
324Unable to allocate a temporary file to backup the Oracle*Net "Tnsnames.ora" file.
325Unexpected error during the configuration of an ODBC source.
326Error during the call to a Sql ODBC API.
327The connection test for the ODBC data source has failed.
328The description parameters for the source have errors or are incomplete.
329Unable to create the ODBC data source.
330The data source specified does not exist.

Support and troubleshooting

Printer management

The following rules must be observed for the printServer to be able to print correctly:
- In case the Print server is started in "Windows Service" mode, it is absolutely necessary to specify a boot account other than the "Local System" account so that the Publisher can address one of the printers in your organization.

By default, NO printer is attached to the "Local System" Windows account.
- the user account under which the PrintServer has been started
(in "Console" mode or in "Windows Service" mode) must at least have a printer configured.
- The Print server can only send printers "visible" and "accessible" by the user account under which the server was started
   (whether in "Console" mode or "Windows Service" mode)
- In case of printing with generation of a document in PDF format,
   document size settings will be inherited from the default printer paper size associated with the user account under which the Print Server was started (whether the PrintServer is running in "Console mode" or "Windows Service" mode).

Cannot detect previous installed version after a setup crash

When a PrintServer setup crash, it sometimes cannot detect the previous version anymore.
We need to restore registry entries after a setup crash :
copy and adapt patch to your config, and put this text in a file named restore.reg for example.

Check the contains, and Execute the file.


Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Sage Safe X3 V2 Print Server]"DisplayName"="Sage Safe X3 V2 Print Server""UninstallString"="\"C:\\Program Files\\Java\\jre1.8.0_77\\bin\\javaw.exe\" -jar \"D:\\Sage\\SafeX3\\PRTSRV\\uninstaller\\uninstaller.jar\"""DisplayVersion"="EDT.226""Publisher"="Sage""DisplayIcon"="D:\\Sage\\SafeX3\\PRTSRV\\Uninstaller\\UninstallerIcon.ico"


No installed Printer/ No hay impresoras instaldas / Pas d'imprimante installée

In case the Print Server is started in "Windows Service" mode,
it is essential to specify a startup account different from the "Local system" account so that the print server can address one of the printers in your organization.

By nature, no printer is attached to the Windows account "Local System".

The user account under which the PrintServer has been started (in "Console" mode or in "Windows Service" mode)
must at least have a printer configured.

Activation of the log files

All errors are logged in the application log of the Windows Event Viewer, even if the Print Server trace mode has not been enabled.

If we cannot reproduce the issue, the customer needs to activate traces, play the issue, and send us the traces.

" /d": This option is used to produce a file that logs the activity of the print server and of the printing processes that are launched.
The produced file is named "AdxSrvlmp_Trace.log"; it is stored in the temporary folder of the print server.

Log file of print processus and Wrapper CrystalReport : RPT_Trace_TABCOUNTRY_CrDll_SUPERV1.log

There is on file by report.

File Logs are written in directory rootPrinterDirectory\Temp

Ex:

C:\Sage\SafeX3\EDTV2\EDTSRV\srvedit\Temp\AdxSrvImp_Trace.logC:\Sage\SafeX3\EDTV2\EDTSRV\srvedit\Temp\RPT_Trace_ZTESTKO_CrDll_SBELU92.log

This option must be used if problems occur, to facilitate the analysis and correction of incidents submitted to the Sage customer care services.

ex:c:\Sage\SafeX3\EDTV2\EDTSRV\srvedit\AdxSrvImp.exe /d

Ex: to modify the PrintServer service:

sc config "Safe_X3_SE_V2DEFAULT" binPath= "\"c:\Sage\SafeX3\EDTV2\EDTSRV\srvedit\AdxSrvImp.exe\" /d"[SC] ChangeServiceConfig réussite(s)

Or modify the arguments in Services - effective only the first time :

Add traces

But be careful, in this case, the debug mode will be effective only for the first time you launch the service.
This argument will be remove after the next restart.


Excerpt C:\Sage\SafeX3\EDTV2\EDTSRV\srvedit\Temp\AdxSrvImp_Trace.log

**** Function : SrvImpSuper_newRptJob - [3/20 12:53:52:750] ****- Receipt of a new print request - JobId : 1 - [Date : 3/20 12:53:52:750]- JobId Settings 1 :_FormatExport=28__REPORT=TABCOUNTRY.rpt__DESTINATION=3__TYPDBA=2__DBDATABASE=v12026x3__DBUSER=SEED__DBPASSWORD=***+X3IMP=matrixw19sql.sagex3rd.local:1890__wJobID=SEED-9945-20230320125352-28__WSTATION=MATRIXW19SQL.sagex3rd.local__CDUSER=ADMIN__ADXSOL=V12026X3__APPLICATION=SEED;matrixw19sql.sagex3rd.local;20100__APPRPT=X3;matrixw19sql.sagex3rd.local;20100__RPTLAN=ENGX3DOS=SEED;matrixw19sql.sagex3rd.local;20100;150;ENG__RUNTIME=MATRIXW19SQL.sagex3rd.local;20100__JOBLINKED=__REQUETE=2322986_PreVisuOptions=11111111111111111111_Orientation=0_PaperSize=1X3CLI=SEED folderX3EDT=Report Sage CopyrightX3ETA=TABCOUNTRYX3TIT=CountryX3OPE=System AdministratorX3USR=ADMINX3LAN=ENGX3SIT1=*X3SIT2=zX3PRF=ADMINX3FCT= X3SIT=paysdeb= paysfin=zzzzzzzzzzimpselections=0

Details of parameters sent to the PrintServer: list of parameters

Excerpt C:\Sage\SafeX3\EDTV2\EDTSRV\srvedit\Temp\RPT_Trace_TABCOUNTRY_CrDll_SEED1.log

File destination: preparing Crystal ReportIssue file: c:\Sage\SafeX3\PRTSRV\Temp\SEED-9945-20230320125352-28_Excel format, data only: preparing Crystal ReportCrystalReport start process Document - 3/20/2023 12:53:54 PMFile destination: processing by Crystal Report** Stage: CrystalReport Document has been processed - Duration: 00:00:01.7220328** Stage: CrystalReport Document completed - Duration: 00:00:01.7230337Dispose CrystalReport Document - 3/20/2023 12:53:54 PM Memory current process : 74 MB / Total Memory: 10399 MB / Free Memory: 907 MB - 3/20/2023 12:53:55 PMCurrent process CPU usage : 19.983 % CPU / Global CPU usage : 48.39094 % CPU End of print process - 3/20/2023 12:53:55 PM

Trace mode of UFLs DLLs :

u212ltext.log is generated in Temp folder below the printserver install path.

Ex: c:\Sage\SafeX3\EDTV2\EDTSRV\srvedit\Temp

Note:
Dll "U212LText.dll" used by the PrintServer is stored in "C:\Windows\crystal"

Crytal Report 2016 uses the Dll "U212IText.dll" located in "C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86" since PrintServer 2.28.

Crytal Report 2020 uses the Dll "U212IText.dll" located in "C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64" since PrintServer 2.28.

HKEY_LOCAL_MACHINE\SOFTWARE\Adonix\SRVIMP\0,1,5,0\REPORT\U2LTEXT_TraceMode : ON/OFF

Modules.exe : CR tools which allows to see the versions of DLLs / Assemblies loaded in memory

- Useful for checking the version of third-party components (Drivers ODBC, Drivers d’imprimante, CLR, Framework CR .Net…)
- Log ODBC : Usefull if SGBD error. We can obtain more details than the CRPE simple error.
- ProcMon.exe: Details about every running processes. Not easy to use.
- Debugger Post-Mortem:

If server crash or crash of print process

Need to make debug symbols available, and ideally a version of the Print Server in COFF mode
Used to exploit a posteriori a crash dump, to locate in the code the line in error (with its stack and all the context of the registers, etc ...)


Enable logs in SAP VS Studio Crystal Report

https://apps.support.sap.com/sap/support/knowledge/public/en/0001470978

For Crystal Report 2011, 2013 && 2016.

Enable Logging: save this file with the reg extension, for example, "enableLog.reg", and execute it.

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging][HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.bkgrnd]"Destinations"=dword:00000003"Position"=dword:00000003"LogErrorsOnly"=dword:00000000[HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.diagnostics]"Destinations"=dword:00000003"Position"=dword:00000003"LogErrorsOnly"=dword:00000000[HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.functions]"Destinations"=dword:00000003"LogErrorsOnly"=dword:00000000"Position"=dword:00000003[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging][HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.bkgrnd]"Destinations"=dword:00000003"Position"=dword:00000003"LogErrorsOnly"=dword:00000000[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.diagnostics]"Destinations"=dword:00000003"Position"=dword:00000003"LogErrorsOnly"=dword:00000000[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.functions]"Destinations"=dword:00000003"LogErrorsOnly"=dword:00000000"Position"=dword:00000003

Logs are located in the User Profile TEMP directory: C:\Users\[userId]\AppData\Local\Temp

Ex: C:\Users\frdepo\AppData\Local\Temp

The UserId is the account Id which is linked to the PrintServer service and which launches the Print processes.

You'll have log files like this, with ".glf" extentions.

AdxImpNet_bkgrnd_51664_2020_05_06_12_07_24_340_trace.glfAdxImpNet_Diagnostics_51664_2020_05_06_12_07_23_199_trace.glfAdxImpNet_functions_51664_2020_05_06_12_07_23_205_trace.glf

Disable Logging

Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging][HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.bkgrnd]"Destinations"=dword:00000000"Position"=dword:00000000"LogErrorsOnly"=dword:00000000[HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.diagnostics]"Destinations"=dword:00000000"Position"=dword:00000000"LogErrorsOnly"=dword:00000000[HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.functions]"Destinations"=dword:00000000"LogErrorsOnly"=dword:00000000"Position"=dword:00000000[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging][HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.bkgrnd]"Destinations"=dword:00000000"Position"=dword:00000000"LogErrorsOnly"=dword:00000000[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.diagnostics]"Destinations"=dword:00000000"Position"=dword:00000000"LogErrorsOnly"=dword:00000000[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Logging\crpe.functions]"Destinations"=dword:00000000"LogErrorsOnly"=dword:00000000"Position"=dword:00000000

Font size reduced when exporting to PDF

When you use some specific fonts like BarCodes (BarcodeEAN13) and export a report to PDF format, the font size can be slightly reduced compared to the size that appears in the Crystal Reports designer and in printed output.

The CrystalReport PDF export engine can be modified to incorporate a new algorithm that positions characters precisely to prevent truncation from ocurring while maintaining the correct font size. This algorithm can be activated and controlled by two new registry keys.

These keys are:

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal Reports\Export\Pdf]"UsePrecisePositioningForText"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Crystal] Reports\Export\Pdf"TruncationAdjustment"=dword:00000002

The "UsePrecisePositioningForText" key turns on the new functionality when it is set to 1. When this functionality is activated, the "ForceLargerFonts" key is ignored. The "TruncationAdjustment" key controls a width calculation rounding function in the new algorithm and accepts values between 0 and 10 inclusively. The default value of 2 has been tested to sufficiently eliminate most truncation issues. If truncation is still observed, this value can be increased for added granularity.

Known Limitations:

When the "UsePrecisePositioningForText" key is turned on, there are several side-effects. Exporting to PDF may take slightly longer, but no more than 10% longer. The exported PDF document will increase in size over the standard outputand Crystal Reports will consume more GDI resources during the export.

See https://www.arcanadev.com/support/kb/K00000394




Registry Settings and Options for Crystal Reports

https://help.jeff-net.com/knowledgebase/article/registry-settings-and-options-for-crystal-reports

2165260 - List of Registry Keys used in Crystal Reports * Master KBA *

https://apps.support.sap.com/sap/support/knowledge/en/2165260

Chinese characters not correctly displayed in PDF

Chinese or arabic characters are not correctly displayed in PDF document, generated by the PrintServer.

These characters could come from formula, and stored in localmenus, or from the database.


Example, field containing a formula:

textofchapter("SEED;matrixw19;20101",{?X3LAN},1,2)

See SAP Crystal Report issue :
https://apps.support.sap.com/sap/support/knowledge/en/1532489

Cause :

It has been observed that these fonts do not work with Crystal Reports correctly while exporting to PDF

Resolution :

Use other supported fonts for Unicode and Chinese characters like 'Arial Unicode MS' or 'Minglu'


To fix this issue, please, edit your report with Crystal Report Designer,
chose the field containing the Formula,
and change the font from "Arial" to "Arial Unicode MS"

From Print Server 2.24 (2021.07 - 2021 R3) :
There is a new feature introduced in PrintServer 2.24, avoiding edition of all your reports and able to replace every text field using "Arial" and replacing "Arial" font by "Arial Unicode MS" automatically.

To activate this feature, pleace edit your registry and this key :

Subkey: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ADONIX\SRVIMP\0,1,5,0\GENERAL- Entry: ForceUnicodeFont- Value Type: REG_SZ, stringValid values Range: [0-1] or [ON - OFF] 0: Conversion feature is turned OFF 1: Convert all fields using "Arial" font to "Arial Unicode MS" to avoid any issues with Asian charactersThe default font used for unicode is 'Arial Unicode MS', to change this default font, create or edit this registry key 'UnicodeFont' : Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Adonix\SRVIMP\0,1,5,0\REPORTUnicodeFont : "Arial Unicode MS"UnicodeFont : "GNU Unifont"


ForceNonUnicodeFont:

Print Server 2.25 (2022.01 - 2022 R1)

This registry can be used to force every field to use a specific font, a Non Unicode font, like "Courier New"

ForceNonUnicodeFont : 1/0 - Default value = 0

Add registry parameter:Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Adonix\SRVIMP\0,1,5,0\REPORTForceNonUnicodeFont : 1Add registry 'NonUnicodeFont' to specify NON UNICODE fonts to use. The default font used for non unicode is 'Courier New', to change this default font.Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Adonix\SRVIMP\0,1,5,0\REPORTNonUnicodeFont : "Courier New"

PrintServer registry


Special fonts embedded in PDF documents

If you're using non standard fonts in your reports for BarCodes, specific fonts for icons, bank checks and so on, you need to check the licence of the font, and check its properties.

The licence determines if the font can be embedded in PDF documents or not.

Special fonts

To verify the embedded security level of a font, review the font properties.If the security level contains "No-embedding" permissions, then exporting to PDF will not be successful.For the utility to allow you to view the embedded security level of a font, download the "Font properties extension" from Microsoft's web site at: www.microsoft.com/typographyTrue Type Fonts (TTF) has embedding permissions that determine if they can be converted into an embedded font format.The permissions associated with the embedded security level of a font are as follows:- No-embedding:This does not allow fonts to be embedded. Contact the font vendor to request a possible upgrade to an embeddable font.- Print and preview:This allows fonts to be embedded. However, only within pages that remains static on the client computer. If a page allows fonts to be changed, then editable or installable fonts are required. Examples of a page that allows fonts to be changed are an online Java-based word processor or an email editor.- Editable:This allows fonts to be embedded using a tool such as Microsoft Web Embedding Fonts Tools (WEFT) beyond the limitations of the "Print and preview" permissions.- Installable:This allows fonts to be embedded similar to the "Editable" permissions. Note that installable fonts are not installed in the visitors' fonts folder.

1214944 - What font types are supported in Crystal Reports?

https://apps.support.sap.com/sap/support/knowledge/en/1214944

An open-source licensed Type 1 MICR E13-B font

https://sandeen.net/GnuMICR/

Embeding full set of fonts when exporting to PDF from a Crystal Reports file

https://answers.sap.com/questions/11929151/embeding-full-set-of-fonts-when-exporting-to-pdf-f.html

Free MICR font (Turn blank security paper into check stock)

https://kenhamady.com/cru/archives/102

Font is not allowed to be embedded in document when exporting report to PDF for Crystal Designer

https://support.idautomation.com/Barcode-Fonts/Font-is-not-allowed-to-be-embedded-in-document-when-exporting-report-to-PDF-for-Crystal-Designer/_1733

User function Libraries U212LText.dll and U212ltoword

Crystal Report extensions to publish proprietary functions from a SAP Crystal Report form field.

Depending on the use case, these DLLs are loaded by Crystal Report Designer and / or CRPE .Net.
It is never directly loaded by the Print Server (AdxSrvImp an AdxImpNet), but called by SAP CR Engine or SAP CR Designer.

Location on the Sage PrintServer station:

C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86and PrintServer <= 2.27. Note: C:\Windows\crystal doesn't exist since PrintServer 2.25.C:\Windows\crystal


PrintServer >= 2.28: U212IText.dll, U212Itoword.dll

C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64used by SAP Crystal Reports Designer 2020C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86used by X3 PrintServer and SAP Crystal Reports Designer < 2016C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86used by SAP Crystal Reports Designer 2016Directory `C:\Windows\crystal`, containing `U212IText.dll`, `U212Itoword.dll` and `u2lbcode.dll`, is no more created and used by the PrintServer >= 2.28.

U212LText.dll

Support for "menu-local" and "translatable text" fields.

Applies to cache-managed resource files

These specialized functions allow you to insert or perform specific calculations on data managed by the X3 information system. These functions can be incorporated into Crystal Reports intended to run in an X3 application.


Behavior of U2Ltext functions when there is no local menu description:

If the local menu number or the message number passed as an argument of one of the ad hoc functions of the U2LText does not exist in the menuCdLang description file, the function no longer returns an error.
The function returns as default value an empty string ( "" ).
A warning message is nevertheless written in the trace file of the DLL.

Menus :
there are downloaded by the PrintServer, from the current X3 folderID (ex: SEED, ..), and stored in its filesytem c:\\Sage\srvedit\Data\[Folder]_[Hostname]_[Runtime Port]\GEN\ALL\MENL .

Example :

C:\Sage\SafeX3\EDTV2\EDTSRVFRDEP\srvedit\Data\SEED_po027493_20192\GEN\ALL\MENL

dir C:\Sage\SafeX3\EDTV2\EDTSRVFRDEP\srvedit\Data\SEED_po027493_20192\GEN\ALL\MENL
:

menuarbmenuausmenubramenubrimenuchimenuengmenuframenugermenuitamenupolmenupormenusmenuspatextraarbtextraaustextrabratextrabritextrachitextraengtextrafratextragertextraitatextrapoltextraportextraspa

Excerpt menueng :

1NONoYes|2RCMAD> LastX SelTable# CodePage +Page -EndEx|3123Yes / NoTotal / InquiryObject|4DOHDecimalOctalHexadecimal|5353 ½ inches5 ¼ inches

Function 'TextForCode'

This function returns the label associated with the message number of a SAGE X3 field.
By default, the description is returned in the connection language.

Parameters :

•Return : message label in the requested language.

•Note: the function uses the "menus" and "menu [lang]" files as input.

•Example :

TextForCode("PRODV140;prodsrv;1940;140;ENG","ACONSULT.MODULE", 8)

Function 'TranslatedTextForCode'

This function returns the label associated to a message number from an X3 field, in the requested language.

Parameters :
- Application key (Form: Folder;Server;Port;Version;Language)
- Language code : FRA, ENG, SPA, ITA, BRI, POR
- Field name
- Message number

Example :

TranslatedTextForCode("PRODV140;prodsrv ;1940;140","FRA","ACONSULT.MODE", 8)

Function 'TextOfChapter'

Description :
This function returns the label associated with the message number of an X3 local menu, in the requested language.

Parameters :
- Application key (Form: FOLDER;HOST;PORT;VERSION;LANGUAGE)
- Language code : FRA, ENG, SPA, ITA, BRI, POR
- Message number

Return : label in the specified language.

La fonction utilise en entrée le fichier "menuCdlang".

Example :

TextOfChapter("PRODV140;prodsrv;1940;140","FRA", 2229, 8)

=> Entry number 8, chapter 2229

Example with variables :

textofchapter({?X3DOS},{?X3LAN},1,3)

=> Entry number 3, chapter 1

Function 'X3TranslatedText'

Description :
This function returns the label associated with the alphanumeric key of an application text, in the requested language

Parameters :
- Application key (Form: Folder;Server;Port;Version;Language)
- Language code : FRA, ENG, SPA, ITA, BRI, POR
- Text key :
Application text key in the form :

Nom table~Nom champ~Identifiant 1~Identifiant 2~
- Please note that the "~" character corresponds to the field separator. It is obligatory.

Return : text in the specified language.

Remarque : la fonction utilise en entrée le fichier "textraCdlang".

Example :

X3TranslatedText ("PRODV140;prodsrv ;1940 ","SPA", "PFOOTINV~SHOAXX~50~ ~" )

Example:

X3TranslatedText

Debug U212LText:

Registry :

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Adonix\SRVIMP\0,1,5,0\REPORTPrintEngine : 0U2LTEXT_TraceMode : OFFU2LTOWORD_TraceMode : OFF

U212LText.dll:U2LTEXT_TraceMode=ON

Traces U212LText disabled or activated

U212LText.dll: support for "menu-local" and "translatable text" fields. Applies to cache-managed resource files.

The Trace is named U212ltext.log.

This file is generally saved in temp directory "Documents & Settings" of the user profile.

Ex: C:\Users\frdepo\AppData\Local\Temp\U212ltext.log

Example traces U212ltext.log :

****************************************** Sage® X3 Print Services **U212LText.dll Trace File ******************************************==> Start Fct [InitForJob] - Id [4]- INFORMATION : DLL Version [EDT.2.999]- INFORMATION : DLL Location [C:\windows\crystal\U212LText.dll]- INFORMATION : Caller Module Name[Edition Server V5 (220000)]- INFORMATION : Caller Module Full Name[C:\Source\X3\print-server224\src\server\bin\Debug\ConsolePrintNet.exe]- INFORMATION : Start Time [3/30 21:33:40:958]- WARNING : Unable to find Default Language in General Registry [Software\Adonix\x3\0,1,4,0\]
Note that the Dll was located in C:\windows\crystal\U212LText.dll until <= PrintServer 2.27
UFL Libraries `U212IText.dll` and `U212Itoword.dll` are compiled in 64 bits and copied in folder from PrintServer >= 2.28:
`C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64` (used by SAP CR 2020)
32 bits UFL Libraries`U212IText.dll` and `U212Itoword.dll` are still copied in folder:
`C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86` (used by X3 PrintServer and SAP CR < 2016)
and `C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win32_x86` (used by SAP CR 2016)
Directory `C:\Windows\crystal`, containing `U212IText.dll`, `U212Itoword.dll` and `u2lbcode.dll`, is no more created and used by the PrintServer >= 2.28.
The PrintEngine will use UFL libraries located in `C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86`.### U212ltoword.dllAmountToWord: Conversion of amounts into letters (multi-language / multi-currency) relies on language / currency description files delivered• Special features:- the externalization of currencies for a language is carried out in a local file,- as well as a default language and currency in a local file.• The supported languages are:- French- English- German- Spanish- Italian- Portuguese- Dutch- Russian- Polish• File location :
The "U212ltoword.dll" library must be placed under "C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86" of "Program Files (x86)" installation directory.
The 8 text files .txt must be placed in the sub-directory `"lan"`, from the installation directory of the PrintServer.
X3CurFRA.txtX3CurENG.txtX3CuDEU.txtX3CurSPA.txt X3CurITL.txt X3CurPOR.txt X3CurNLD.txt X3CurDFT.txt

Each text file contains the definition of currencies of a managed language.

The "X3CurDFT.txt" file contains the default language as well as the definition of the default currencies.

• File structure :

#FRABEF;franc belge;francs belge;centime;centimesESP;peseta;pesetas;;EUR;euro;euros;centime;centimesDEM;deutsche mark;deutsche marks;pfennig;pfennigFRF;franc;francs;centime;centimesFRS;franc suisse;francs suisse;centime;centimesGBP;livre;livres;penny;penceGRD;drachme;drachmes;;ITL;lire;lires;centesimo;centesimi;JPY;yen;yens;sen;senLUF;franc luxembourgeois;francs luxembourgeois;centime;centimesPTE;escudo;escudos;;USD;US dollar;US dollars;US cent;US cents

FRA est la langue par défaut. Elle n’est utilisé que dans le fichier X3CurDFT.txt.
Les autres lignes définissent les devises pour une langue:

Currency; unity in singular; plural unity; decimal in singular; decimal plural

Function AmountToWord

Description formula AmountToWord

Arguments :

- Application key (Format: folder/server/port)
- Language,
- Currency,
- Amount in digit

Return : Amount in letters in the requested currency and language

Note :

If the language set as parameter to AmountToWorld is not supported,
the program will look for the default language in the default currency file.

The default language is indicated in file X3CurDFT.txt.

Example: #ENG define English as default language.

Example:

AmountToWord("PRODV140;prodsrv;1940 ", "SPA" "EUR", 256.80)



Result: doscientos cincuenta y seis euros


Function AmountToDigit

•Description de la formule AmountToDigit
- Arguments : Clé de l'application (dossier/serveur/port : paramètre X3DOS).
Langue d’édition,
Devise,
Montant en chiffre,
Flag de restitution des décimales (True = lettre, False = chiffre)
- Retour : Chaînes formatée contenant 11 champs. Le premier champ correspond à la valeur de la partie décimale (chiffre ou lettre suivant le Flag), le second champ correspond au « chiffre/lettre » de l’unité du montant, le troisième champ correspond au « chiffre/lettre » des dizaines…. le onzième champ correspond au « chiffre/lettre » des millards.
- Remarque : Dans le cas où le flag de restitution des décimales = True, la remarque mentionnée pour la formule AmountToWorld s‘applique également ici.

Debug U212ltoword:

Registry :

HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Adonix\SRVIMP\0,1,5,0\REPORTU2LTOWORD_TraceMode: ON/OFF

Test program "AmountToWordTest.exe" since PrintServer >= 2.28.

AmountToWordTest calls the function AmountToWord() contained in the library U212ltoword.dll in command line.



Usage:

AmountToWord TUUsage AmountToWordTest.exe -lang [ENG, FRA, ITA... ] -cur [EUR, USD, ...] -start [number] -end [number]AmountToWordTest.exe -lang FRA -cur EUR -start 3 -end 10AmountToWord 3.000000 EUR ENG three EurosAmountToWord 4.000000 EUR ENG four EurosAmountToWord 5.000000 EUR ENG five EurosAmountToWord 6.000000 EUR ENG six EurosAmountToWord 7.000000 EUR ENG seven EurosAmountToWord 8.000000 EUR ENG eight EurosAmountToWord 9.000000 EUR ENG nine EurosAmountToWord 10.000000 EUR ENG ten Euros


Parameters sent to the PrintServer

**** Function : SrvImpSuper_newRptJob - [1/17 15:38:10:6] ****- Réception d'une nouvelle demande d'impression - JobId : 1 - [Date : 1/17 15:38:10:7]- Paramètres du JobId 1 :_FormatExport=29_PrinterName=\\ser-psafo02\SAGEPRINTER_PrinterServer=vcsx3v11.sagefr.adinternal.com:1890_PrinterDriver=KONICA MINOLTA C364SeriesPCL SP_PrinterPort=SECURE,SECURE2_PrinterDescriptionEx=1|000258|000009|||_Orientation=0_PrinterCopies=1_PrinterCollate=0_PrinterStartPage=1_PrinterStopPage=9999__REPORT=TABCOUNTRY.rpt__DESTINATION=1__TYPDBA=2__DBDATABASE=x3v11sql__DBUSER=SUPERV__DBPASSWORD=***+X3IMP=vcsx3v11.sagefr.adinternal.com:1890__WSTATION=VCSX3V11.sagefr.adinternal.com__CDUSER=ADMIN__ADXSOL=V11SQL__APPLICATION=SUPERV;vcsx3v11.sagefr.adinternal.com;18111__APPRPT=X3;vcsx3v11.sagefr.adinternal.com;18111__RPTLAN=FRAX3DOS=SUPERV;vcsx3v11.sagefr.adinternal.com;18111;150;FRA__JOBLINKED=__REQUETE=5042306_PreVisuOptions=11111111111111111111X3CLI=SEED folderX3EDT=Etat Sage X3 Copyright SageX3ETA=TABCOUNTRYX3TIT=PaysX3OPE=Administrateur systèmeX3USR=ADMINX3LAN=FRAX3SIT1=*X3SIT2=zX3PRF=ADMINX3FCT= X3SIT=paysdeb=Apaysfin=Aimpselections=0


Print-server destinations

_FormatExport

_FormatExport=29

_FormatExport : Export to a specific format.

Default format : PDF

Main supported formats in PrintServer engine and CrystalReport : RPT, Word/RTF, Excel & PDF

CRYSTAL_FORMAT_RPT1 // Seagate Crystal Reports (RPT)CRYSTAL_FORMAT_WORDWIN3 // Word for WindowsCRYSTAL_FORMAT_RTF5 // RTFCRYSTAL_FORMAT_TEXT9 // Text CRYSTAL_FORMAT_EXCEL8TAB28 // Excel 8 étenduCRYSTAL_FORMAT_PDF29 // PDF

A default export format is stored for each destination (PREVIEW, EXCEL, PRINT, etc), in the database.

The default format is linked to a destination is stored in table [SCHEMA].[APRINTER], field "PRTFMT_0" :



Print-server destinations

__DESTINATION

__DESTINATION=1 CRYSTAL_DESTINATION_WINDOW: 0, CRYSTAL_DESTINATION_PRINTER: 1, CRYSTAL_DESTINATION_MAILMAPI: 2, CRYSTAL_DESTINATION_FILE: 3, CRYSTAL_DESTINATION_MAILVIM: 4, CRYSTAL_DESTINATION_NOTES: 5, CRYSTAL_DESTINATION_EXCHANGEFOLDER: 6

__TYPDBA

__TYPDBA=2 (ODBCCFG_DB_ORACLE: 1, ODBCCFG_DB_SQLSERVER : 2)

_Orientation

-1 = Default orientation1 = PORTRAIT2 = LANDSCAPE

_PaperSize

Note: If destination is a Printer (__DESTINATION=1), we dont read this parameter.

We read the parameter _PrinterDescriptionEx if it's a real Printer.

_PrinterName

Note: Parameter _PrinterName, _PrinterServer, _PrinterPort, _PrinterDescriptionEx, _Orientation, _PrinterCopies appears only if the destination is a Printer.

For a preview or a file as destination, there is not paramters named _Printer[XXX].

Ex:

\\ser-psafo02\SAGEPRINTER

_PrinterServer

Ex:

vcsx3v11.sagefr.adinternal.com:1890

_PrinterDriver

_PrinterPort

_PrinterDescriptionEx

parameter _PrinterDescriptionEx=1|000258|000009||| Pattern : duplex|paper source|paper size|paper height|paper width|

Duplex :Depending from the printer capability to support duplex mode.

Duplex printing means that you can print on both sides of the paper with your printer either automatically
or manually by turning the paper over after the first side has printed.
To duplex print, your model will need to have the functionality built-in.

Simplex printing, on the other hand, only allows for printing on one side of the paper.

empty value, 0 or 11 = Duplex mode is supported by the printer.

Paper source

-1 : AutoSelect / Default paper source on the printer device.XX : Cassette 1XX : Cassette 2XX : Cassette 3

Value depends of the Printer and its capabilities.


Paper size :

if value equals -1 or empty = default format paper1 = letter US8 = A39 = A411 = A5256 = defined by the 3 following parameters

Example A:

_PrinterDescriptionEx=1|000258|000009||| Pattern : duplex|paper source|paper size|paper height|paper width|

This pattern significates that :

- the Printer can use the Duplex mode,
- cassette id 258 : this id is different on each Printer, there is no standard about this.
- 09 : paper size A4
- The next field are empty but characters | are necessary. There are not read because its a standard and predefined size.

Example B:

_PrinterDescriptionEx=1|000258|||| Pattern : duplex|paper source|paper size|paper height|paper width|

Example C:

_PrinterDescriptionEx=1|000258|256|15840|12240| Pattern : duplex|paper source|paper size|paper height|paper width|

Full range of values :

1 = Letter 8 1/2 x 11 in2 = Letter Small 8 1/2 x 11 in3 = Tabloid 11 x 17 in4 = Ledger 17 x 11 in5 = Legal 8 1/2 x 14 in6 = Statement 5 1/2 x 8 1/2 in7 = Executive 7 1/4 x 10 1/2 in8 = A3 297 x 420 mm9 = A4 210 x 297 mm10 = A4 Small 210 x 297 mm11 = A5 148 x 210 mm 12 = B4 (JIS) 250 x 35413 = B5 (JIS) 182 x 257 mm14 = Folio 8 1/2 x 13 in15 = Quarto 215 x 275 mm16 = 10x14 in17 = 11x17 in18 = Note 8 1/2 x 11 in19 = Envelope #9 3 7/8 x 8 7/820 = Envelope #10 4 1/8 x 9 1/221 = Envelope #11 4 1/2 x 10 3/822 = Envelope #12 4 \276 x 1123 = Envelope #14 5 x 11 1/224 = C size sheet25 = D size sheet26 = E size sheet27 = Envelope DL 110 x 220mm28 = Envelope C5 162 x 229 mm29 = Envelope C3 324 x 458 mm 30 = Envelope C4 229 x 324 mm31 = Envelope C6 114 x 162 mm32 = Envelope C65 114 x 229 mm33 = Envelope B4 250 x 353 mm 34 = Envelope B5 176 x 250 mm35 = Envelope B6 176 x 125 mm36 = Envelope 110 x 230 mm 37 = Envelope Monarch 3.875 x 7.5 in38 = 6 3/4 Envelope 3 5/8 x 6 1/2 in39 = US Std Fanfold 14 7/8 x 11 in40 = German Std Fanfold 8 1/2 x 12 in41 = German Legal Fanfold 8 1/2 x 13 in

See source file C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um\wingdi.h from Microsoft wingdi.h for full details.

See https://docs.microsoft.com/en-us/windows/win32/intl/paper-sizes

paper size|paper height|paper width

"paper size|paper height|paper width" are read if the "source" value = 256

see function void ImpPrinter_SendParameterToServer( ... ) for more details

Example :


Pattern : duplex|paper source|paper size|paper height|paper width|ZEBRA |000004|000256|000508|001680|

It is important to configure the default parameters correctly to be able to use the Printer, if we cannot use any customized settings :


Pattern : duplex|paper source|paper size|paper height|paper width|ECT |000004|||| The value "paper size" is empty, so the PrintServer will use the default parameters for the printer and driver.

The parameter _PrinterDescriptionEx is automatically filled by the Printer an its driver when the printer is created.
The PrintServer request the printer and its driver and the result is created in table APRINTDES.

See fields [APRINTDES].[PRTDES_0] and [APRINTDES].[PRTDESEX_0]

Exemple of one entry, table APRINTDES:

[X3].[APRINTDES], [UPDTICK_0] [int], [COD_0] [nvarchar](10), [NUM_0] [int],[PRTDES_0] [nvarchar](250), [PRTDES_1] [nvarchar](250), [CREUSR_0] [nvarchar](5),[UPDUSR_0] [nvarchar](5), [CREDATTIM_0] [datetime], [UPDDATTIM_0] [datetime], [AUUID_0] [binary](16), [PRTDESEX_0] [nvarchar](100), [ROWID] [numeric](38, 0),1IMPRIM 1 5C005C00730061006700650069006D0070005C004C0049004C00410053000000/*00740000006500200064006500200050007200/*0074002C004C006F00000001040006.,00-,1F430/)!070100090000000000640001000F005802010001005802030000004100340000000000000 XPSBXPSB2015-07-24 17:16:25.000 2015-07-24 17:16:25.000  3|000257|000009||| 29

Note the field PRTDESEX_0 and its value : 3|000257|000009|||

_PrinterCopies

Number of copies of the document to print.

Default value = 1

_PrinterCollate

Default value = 0

Collated printing refers to how prints are arranged as they print, and is useful if you are printing more than one large document that needs to be kept in the right order.

When a file is too big and needs to be printed across several pages, collated printing will give you page after page and sheet of paper after sheet of paper, while respecting the original series of the pages in the document.

Collating documents creates consistency, for example, if you have a document that is five pages long and you wanted to print multiple copies, collating enables it to print pages 1,2,3,4 and 5 in the correct order and then repeat this again if you need more than one copy.

_PrinterStartPage

First page to print

Default value = 1

_PrinterStopPage

Default value = 9999