SVG para gráficos de impressão


17

Quão bem o Scalable Vector Graphics funcionou para impressão?

Preciso gerar programaticamente gráficos para inclusão em documentos impressos. Parece que existem apenas dois candidatos sérios para um formato de arquivo de destino, EPS e SVG.

Como programador, o SVG parece mais fácil de trabalhar, mas não parece ter sido aceito pela indústria gráfica. Havia projetos para basear gráficos de impressão em SVG (por exemplo, Adobe PDFXML), mas nenhum parece estar ativo no momento. Além disso, as ferramentas da Adobe parecem ter encerrado um breve caso com o SVG.

Se eu escolhi o SVG como formato de entrega, que problemas podem existir, em comparação com as alternativas? Ouvi reclamações sobre o manuseio de texto do SVG, mas não encontrei nenhuma discussão detalhada. Outra coisa que eu suspeito que possa ser um problema é como o SVG é convertido em PDF de forma limpa.


Devem ser bibliotecas que podem ser convertidas em PDF para você.
DA01 10/06

Respostas:


9

Na verdade, para impressão EPS ou PDF seria melhor. O SVG é adequado para a Web (para o que foi projetado), mas geralmente há problemas com os RIPs durante a impressão. A maioria dos designers que recebem arquivos SVG os abre em um aplicativo de vetor e os salva novamente como arquivos nativos, eps ou PDF. NUNCA enviaria um arquivo SVG para um provedor de impressão.


Mas um PDF apenas deve incorporar o SVG em um 'papel virtual', como isso resolve os problemas do RIP?
Jggunjer

1
O @jiggunjer PDF usa uma estrutura de código totalmente diferente da SVG. PDF é baseado em postscript, svg não. Salvar como PDF não "incorpora o svg como papel virtual". É uma base de código diferente.
Scott

Entendo, pensei que o svg nativo fosse preservado de maneira semelhante à incorporação de uma imagem raster. Mas agora eu entendo que há uma conversão para caminhos em pdf. Isso é sem perdas ou pode haver variações dependendo da implementação do conversor de pdf? Por exemplo, o Inkscape produzirá o mesmo pdf para um determinado svg que o ghostscript?
Jggunjer

Não posso comentar no Inkscape. Posso dizer que a maioria dos RIPs (Raster Image Processors) usados ​​para impressão comercial provavelmente engasgará com uma imagem SVG. Eles não vão entender a base de código. O PDF é essencialmente um RIP de software . Portanto, geralmente, quando você salva algo como PDF, o código é reescrito / estruturado com a saída em mente da mesma maneira que um RIP de hardware processaria imagens. Basicamente, um aplicativo capaz de saída SVG e PDF deve ter parâmetros de conversão internos para configurar a saída com base no formato, e SVG é um formato totalmente inadequado para impressão comercial.
Scott Scott

Obrigado. Isso me fez pensar que eu postei uma pergunta relacionada: graphicdesign.stackexchange.com/q/97154/102588
jiggunjer

3

Eu usei o abcPDF para converter programaticamente SVG gerado em PDF para fins de impressão. Faz cerca de 4 anos, mas não consigo imaginar que o suporte na biblioteca tenha diminuído.


1

O Inkscape pode converter arquivos SVG em PDF e EPS via linha de comando. Google "linha de comando svg para eps". Essa seria uma boa solução para gráficos destinados à entrega na web e na impressão.

Lembre-se de que, embora isso deva funcionar no Linux, o Inkscape via linha de comando em um Mac está um pouco danificado (pode ser necessário compilar o Inkscape ou alterar a ligação do arquivo dentro do .app)


-1

Se você precisar converter a imagem em bitmap, selecione o tamanho certo antes de converter a imagem, pois qualquer redimensionamento após a conversão da imagem resultará em perda de qualidade.


3
Você pode explicar por que você acha que uma alteração no bitmap pode ser útil? Eu preferiria um formato vetorial.
Mensch

-2

Toda a indústria (cortadores a laser, fresadoras, etc.) confia em "fazer trabalho físico" com o DXF, que é um Drawing Exchange Format, que pode ser convertido em JSON AST (muitas bibliotecas disponíveis para esse fim) que pode ser convertido exatamente em SVG; portanto, não há motivo possível para impedir que o SVG use para fins de impressão.

Um atributo crucial do SVG para essa finalidade é o viewBox=que indica as dimensões reais do desenho. viewBox=deve corresponder a width=e height=, ou você obterá impressões cortadas e redimensionadas. Você deve fornecer um viewBox=atributo na exportação e exigi-lo na importação.

Ainda assim, você pode encontrar problemas com o SVG, mas isso não será culpa do SVG: existem muitos drivers / aplicativos com erros por aí.

Na minha empresa, usamos SVG para o formato padrão de troca de desenhos.


1
Use o passo. Embora seja verdade que meus aplicativos podem ler (alguns dialetos) DXF, não é verdade que meu cortador a laser, fresadora cnc ou torno cnc use DXF. Na verdade, eles não usam, o laser usa rotinas de impressora baseadas em postscript devido à necessidade de rasteisation, mais próxima do pdf do que do SVG. As máquinas cnc usam código G. Em ambos os casos, o DXF não funcionará para impressão devido à falta do tipo certo de primitivas e CMS. Mas sim, você pode converter svg para impressão, mas o próprio svg não possui os recursos necessários para impressão comercial. Eles seriam fáceis de injetar, mas não implementados, afinal o SVG é como um pdf aleijado.
Joojaa 17/10/1918

Obrigado por abrir as portas para uma discussão mais profunda. Não mencionei as etapas intermediárias para reduzir a complexidade da resposta: o código G ou o Postscript (ou qualquer formato final) são produzidos pela empresa que detém a máquina (cortador a laser, impressora etc.) possivelmente usando o software proprietário da máquina ou por qualquer conversor em que a máquina suporte seu formato. Se um formato (DXF, portanto SVG neste caso) estiver sendo usado como etapa intermediária, isso significa que é um formato adequado para o trabalho físico. Você se importaria de mencionar quais primitivas estão faltando para o SVG? (DXF não tem formas sólidas, AFAIK)
ceremcem
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.