Пару дней назад включаю принтер, чтобы распечатать пару фоток, и обнаруживаю симптомы забитости головки: часть цветов не пропечатывается, на изображении получаются полосы. Тест дюз показал, что часть из них не печатает. К сожалению, два прогона очистки головок не принесли никакого результата, кроме адского расхода чернил.
Проблему решил искать в железе. За время простоя принтера в систему был добавлен дешёвый USB-хаб. Исключив посредника между компьютером и принтером, я моментально решил проблему с якобы забитой головкой.
Разгадка проста: большинство струйников относится к «винпринтерам». Рисунок у них формируется драйвером, а принтеру отправляется в виде своего поточечного представления. Если в струйник и встроен какой-то язык описания страниц типа ESC/P, то он крайне беден и не используется в нормальных условиях. Для передачи данных по USB используются так называемые изохронные пакеты, имеющие гарантированную задержку доставки, но не имеющие защиты от потери при передаче. Логика такая: если пакет задержится, придётся тормозить печатающую головку, а это довольно сложно — проще не пропечатать часть картинки.
Такие же изохронные пакеты применяются и в других устройствах, где возможно выпадение данных, но требуется строгое соблюдение временны́х параметров, например, в подключаемых по USB звуковых картах или скайп-телефонах. Учите матчасть, коллеги!