Converter SVG para PDF em python [closed]

0

Estou tentando converter um arquivo SVG para PDF em python usando os pacotes svglib e reportlab . Aqui está o arquivo SVG.

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
  <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="blue" />
</svg>

Aqui está o código que estou usando para converter (peguei isso em svglib webpage).

>>> from svglib.svglib import svg2rlg
>>> from reportlab.graphics import renderPDF
>>> drawing = svg2rlg("file.svg")
>>> renderPDF.drawToFile(drawing, "file.pdf")

O código é executado sem nenhum erro ou exceção, mas o file.pdf assim gerado é um arquivo em branco. Quero dizer que quando eu abro este arquivo PDF não vejo nada, mas apenas uma página de fundo branco com nada nele.

Onde estou indo errado?

    
por g4ur4v 15.05.2013 / 15:23

1 resposta

3

Se você fizer essa última linha:

renderPDF.drawToFile(drawing, "file.pdf", autoSize=0)

você terá um belo círculo azul na sua página. O valor normal do parâmetro para autoSize é 1 , o que resulta em um PDF do mesmo tamanho do desenho.

O problema é que o seu arquivo svg não possui parâmetros de tamanho. Você pode, por exemplo altere a tag svg openining para:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1000px" width="1000px">

para obter um resultado semelhante (visível) sem usar autoSize=0

    
por 15.05.2013 / 16:34

Tags