Como posso imprimir um SVG, já dimensionado para tamanho a4, na linha de comando? Tentei usar lpr
, mas a impressora apenas imprimiu o XML real do arquivo, o que não era o que eu queria.
Como posso imprimir um SVG, já dimensionado para tamanho a4, na linha de comando? Tentei usar lpr
, mas a impressora apenas imprimiu o XML real do arquivo, o que não era o que eu queria.
Respostas:
O Inkscape pode converter entre vários formatos de gráficos vetoriais, incluindo SVG para PDF. Embora seja normalmente um aplicativo GUI, ele pode ser executado no modo em lote sem um servidor X disponível.
inkscape --without-gui --export-pdf=foo.pdf foo.svg
lpr foo.pdf
Ou se você deseja imprimir diretamente:
inkscape --without-gui --export-pdf=/dev/stdout foo.svg | lpr
Outra possibilidade é a biblioteca Apache Batik . No entanto, embora exista uma ferramenta de linha de comando baseada nessa biblioteca, Fop , ela não parece ter uma maneira de usar a entrada SVG; portanto, você precisará escrever um pouco de código de cola em Java.
Os arquivos SVG, como você observou, são apenas texto xml. Despejar esses dados diretamente na impressora não gera nada. O que você precisa é de um programa que pode renderizar esses dados. Você diz que o arquivo já está dimensionado para o tamanho A4, que é apenas um espaço de coordenadas para os dados vetoriais escalonáveis. Não é renderizado.
No entanto, não se desespere! Existem muitos programas que podem renderizar os dados da linha de comando e alguns que podem até renderizar e imprimir tudo de uma só vez. Você precisa procurar nos sinalizadores de linha de comando alguns programas de maior peso com os quais normalmente espera obter uma GUI.
Por exemplo, eu sei que você pode usar o LibreOffice na linha de comando para abrir e imprimir um arquivo ou convertê-lo para outro formato. Existe um prático utilitário de linha de comando chamado unoconv que facilita muito o processo de conversão, simplificando todos os sinalizadores que você teria que enviar.
O Gimp também possui alguns sinalizadores de linha de comando para abrir, converter, salvar e até imprimir. Alguns dos standby antigos, como o ImageMagick, também podem converter arquivos SVG em imagens renderizadas em um determinado tamanho. Espero que outros aplicativos como o Inkscape também consigam fazer isso.
Depois de ter uma imagem, deve ser fácil imprimir a partir da linha de comando. Se você fizer isso com frequência, poderá escrever um pequeno script de duas linhas para converter e imprimir!