Como faço para converter e SVG (contendo algumas palavras de texto latino e alguns gráficos vetoriais simples) para um PDF no Linux?
Eu tentei o Inkscape 0.47 no Ubuntu Lucid, mas ele move alguns sub-gráficos aleatoriamente e faz algumas linhas menores no PDF de saída. Então, a saída é inútil, porque os gráficos parecem completamente diferentes.
Eu tentei abrir o SVG no Google Chrome 16 e imprimi-lo em PDF, mas ele distorce todas as cores e também remove alguns elementos. (O SVG aparece bem na tela, mas já está ruim na pré-visualização e o PDF gerado também é ruim.)
Eu não quero rasterizar ou renderizar o SVG. Uma solução que converta o SVG em uma imagem de bitmap e, em seguida, crie um PDF com a imagem incorporada não é uma resposta à minha pergunta. (O FYI Inscape 0.47 renderiza o texto de uma maneira muito feia, sem antialiasing, ao renderizar para PNG.)
Quais outras opções eu tenho?
fonte
Respostas:
rsvg-convert fiz o truque para o SVG que eu queria converter:
rsvg-convert -f pdf
não rasteriza o SVG e incorpora e subconjunto fontes (pelo menos, incorporou os caracteres usados da fonte Arial). Às vezes, a incorporação de fontes falha (por exemplo, para a fonte LMRoman17) e todo o arquivo de fontes é copiado para o PDF gerado.Dependências no Ubuntu Lucid:
Por padrão, o libcairo precisa do libX11, então o rsvg-convert pode ser difícil de instalar em um sistema headless.
Nota: A página do homem de
rsvg-convert
afirma que a ferramenta sempre rasteriza, mas isso não é verdade. O manual é simplesmente obsoleto. Às vezes, sua ferramenta geradora de svg pode parcialmente rasterizar a imagem svg, o que também pode enganá-lo.fonte
rsvg-convert
é chamadorsvg-view
.Isso funciona no Ubuntu Lucid:
A invocação do Inkscape da linha de comandos acima funciona mesmo no modo sem cabeça, sem uma GUI (
DISPLAY=
). No entanto, a instalação do Inscape instala muitas dependências, incluindo o X11.Por favor, note que o status de saída do Inskscape é sempre 0, mesmo que ocorra um erro - por isso esteja atento ao stderr.
Há também
inkscape --shell
, adequado para converter muitos documentos em um lote. Isso evita o tempo de inicialização lento do Inkscape para cada arquivo:O Inkscape também é útil para simplificar um SVG:
fonte
brew install inkscape
nos dias de hoje. O resultado/usr/local/bin/inkscape
funcionou para mim sem ter que executar o X11.app.dmg
distribuído em seu próprio site e, em seguida, chamado a partir da linha de comando depois de criar dois links simbólicos:ln -s ~/Applications/Inkscape.app/Contents/Resources/bin/inkscape ~/bin/inkscape
e da mesma forma parainkscape-bin
(assumindo~/bin
está no seu$PATH
).-z
(ou--without-gui
) sinalizar com o Inkscape para executá-lo somente no modo batch (nenhuma janela será aberta).Eu recebo bons resultados de impressão do Inkscape (0.47 também) para PDF e para salvar como PDF (mas ligeiramente diferente), mas isso pode depender do gráfico em mãos.
Uma alternativa com resolução mais baixa (não tentei nenhum comutador para melhorá-lo) é
convert
faz parte doImageMagick
pacote. Rasterizador é outro programa:Para descobrir, quais programas que manipulam svgs estão instalados em seu sistema, apenas tente
A man page para estes programas deve explicar se o programa é útil para converter o svg para pdf.
fonte
convert
não é uma resposta à pergunta original, porqueconvert
rasteriza o SVG para uma imagem de bitmap, e a pergunta original estava procurando por uma solução que não faz isso.Eu usei o CairoSVG com sucesso no OSX e no Ubuntu.
Documentação CairoSVG
fonte
https://superuser.com/a/79064/19956 menções gsvg parte do GhostPDL.
Eu tentei gsvg ghostpdl-9.06 no Ubuntu Lucid, mas falhou por dois SVGs gerados pelo Inkscape. Um SVG tinha texto, o outro tinha apenas gráficos vetoriais. Ele também falhou em gráficos simples sem as extensões do Inkscape ou o caminho do clipe. Então eu não considero o gsvg um conversor usável de SVG para PDF.
fonte
No Mac OS (considerando que você já tem o brew instalado) eu faço:
O mesmo deve funcionar no Linux, mas com o apt-get.
fonte
svg2pdf
ersvg-convert
, isso preserva as fontes.Abra o arquivo svg com
Image Viewer
(Também chamado Olho do Gnomoeog
) e imprimi-lo em um arquivo PDF (digamosimage.pdf
) e converter esse pdf para eps usandopdf2ps
comando. Simples!Etapas elaboradas:
Instalar
Image Viewer
se ainda não foi feito (etapa altamente improvável se você usargnome
)Abra o arquivo svg com
eog
e imprimi-lo paraimage.pdf
Arquivo.(Opcional) Remova o espaço em branco do arquivo pdf:
Isso irá gerar
image-crop.pdf
com o espaço em branco circundante removido.Converter pdf recortado para eps (use
image.pdf
diretamente se você não cortou o pdf)É isso aí!
fonte