About Plug-ins
Plug-ins allow users to modify and enhance the operation of the core Pharos product, making it more suitable for their environment. Plug-ins make it simple to replace selected existing processes or add extra ones. For example, Pharos plug-ins support authentication and external billing.
Plug-ins can be attached to the following Pharos components to customize aspects of their operation:
The plug-in programs run can be as simple as batch files (executables), to something as complex as specially written C++ programs. Alternatively a plug-in can be written in Pharos Script.
How Plug-ins are Called
The situations in which Plug-ins are called are listed below, followed by a list of all Plug-ins that are called in that situation, in the order in which they are called.
Direct printing
When a direct queue prints a job
- PrintStartJob
- Logon (only if a Popup password is present)
- SelectPrinter
- BillingName
- JobCostMethodSelection
- CostJob
- Billing (Balance)
- JobInformation
- PrintJob
- Banner (if defined for the Print Group)
- Billing (Debit)
- ForwardJob (forwards the banner first, if it exists, and then the print job)
- PrintEndJob (will be called on failure, even if the preceding Plug-ins are not called)
Secure Release printing
When a job is received by a Print Service:
- PrintJobArrive
- Logon (only if a Popup password is present)
- BillingName
- JobCostMethodSelection
- CostJob
- Billing – balance
- JobInformation
The PrintJobArrive event is triggered once the Print Service has finished receiving the entire print job.
When a user logs on to a Pharos Station or Print center
- Logon
- Billing (Balance)
When a user clicks on a job at a Pharos Station or Print Center
- BillingName
- JobCostMethodSelection
- CostJob
Normally, these Plug-ins are only called the first time a user clicks on a job. The information returned by the Plug-ins is cached at the Pharos Station, so that clicking on the job again does not call the Plug-ins. You can disable the caching of this information by editing the "CacheJobCost" Pharos Station registry key.
When a user clicks Print at a Pharos Station or Print Center
- PrintStartJob
- SelectPrinter
- BillingName
- JobCostMethodSelection
- CostJob
- Billing (Balance)
- PrintJob
- [Print Station client-side billing (e.g. cash cards) may occur at this point]
- Banner (if defined for the Print Group)
- Billing (Debit)
- ForwardJob (forwards the banner first, if it exists, and then the print job)
- PrintEndJob (will be called on failure, even if the preceding Plug-ins are not called)
Pharos Print Center uses the same plug-ins as Pharos Stations, and are called in the same order. MobilePrint has plug-ins, but they cannot be used for scripting. The MobilePrint plug-ins are used to convert uploaded documents and convert the MobilePrint PDF to a printer specific PDL.
SignUp
When a user logs on to a SignUp Client:
- Logon
- SelectEnvironment
If either of these Plug-ins fail, the SignUp Client will go into standalone mode.
When a session ends on a SignUp Client:
- SessionEnd
The SessionEnd Plug-in is normally called as soon as the SignUp Service receives notification that a user's session has ended (either because the user logged off, or because their session timed out). However, if the SignUp Client cannot contact the SignUp Service and is operating in standalone mode, this notification will not be sent until the Client is next able to contact the Service, which could be some time after the session actually ended.
A number of executable and scripted Plug-ins can be found on the Pharos disk image at \tools\plugins.
Custom Charges
When a user pays for a custom charge job (either by clicking Pay from the Print Center or by clicking Print from Release Stations)
- PrintStartJob
- SelectPrinter (called but ignores the plug-in information)
- BillingName
- Billing (Balance)
- PrintJob
- Billing (Debit)
- PrintEndJob
JobCostMethodSelection, JobInformation, and CostJob plug-ins are not called for custom charge jobs.