Python에서 SVG를 PDF로 변환 [닫기]

Python에서 SVG를 PDF로 변환 [닫기]

svglib및 패키지를 사용하여 Python에서 SVG 파일을 PDF로 변환하려고합니다 reportlab. 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>

이것은 내가 변환하는 데 사용한 코드입니다( svglib웹 페이지에서 가져옴).

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

코드는 오류나 예외 없이 잘 실행되지만 file.pdf결과는 빈 파일입니다. 즉, 이 PDF 파일을 열면 아무것도 없는 흰색 배경 페이지만 보입니다.

내가 어디서 잘못됐나요?

답변1

마지막 줄을 수행하는 경우:

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

페이지에 멋진 파란색 원이 표시됩니다. 일반 매개변수 값을 사용하면 PDF가 플롯과 동일한 크기가 됩니다 autoSize.1

문제는 svg 파일에 크기 매개변수가 없다는 것입니다. 예를 들어 svg시작 태그를 다음과 같이 변경할 수 있습니다.

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

사용하지 않고도 비슷한(눈에 보이는) 결과를 얻을 수 있습니다.autoSize=0

관련 정보