а что за термодифузионник? у Зебры и Интермека, к примеру, очень развитый язык, там совсем не сложно сразу скриптом сформировать задание на встроенном языке, и потом его просто выплюнуть в порт. без всяких драйверов и прочей мишуры.
по взаимодействию - я пару лет назад реализовывал что-то подобное, там сервер с приложением формировал у себя задание, клал его в БД (у записи был признак "обработано/не обработано"), сервер печати с некоторой переодичностью дергал таблицу, если находил необработанную запись - печатал ее и апдейтил запись. Получался PULL-механизм, сервер печати из защищенной сети к серверу БД в незащищенной обращаться мог, обратное - нет.