Intelligent Printer Data Stream (IPDS; deutsch Intelligenter Druckdatenstrom) ist eine proprietäre Seitenbeschreibungssprache von IBM. IPDS fasst dabei sowohl Inhalt als auch Druckersteuerungsbefehle in einem bidirektionalen Kommunikationsprotokoll zusammen. Es ähnelt damit dem älteren, aber zu IPDS inkompatiblen PPDS.
IPDS wird zwischen Druckertreiber von IBM (IBM Print Services Facility oder Info Print Manager) und dem Drucker benutzt. Es gibt aber weitere Programme wie SBS oder PRISMAproduction Server von Océ, die auch IPDS erzeugen können.
Datenaufbau
IPDS-Daten sind wie folgt aufgebaut: 2 Bytes Länge, 2 Bytes Befehl X'D6xx' (wobei xx den Befehl darstellt) 1 Byte Flag Field (wobei 1 Bit den Drucker veranlasst, einen sogenannten Acknowledge-Record von 24 Bytes zu senden, der den Zählerstand des Druckers an das Treiberprogramm übermittelt). Dieses erlaubt eine Protokollierung bereits gedruckter Seiten, z. B. bei Großaufträgen mit durchlaufenden Seiten.
Im Falle eines Fehlers enthält der NACK (negative acknowledge record) die Fehlerursachen. Die nächsten 2 Bytes sind ein Zähler für die IPDS-Befehle. Danach kommen die Daten.