PDF 파일에서 이미지를 제거하는 방법


13

이미지 (그림 및 배경 이미지 등)가 많은 다소 큰 (~ 100MB) PDF 문서가 있으며 이미지가없는 PDF 사본을 갖고 싶지만 어떻게 해야할지 모르겠습니다. 그렇게.

나는 텍스트로 변환하는 것에 대해 이야기하는 것이 아니라 단락 / 테이블 / 여러 열을 그대로 유지하고 싶습니다.

명령 줄에 익숙하고 사용할 수있는 배포판이 다른 여러 컴퓨터가 있습니다.


각 페이지에 여러 이미지가있는 500 페이지의 문서에 대해 이야기하면서 모든 그림을 자동 으로 제거 하는 방법을 찾고 있습니다.
Ornux

답변:


14
cpdf -draft original.pdf -o version_without_images.pdf

리포지토리에는 없지만 웹 사이트 에서 다운로드 ( 사전 컴파일 또는 소스 )를 찾을 수 있습니다 .


수동 :

15.1 초안 문서

-draft 옵션은 파일에서 비트 맵 (사진) 이미지를 제거하여 적은 잉크로 인쇄 할 수 있습니다. 선택적으로 -boxes 옵션을 추가하여 이미지의 위치를 ​​나타내는 교차 상자로 빈 공간을 채 웁니다. 모든 경우에이 기능이 완전히 표시되는 것은 아닙니다 (비트 맵이 벡터 객체로 일부 가려 졌거나 원본에서 잘릴 수 있음). 예를 들면 다음과 같습니다.

 cpdf -draft -boxes in.pdf -o out.pdf

1
정확히 내가 무엇을 찾고 있었다. 출력 파일은 완벽합니다. 정말 고맙습니다!
Ornux

@Rinzwind "그들의 웹 사이트"링크는 실제로 zip 파일로 이동합니다.
Jos

흠 .. 그것은 텍스트 위에 무작위로 줄을 추가하고 파일 크기는 실제로 줄이지 않고 약간 커집니다.
Henning Koehler

23

최신 Ghostscript 릴리스도이 작업을 수행 할 수 있습니다. -dFILTERIMAGE명령에 매개 변수 를 추가하기 만하면 됩니다.

컨텐츠 유형 "vector""text" 를 선택적으로 제거하기 위해 추가 할 수있는 두 개의 새로운 매개 변수가 있습니다 .

  1. -dFILTERIMAGE: 모든 래스터 이미지가 제거 된 출력을 생성합니다.

  2. -dFILTERTEXT: 모든 텍스트 요소가 제거 된 출력을 생성합니다.

  3. -dFILTERVECTOR: 모든 벡터 도면이 제거되는 출력을 생성합니다.

이 옵션 중 두 가지를 결합 할 수 있습니다. (3 개를 모두 결합하면 모든 페이지가 비워집니다.)

다음은 위에서 언급 한 3 가지 유형의 컨텐츠가 모두 포함 된 예제 PDF 페이지의 스크린 샷입니다.

"이미지", "벡터"및 "텍스트"요소를 포함하는 원본 PDF 페이지의 스크린 샷 .
"이미지", "벡터"및 "텍스트"요소를 포함하는 원본 PDF 페이지의 스크린 샷.


다음 6 개의 명령을 실행하면 나머지 6 가지 변형이 모두 생성됩니다.

 gs -o noIMG.pdf -sDEVICE = pdfwrite -dFILTERIMAGE input.pdf
 gs -o noTXT.pdf -sDEVICE = pdfwrite -dFILTERTEXT 입력 .pdf
 gs -o noVCT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR 입력 .pdf

 gs -o onlyIMG.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERTEXT input.pdf
 gs -o onlyTXT.pdf -sDEVICE = pdfwrite -dFILTERVECTOR -dFILTERIMAGE input.pdf
 gs -o onlyVCT.pdf -sDEVICE = pdfwrite -dFILTERIMAGE -dFILTERTEXT 입력 .pdf

다음 이미지는 결과를 보여줍니다.


왼쪽 상단 부터 : 모든 "텍스트"가 제거되었습니다. 모든 "이미지"가 제거되었습니다. 모든 "벡터"가 제거되었습니다. 하단 에서 왼쪽부터 : "텍스트"만 유지; "이미지"만 유지; "벡터"만 유지되었습니다.
왼쪽 상단부터 : 모든 "텍스트"가 제거되었습니다.  모든 "이미지"가 제거되었습니다.  모든 "벡터"가 제거되었습니다.  하단에서 왼쪽부터 : "텍스트"만 유지;  "이미지"만 유지;  "벡터"만 유지되었습니다.



2

@Rinzwind 답변이 옳은 일 이지만 "중간"솔루션에 대해서만 언급하고 싶습니다. 일반적으로 고스트 스크립트 를 사용하여 이미지 크기를 크게 줄일 수 있습니다

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen \
   -dNOPAUSE -dQUIET -dBATCH -sOutputFile=small.pdf original.pdf

... 언제나 교정에 편리합니다. PDF 작성을위한 매뉴얼 페이지는 여기에 있습니다 .


@KurtPfeifle /screen은 비트 맵 이미지 해상도를 72dpi로 설정합니다. 예, DPI가 더 작은 이미지가 있으면 파일 크기가 커질 수 있습니다. 이것이 내가 "정상적으로"라는 단어를 사용한 이유입니다 ( "항상은 아니지만 자주"라는 의미에서). 원하는 것을 자유롭게 투표하십시오.
Rmano

다음 명령을 실행하십시오 for s in screen default ; do gs -o /dev/null -sDEVICE=pdfwrite -dPDFSETTINGS=/${s} -c "currentpagedevice {exch ==only ( ) print === } forall" | sort | tee ghostscript---pdfwrite-PDFSETTINGS-${s}--pagedevice-settings.txt; done.. 를 사용하여 비교할 수있는 두 개의 텍스트 파일이 생성됩니다 sdiff -sbB $[file1}.txt ${file2}.txt. 이제 당신은 모든 다른 설정을 정확 하고 완전하게 알고 있습니다 ! -dPDFSETTINGS=/screen
커트 파이 플

끝난. 여전히 --- 72dpi 대 150dpi /screen보다 더 큰 파일을 제공하는 옵션을 볼 수 없으며 /default최적화되어 EPS 미리보기를 버립니다 ...하지만 큰 문제는 아닙니다. 사람들은 더 나은 솔루션을 테스트하고 선택합니다.
Rmano 2016 년

죄송합니다. 아마도 첫 번째 진술의 건방진에 대해 사과해야합니다. 솔직히 말해서, 나는 실제로 나쁜 결과를 가져온 이전의 조사 (몇 년 전)에서 기억하는 것 같습니다/screen . 아마도 내 기억이 실패하거나와 섞어 버렸을 것입니다 /epub. 내가 준 명령은 내가 의미하는 바를 보여줄 것이라 확신했기 때문에 기억에서 나왔습니다. 이제 다시 그것을 다시 실행했는데, 더 이상 내가 기대했던 것을 보지 못했습니다. 몇 년 전에 더 확장 된 테스트를했습니다. 그런 다음 많은 (CID? / CFF?) 글꼴이 결과 PDF의 팽만감 크기를 래스터 화했습니다. 나는 더 많은 시간을했습니다 일단 내가 다시이 문제를 다시 방문해야 ... :-)
커트 Pfeifle에게

0

마스터 pdf 편집기를 사용하여 해당 이미지를 삭제하고 새 pdf 파일로 저장할 수 있습니다. Ubuntu 소프트웨어 센터에서 다운로드 할 수 있습니다.


시도하기 위해 방금 설치했지만 자동으로 수행 할 수있는 방법이 없습니다. 500 페이지 문서이므로 수동 제거는 해결책으로 보이지 않습니다. 내가 뭐 놓친 거 없니 ?
Ornux

아니 당신은 내가 이미지가 큰 크기라고 생각했기 때문에 아무것도 놓치지 않았으므로 이미지를 제거하고 너무 많은 이미지를 생각하지 않았습니다. 어쨌든 좋은 질문입니다.
Sudheer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.