EFI SDK Frequently Asked Questions

Product Questions


1. What is the EFI SDK (formerly referred to as the "Harmony" SDK)?
With an installed base of hundreds of thousands of Fiery servers, EFI is committed to making the Fiery the open standard for networked printing. The EFI SDK (Software Developers Kit) is a set of software services and Application Programming Interfaces (formerly referred to as "Harmony" APIs). These APIs allow for the development of custom applications, which control and manage Fiery servers. They have been designed and used internally at EFI to develop many applications for Fiery servers including Web-based applications. EFI is making these APIs available to OEMs, third-party developers, consultants and customers in a robust developer’s kit called the EFI SDK. The EFI SDK is packaged as a set of software services that can be used by any C, C++, or Java programmer.

2. Do I need to be a programmer to use this product?
Yes, it is recommended that a C, C++, or JAVA programmer work with the EFI SDK.

3. What languages and platforms are supported?

  • Multiple language support can be called by any C, C++ or Java program and provides software services in both C/C++ and Java, allowing client applications to be developed for use with a Fiery controller using uniform APIs.
  • Multiple platform support - can run on Microsoft Windows, Linux and Mac OSX platforms.

4. Which Fiery controllers/servers does the EFI SDK support?
The EFI SDK supports most Fiery servers/controllers. Two levels of support are offered:

  • Full EFI SDK support — Available for Fiery servers/controllers running Fiery System 5 Software.
  • Legacy support — Fiery servers/controllers that were built before the EFI SDK APIs were released. In order to connect to these legacy servers from an application built using these APIs, proper bridge libraries are provided with the SDK and need to be included in your application.

5. How do I test my server to make sure it’s compliant with the EFI SDK?
To determine if your printer/Fiery is compliant with the EFI SDK, check to see if your printer/Fiery is supported by EFI’s Command WorkStation (CWS). CWS is an application that connects to the Fiery, displays jobs, previews, etc. The CWS is included on the user CD that ships with all Fiery products that support it. CWS uses the same network protocol as the EFI SDK; therefore, if your printer/Fiery is supported by CWS, it’s likely that the device supports EFI SDK.

The EFI SDK bridge libraries support Fiery servers that work with CWS 3. When you include the proper bridge (backwards compatibility) libraries, the EFI SDK connection API will automatically attempt to use the legacy support libraries to connect to a server when a standard EFI SDK connection cannot be made. Bridge libraries are available for C and Java versions of the EFI SDK.

Fiery models that support CWS 3 include most Fiery X2 servers for color copiers, Fiery ZX, Fiery Z4, and Fiery X4 product lines. Some Fiery X2e B&W, wide format, and recent desktop Fiery X2e products may also support it. If the server does not work with CWS 3 or greater, then the EFI SDK does not support the server.

When you test your Fiery with CWS for supportability, you should, at the minimum, experiment with downloading jobs, RIPping and previewing these jobs.

6. Which API Services do I have access to within the EFI SDK libraries?

  • Accounting — Retrieves information specific to a Fiery´s Job Log where job accounting takes place.
  • Attributes — The EFI SDK Attributes service defines the set of attributes and values available to every object in an EFI SDK application. For example, a logical printer may be given a "duplex" attribute, which defines whether or not print jobs sent to that logical printer will be printed double-sided.
  • Authentication — Provides functions that allow client applications to interact with the Fiery’s authentication database, including:
    • Password checking during login to a Fiery.
    • Adding users and setting user access permissions.
    • Getting and setting passwords.
    • Facilitate server queries used to determine the type of functionality class users are provided access to, where a functionality class is a group of actions on the server that different users are allowed to use depending upon their login type (e.g., administrator, operator, or guest).
  • Connection Initialization — Provides functions to establish communications with a Fiery controller, disconnect from a Fiery controller, get and set server timeout values, and monitor information coming in from a Fiery.
  • Device Information — Provides functions to access information on the devices/engines connected to a Fiery server. For example, DEV_getNumDevices fetches the number of devices connected to a Fiery server, and DEV_getDeviceNameList fetches the name of each device attached to the Fiery.
  • Discovery — Locates Fiery controllers on the network.
  • Feature Control — Provides information on features supported by a Fiery.
  • File Transfer — Provides access to removable and fixed storage devices on the Fiery. It supports moving and copying files between a workstation or some other remote location and the Fiery.
  • Font Management — Used for backing up and restoring fonts. It provides for checking which fonts are available on the Fiery controller, downloading fonts to the Fiery, and backing up and restoring fonts.
  • Job Downloading — Provides support for downloading and importing a job from some remote location, such as a workstation, to a Fiery.
  • Job Management — Provides functions that allow you to check and set print overrides, and perform job functions such as deleting a job, duplicating a job, saving raster, posting, and archiving jobs to local or remote media.
  • Localization — Provides support for localizing attribute keys and values, and supports all EFI-supported languages and multiple encodings: CP1252, ISO8859-1 and MacRoman.
  • Logical Printer Control — A filter that provides default attributes for jobs that do not have attributes or enforces attributes that administrator locks in.
  • Non Blocking — All EFI SDK functions can be invoked either asynchronously or synchronously. In response to each asynchronous request, the EFI SDK issues a ticket object. Your application does not have to wait for answers; it can register to be called back when functions complete.
  • Server Information — Provides functions to access information about processing and events occurring on a Fiery server. You can use these functions to retrieve the Fiery’s location and time, available disk and memory space, and so on.

7. How do I test my Applications?
In addition to testing on their own Fiery controller/server(s), developers can test their applications by connecting directly to Fiery test servers available at testfiery1.efi.com. Developers can verify that their SDK applications work correctly with the latest Fiery software. The test servers will help developers to isolate problems they may encounter while developing SDK applications from the versions of Fiery software of their local Fierys.

Sales and Support Questions


1. What is the NDA policy?
The EFI SDK non-disclosure agreement is required for all developers. EFI OEM partners with pre-existing non-disclosure agreements are required to fill out the EFI SDK NDA as well.

2. What is the license policy?
The EFI SDK Evaluation License is a standard, payment-free, time-limited, evaluation-only license that is available on the web at the EFI SDK section of www.efi.com.

The EFI SDK Developer’s License is a customized license that will be developed on a case-by-case basis. The EFI SDK Developer’s License will grant a very specific-use license and may contain substantial business terms and royalties. A specific SDK Developer’s license can be proposed only after analysis of the developer’s questionnaire and consensus by the EFI SDK Committee. The EFI SDK Developer’s License will not be offered to any of EFI’s direct competitors.

Below is the process for proposing an EFI SDK Developer’s License:

  • For each proposed application to be developed with the EFI SDK Kit, the developer must complete a Preliminary Questionnaire for the EFI SDK License available at sdk.efi.com. No EFI SDK Developer’s License will be offered to an applicant unless the questionnaire and any follow-up questions are answered.
  • The EFI SDK Committee will review the questionnaire and will have applicant answer follow-up questions as needed. The Committee will then draft a proposed EFI SDK Developer’s License based upon the information in the questionnaire. If the applicant is an EFI OEM customer, the Strategic Relations and Sales Account Manager for that OEM will be involved in the review.
  • The EFI SDK Committee will forward their proposed SDK Developer’s License to the Executive Steering Group for final approval.
  • Strategic Relations will send the approved EFI SDK Developer’s License to the applicant and will drive any negotiation regarding the License, involving others from the EFI SDK Committee and Strategic Relations as needed. If the applicant for the license is an EFI OEM, Strategic Relations may delegate certain portions of the negotiation to the Strategic Relations Rep for that particular OEM.

3. Licensing Flow Chart
Diagram

4. How much does the licensing fee cost?
The licensing fee for the EFI SDK is $11,000 for a one-year term. Currently we estimate the annual renewal fee to be $4,000.

Applications based on the EFI SDK can be sold commercially. Licenses are negotiated based on your particular needs and application of the EFI SDK. To begin the licensing process, go to "Getting Started" in the EFI SDK section of the EFI Internet.

5. What type of support is included with the subscription license?
EFI provides a number of support services to enhance the EFI SDK user experience:

  • Complete Documentation.
  • Programmers Reference Guide.
  • Example programs (C, Java).
  • Tutorials.
  • Technical FAQs.
  • Technical Support.
  • There are eight cases per quarter are included with the EFI SDK license. All inquiries by the developer are made via email in accordance with any instruction(s) provided by EFI. Additional support is available at an hourly rate.
  • EFI SDK Web site.
  • Registered users can download the latest EFI SDK updates and bug fixes, and browse online documentation.
  • Test Tools.
  • The SAK CGI tool allows you to exercise various EFI SDK functions without writing code.
  • EFI SDK Test Server for registered users.
  • EFI has Fiery servers available for your testing convenience. You can test the applications you’ve built using the EFI SDK APIs by connecting to testfiery1.efi.com.

6. Does EFI offer SDK training?
Yes, EFI offers comprehensive training for developers using the EFI SDK. The cost is $1,500/person for a two-day training session. To sign up email our SDK trainers at sdk@efi.com Subject: SDK Training

7. What type of applications can be developed with the EFI SDK?
The SDK allows you to write programs that:

  • Locate Fiery controllers on the network.
  • Establish communications with specific Fiery controllers.
  • Manage, review and archive jobs on Fiery controllers.
  • Monitor and calibrate devices connected to Fiery controllers.
  • Set up and maintain Fiery controllers.
  • Report on usage by job and user of Fiery controllers.
  • Manage fonts on Fiery controllers.
  • Extend scan functionality.
  • Provide notification on job events.
  • Maintain information about user access rights.

Evaluation and Ordering


1. How can I get a free 90-day evaluation?
To get your free 90-day EFI SDK trial kit, you must go to the Fiery "Other Tools" section of www.EFI.com. There you will find "Getting Started" instructions, which will guide you through the download process.

2. Who do I contact when I´m ready to purchase the product?
You may either contact your EFI account manager or contact us directly at sdk@efi.com.


Nothing contained on this website should be construed as a commitment on the part of EFI to license any particular person or entity to use the EFI SDK Software and Documentation. While EFI welcomes all inquiries regarding the EFI SDK Developer Program, EFI reserves the right to refuse to license the EFI SDK Software and Documentation to anyone for any reason.