PDF 파일에서 벡터를 추출하는 방법?


51

내부에 벡터 이미지가 포함 된 PDF 파일이 있습니다. (인터넷에서 다운로드 했으므로 원본이 없습니다.)

다른 이미지에 오버레이 할 수 있도록 벡터를 추출하고 싶습니다. 인쇄 매체 나 웹 사이트에서 사용하십시오.

PDF 파일에서 특정 벡터를 어떻게 추출합니까?

PDF 파일에서 벡터를 추출 할 수있는 소프트웨어가 있습니까? (바람직하게는 무료입니다.)


@ slhck : 나는 Vector graphics를 의미했습니다 . Inkscape를 사용했는데 예상대로 작동합니다. 귀하의 의견을 답변으로 작성하여 승인 된 것으로 표시 할 수 있습니까?
Devdatta Tengshe 2016

답변:


49

무료, 오픈 소스 및 크로스 플랫폼 벡터 그래픽 응용 프로그램 인 Inkscape 를 사용할 수 있습니다 . PDF 파일을 가져오고 포함 된 벡터를 선택할 수 있습니다. 그런 다음 원하는대로 편집하고 처리 할 수 ​​있습니다.

자세한 설명서 는 Inkscape 웹 사이트에서 구할 수 있습니다.

Linux에서는 X11이 필요합니다. 기본 Windows 버전도 있습니다.

또는 Adobe Illustrator에 무료 소프트웨어 (유료 소프트웨어)를 제공 할 수 있습니다.


2
Linux에서는 X11이 필요합니다. 기본 Windows 버전도 있습니다 (PDF에서 벡터 드로잉을 추출하는 데 사용했습니다).
Mark Leighton Fisher

23

Inkscape를 사용하는 것이 가장 좋은 방법이지만 X11이없는 사용자는 명령 행에서 poppler-utils 를 사용하여 PDF의 개별 페이지를 SVG 형식으로 추출 할 수도 있습니다 . 예를 들어 30 페이지 만 추출하려면

$ pdftocairo -f 30 -l 30 -svg  somehugemanual.pdf  myextractedpage.svg

그런 다음 좋아하는 벡터 편집기 (광산은 Inkscape)를 사용하여 이미지를 텍스트와 분리 할 수 ​​있습니다.

또는 하드 코어 명령 줄 사용자 인 경우 EPS (캡슐화 된 포스트 스크립트)로 추출하여 sed모든 텍스트 (pdftocairo의 경우 BT와 ET 줄 사이에 있음)를 숨길 수 있습니다. 방법은 다음과 같습니다.

$ pdftocairo -f 30 -l 30 -eps  manual.pdf  - | sed '/^BT$/,/^ET$/ d' > myimage.eps

그리고 X11을 사용하지 않는 것이 미친다면 Ghostscript의 eps2eps명령을 사용하여 명령 줄에서 이미지의 경계 상자를 축소 할 수도 있습니다 .

$ eps2eps myimage.eps myimage-bb.eps

나는 이것을 테스트했으며 훌륭하게 작동합니다. 그러나 개인적으로 Inkscape를 사용하는 것이 더 쉽다는 것을 알았습니다.


명령 행을 +1하면 모든 텍스트가 제거되지만 모든 이미지를 제거하는 방법을 알고 있습니까? 벡터 그래픽 만 남은 솔루션을 찾고 있습니다 :)
clarkk

이것이 당신을 위해 작동합니까? cat foo.eps | sed '/^8 dict dup begin$/,/^Q$/ c Q' > nobitmaps.eps
hackerb9

1
그러나 eps 파일에 벡터 그래픽이 있는지 확인할 수 있습니까? :)
clarkk

1
Ghostscript의 eps2eps를 사용하여 가장 작은 경계 상자로 증류하여 완전히 비 었는지 확인할 수 있습니다. 그러나 이것은 새로운 질문이되기 시작했습니다. 부담없이 물어보십시오. 대답하지 않으면 누군가가 할 것입니다.
hackerb9

1
@ hackerb9 덕분에 이제 eps를 읽을 수 있지만 이미지의 밀도가 낮아 텍스트 일부가 여전히 남아 있습니다. pdf는 여기 에 있으며 이미지는 7 페이지
rtrtrt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.