ScreenPro Windows Developer Guide
Overview
ScreenPro contains the following components:
- ScreenPro.dll
- ScreenPro.lib (for static linking)
- ScreenPro.h (API header file)
- Sample screens
This document aims to describe these components and how to use them within a custom application.
This documentation applies to ScreenPro v3.1.0. If you encounter differences with an older version you are using, and do not have the documentation originally released with it in PDF format, please contact us at screenpro-support@globalgraphics.com.
ScreenPro DLL
The ScreenPro DLL (ScreenPro.dll) exposes a low-level C API that allows application developers to add ScreenPro screening to their applications and workflows.
The default path for the ScreenPro DLL is:
C:\Program Files\ScreenPro\toolkit\lib\ScreenPro.dll
The header by default is at:
C:\Program Files\ScreenPro\toolkit\include
The following header is required to use the ScreenPro DLL:
ScreenPro.h
which contains the low-level C API for ScreenPro.
To run ScreenPro.dll, install the VC runtimes.
Requirements
The ScreenPro DLL builds using the following:
- X64, Visual Studio 2017 compiler
- Statically compiled VC runtimes - /MT
At runtime, .libeay32.dll must be in the same directory as the ScreenPro DLL.
Using in Visual Studio
To use the library in Visual Studio, first reference the header file in the export folder. Do this in one of two ways. Either:
- Add the path to the header file at the top of your source file, for example:
#include “/path/to/ScreenPro.h”
OR
2. Add the export folder to the additional includes directory in the Visual Studio project and reference the header file in the same manner (without the relative path).
Finally, to enable you to call the APIs defined in the ScreenPro.h
file, link to the import library ScreenPro.lib
, which is found alongside the ScreenPro.dll
.
Add this library to your Additional Dependencies in your Visual Studio properties at:
Properties > Configuration Properties > Linker > Input > Additional Dependencies
Alternatively, to use the ScreenPro.dll library directly without the use of header or linking import libraries, use the Win32 API LoadLibrary(…)
and GetProcAddress(…)
functions, which load the ScreenPro.dll
library and call functions as appropriate. For more details see the following documents:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms684175(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms683212(v=vs.85).aspx
Documentation
Each header file contains an extensive set of documentation, which details the API's functionality and structures.
An example implementation
The following illustrates how to use the ScreenPro.dll in a screening application:
- Start the ScreenPro engine.
ScreenProStartup(...);
This step initiates the ScreenPro engine and validates licenses as appropriate. You can also hook an IO handler in this API to handle more complex IO (for example, filenames in UTF16 encoding, or in-memory screen data). - Screening. This step performs the main screening functionality. It should be run by each thread.
Screen the image based on the given ScreenSet folder, which carries out the main screening function:ScreenProScreen(…);
- Shut down ScreenPro. This step shuts down the ScreenPro engine and frees all reserved resources.
ScreenProShutdown(…);
For more detailed API documentation, please see the file ScreenPro.chm
in your installation directory.
Input
The following input is accepted:
TIFF (Single channel, continuous tone, eight or 16 bits per pixel respectively).
Output
The following output is created:
TIFF (Preview quality, single channel, screened, eight bits per pixel, compressed).
Screens
ScreenPro is supplied with sample screens featuring 1, 2, 3, and 4 droplet sizes. See your technical representative for more details.
Sample application
To demonstrate DLL usage, the link below contains a sample program:
ScreenProDll.ExampleApplication.zip
The sample application only supports the Latin character set for filenames and screens, which is a constraint of the sample application only. The ScreenPro DLL fully supports WCHAR in the API via a flexible IO handler hook.
Command-line arguments
The command-line arguments follow:
ScreenProDll.Example.exe <ScreenPath> <Channel> <XOffset> <YOffset> <TIFF input file>
where: <XOffset> and <YOffset> are only supported for chameleon or mirrorpearl
Where:
| Full path to the resultant screened .tiff file |
| Full path to the screen folder. |
| Optional channel index to use for screening (defaults to Cyan: |
| Optional X-Offset value for screening with "Chameleon" or "MirrorPearl" (defaults to |
| Optional Y-Offset value for screening with "Chameleon" or "MirrorPearl" (defaults to |
| Full path to the .tiff file (8bpp or 16bpp, single-channel) to be screened. |
OEM licensing
When developing a solution using the ScreenPro SDK, the developer is responsible for security. We provide a mechanism that requires populating for you to use the API, but ultimately other than the license and password that we supply to you, you can customize and enter the remaining parameters.
Use the C Struct ScreenProPermit
structure to communicate the required licensing information, which enables us to sufficiently restrict the API's use.
ScreenProPermit permit =
{
nullptr, // Replace with license key.
nullptr, // Replace with password.
0, // Replace with number of output boards.
nullptr, // Replace with OEMId
};
The OEM ID is only required when using PrintFlat calibrations and/or NozzleOut compensation functionality.
Copyright © 2021 Global Graphics Software Ltd. All Rights Reserved.
Global Graphics Software Ltd | Global Graphics KK |
Harlequin, the Harlequin logo, Harlequin RIP, Harlequin ScreenPro are trademarks of Global Graphics Software Limited, which may be registered in certain jurisdictions. Global Graphics Software is a registered trademark of Global Graphics SE. All other brand and product names are the registered trademarks or trademarks of their respective owners. Global Graphics makes no warranty and accepts no liability.