Evolis SDK for Python — Quickstart
Installation
pip install Evolis-SDKRequirements
The SDK wraps the native C library libevolis. The correct shared library for your platform is bundled inside the wheel:
| Platform | Library |
|---|---|
| Linux x86-64 | lib/linux-x86_64/libevolis.so |
| Linux ARM64 | lib/linux-aarch64/libevolis.so |
| Linux ARMv7 | lib/linux-armv7-lts/libevolis.so |
| macOS | lib/macos/libevolis.dylib |
| Windows 32-bit | lib/windows-x86/evolis.dll |
| Windows 64-bit | lib/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 — useget_state()instead.
Print black-only to card front (Primacy)
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")