Eu sugiro usar impressoras que suportem códigos PCL da HP ou emulação HP PCL. É mais fácil alterar uma impressora / dispositivo do que reescrever um aplicativo legado.
Trabalho com impressão autônoma de armazenamento / produção a partir de um aplicativo legado. Eu tenho que validar as soluções de impressão, por isso, faz sentido ter um número limitado de dispositivos que você precisa suportar.
Para a edição em PDF, no passado, precisei usar um complemento comercial PCL-para-PDF . Com o Linux, conseguimos lidar com isso com software de código aberto.