SDK DocsQuickstart

Evolis SDK for Python — Quickstart

Installation

pip install Evolis-SDK

Requirements

The SDK wraps the native C library libevolis. The correct shared library for your platform is bundled inside the wheel:

PlatformLibrary
Linux x86-64lib/linux-x86_64/libevolis.so
Linux ARM64lib/linux-aarch64/libevolis.so
Linux ARMv7lib/linux-armv7-lts/libevolis.so
macOSlib/macos/libevolis.dylib
Windows 32-bitlib/windows-x86/evolis.dll
Windows 64-bitlib/windows-x86_64/evolis.dll

The import evolis statement loads the correct library automatically.

Minimal print example (color image, front face)

import evolis
 
# Open a connection by printer name (as it appears in the OS)
co = evolis.Connection("Evolis Primacy 2")
 
state = co.get_state()
if state.major == evolis.State.Major.READY:
    ps = evolis.PrintSession(co)
    ps.set_image(evolis.CardFace.FRONT, "/path/to/front.bmp")
    rc = ps.print()
    print("Result:", rc)
 
co.close()

Note: is_open() is deprecated — use get_state() instead.

The Primacy printer supports a dedicated black (K) panel. Use set_black() instead of set_image() when you want to print only black content.

The bitmap must be 1 bit per pixel (monochrome BMP).

import evolis
 
co = evolis.Connection("Evolis Primacy")
 
state = co.get_state()
if state.major == evolis.State.Major.READY:
    ps = evolis.PrintSession(co)
 
    # set_black() uses only the K (black resin) panel
    # Image must be 1bpp monochrome BMP
    ps.set_black(evolis.CardFace.FRONT, "/path/to/black_front.bmp")
 
    rc = ps.print()
    if rc == evolis.ReturnCode.OK:
        print("Print successful")
    else:
        print("Print failed:", rc)
 
co.close()

Using an in-memory buffer instead of a file path

with open("/path/to/black_front.bmp", "rb") as f:
    data = bytearray(f.read())
 
ps.set_black_buffer(evolis.CardFace.FRONT, data)
rc = ps.print()

Context manager pattern

Connection supports the with statement — it closes automatically on exit.

import evolis
 
with evolis.Connection("Evolis Primacy") as co:
    ps = evolis.PrintSession(co)
    ps.set_black(evolis.CardFace.FRONT, "/path/to/black_front.bmp")
    rc = ps.print()
    print(rc)

Check printer state before printing

import evolis
 
co = evolis.Connection("Evolis Primacy")
state = co.get_state()
 
print("Major:", state.major)   # State.Major enum
print("Minor:", state.minor)   # State.Minor enum
 
if state.major == evolis.State.Major.ERROR:
    print("Printer has an error, minor:", state.minor)
elif state.major == evolis.State.Major.READY:
    print("Printer is ready")