Linux에서 SVG를 PDF로 변환하는 방법

Linux에서 SVG를 PDF로 변환하는 방법

Linux에서 SVG(몇 단어의 라틴어 텍스트와 간단한 벡터 그래픽 포함)를 PDF로 어떻게 변환합니까?

Ubuntu Lucid에서 Inkscape 0.47을 사용해 보았지만 일부 하위 그래픽이 무작위로 이동하고 출력 PDF에서 일부 줄이 더 짧아졌습니다. 따라서 그래픽이 완전히 다르게 보이기 때문에 출력은 쓸모가 없습니다.

Google Chrome 16에서 SVG를 열고 PDF로 인쇄해 보았으나 모든 색상이 왜곡되고 일부 요소도 제거되었습니다. (SVG가 화면에는 괜찮아 보이지만 인쇄 미리보기에서는 이미 상태가 좋지 않고 생성된 PDF도 상태가 좋지 않습니다.)

SVG를 래스터화하거나 렌더링하고 싶지 않습니다. SVG를 비트맵 이미지로 변환한 다음 이미지가 포함된 PDF를 만드는 솔루션은 내 질문에 대한 답변이 아닙니다. (참고로 Inscape 0.47은 PNG로 렌더링할 때 앤티앨리어싱 없이 텍스트를 매우 보기 흉한 방식으로 렌더링합니다)

Q다른 옵션이 있나요?

답변1

rsvg-변환변환하고 싶은 SVG에 대한 트릭을 수행했습니다.

$ sudo apt-get install librsvg2-bin
$ rsvg-convert -f pdf -o t.pdf t.svg

rsvg-convert -f pdfSVG를 래스터화하지 않으며 글꼴을 포함하고 하위 집합합니다(적어도 Arial 글꼴의 사용된 문자를 포함했습니다). 경우에 따라 글꼴 포함이 실패하고(예: LMRoman17 글꼴의 경우) 전체 글꼴 파일이 생성된 PDF에 복사됩니다.

Ubuntu Lucid에 대한 종속성:

  • libcairo.so.2
  • libgobject-2.0.so.0
  • libgthread-2.0.so.0
  • libglib-2.0.so.0
  • librsvg-2.so.2
  • libpthread.so.0
  • libc.so.6

기본적으로 libcairo에는 libX11이 필요하므로 rsvg-convert는 헤드리스 시스템에 설치하기 어려울 수 있습니다.

메모: 매뉴얼 페이지에는 rsvg-convert도구가 항상 래스터화된다고 명시되어 있지만 이는 사실이 아닙니다. 매뉴얼은 단순히 구식입니다. 때때로 svg 생성 도구가 svg 이미지를 부분적으로 래스터화할 수 있으며, 이로 인해 오해가 발생할 수도 있습니다.

답변2

이것은 Ubuntu Lucid에서 작동합니다.

$ sudo apt-get install inkscape
$ inkscape t.svg --export-pdf=t.pdf

위의 명령줄 Inkscape 호출은 GUI( DISPLAY=) 없이 헤드리스 모드에서도 작동합니다. 그러나 Inscape를 설치하면 X11을 포함하여 많은 종속성이 설치됩니다.

오류가 발생하더라도 Inskscape의 종료 상태는 항상 0이므로 표준 오류에 주의하세요.

inkscape --shell또한 많은 문서를 일괄 변환하는 데 적합한 가 있습니다 . 이렇게 하면 각 파일의 Inkscape 시작 시간이 느려지는 것을 방지할 수 있습니다.

$ (echo t.svg --export-pdf=t.pdf;
   echo u.svg --export-pdf=u.pdf) |
  DISPLAY= inkscape --shell

Inkscape는 SVG를 단순화하는 데에도 유용합니다.

$ DISPLAY= inkscape t.svg --export-plain-svg=t.plain.svg

답변3

나는 OSX와 Ubuntu에서 CairoSVG를 성공적으로 사용했습니다.

pip install cairosvg
cairosvg in.svg -o out.pdf

카이로SVG 문서

답변4

Inkscape(0.47도 마찬가지)에서 PDF로 인쇄하고 PDF로 저장하면 좋은 결과를 얻을 수 있지만(약간 다름) 이는 사용 중인 그래픽에 따라 달라질 수 있습니다.

해상도가 낮은 대안(개선하기 위해 어떤 스위치도 시도하지 않았습니다)은 다음과 같습니다.

 convert file.svgz file.pdf 

convert패키지 의 일부입니다 ImageMagick. Rasterizer는 또 다른 프로그램입니다.

 rasterizer -m application/pdf file.svgz -d file.pdf 

svgs를 처리하는 프로그램이 시스템에 설치되어 있는지 확인하려면 다음을 시도해 보십시오.

 apropos -s 1 svg

이러한 프로그램의 맨페이지에서는 해당 프로그램이 svg를 pdf로 변환하는 데 유용한지 여부를 설명해야 합니다.

관련 정보