O CUPS tem um mecanismo de filtro para detectar o formato de sua entrada e convertê-lo em um formato interno (PostScript ou para uma imagem rasterizada).
O CUPS tem um banco de dados de nomes de arquivos e números mágicos (distinto daquele usado pelo file
comando, mas servindo a um propósito semelhante e operando em princípios semelhantes). Ele usa esse banco de dados para construir uma cadeia de transformação entre a entrada e um formato interno.
O banco de dados está localizado em /usr/share/cups/mime/
no Arch Linux e Ubuntu; outras distribuições podem usar um caminho diferente.
Se o CUPS não reconhecer o formato de entrada, dependendo de como os filtros estão configurados, ele poderá assumir o texto ou recusar a impressão. Procure por uma linha contendo apenas application/octet-stream
(com mais nada depois) nos seus filtros; se estiver presente, a entrada não reconhecida é passada para a impressora, caso contrário, ela será rejeitada como não imprimível.
Observe que a entrada com aspecto de texto, por exemplo, SVG, será impressa como texto em qualquer configuração sã. Se a sua instalação não tiver nada que defina o formato SVG, o SVG será reconhecido sob alguma regra de texto genérico e impresso como está.
Há uma boa documentação sobre como escrever filtros no Wiki SuSE .
Você deve instalar pelo menos o pacote cups-filters (anteriormente da Apple e incluído no CUPS em si, agora mantido pela OpenPrinting). Há um pacote no Arch. Isso inclui um filtro para JPEG, mas não para SVG.