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.