손상된 PDF 파일을 수정 / 복구하려면 어떻게해야합니까?


73

누구든지 어떤 권장 사항이나 손상된 PDF를 복구하기위한 절차가 있습니까? 파일을 열면 "이 문서를 여는 동안 오류가 발생했습니다. 파일이 손상되어 복구 할 수 없습니다."라는 메시지가 나타납니다. 저기 밖에 무수히 많은 도구가있는 것 같지만 아무도 내가 평판이 좋다고 말할 수는 없습니다. 이 오픈 소스 리눅스 기반 솔루션이 있습니까?


Opensource PDF 도구는 꽤 엉터리 인 경향이 있습니다. 너 뭐하고있어?
Satanicpuppy


그들은 쓸모없는 "레지스트리 클리너"의 무수한 것처럼 보였으므로 도구 중 하나의 모양을 좋아하지 않았습니다. Adobe Pro를 사용해 보았고 Ghostscript 또는 PDFForge에 복구 스위치가 있는지 살펴보기 시작했습니다.
Tim Alexander

Ghostscript는 괜찮지 만 확실히 Acrobat보다 좋지는 않습니다. 완전 맨손의 뼈다.
Satanicpuppy

6
@Satanicpuppy 나는 동의하지 않는다 : 나는 고스트 스크립트를 사용하여 손상되거나 낮은 품질의 pdfs를 아주 자주 재구성하고 매우 잘 수행한다.
Eddie B

답변:


91

Ghostscript는 손상된 PDF를 자동으로 복구합니다 ... 첫 번째 위치에서 열 수있는 경우 (즉, 복구 할 수 없을 정도로 손상되지 않은 경우). 하지만 그 후에도 결과를 다시 확인해야합니다.

Linux의 경우 다음 명령을 사용하십시오.

 gs \
  -o repaired.pdf \
  -sDEVICE=pdfwrite \
  -dPDFSETTINGS=/prepress \
   corrupted.pdf

Windows에서는 다음을 시도하십시오.

 gswin32c.exe ^
  -o repaired.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFSETTINGS=/prepress ^
   corrupted.pdf

2
Ghostscript는 pdfs 렌더링의 환상적인 역할을합니다 ... 저는 정기적으로 gs를 사용하여 글꼴 품질을 향상시키기 위해 pdfs를 재구성합니다.
Eddie B

1
/ prepress는 / screen과 비교했을 때 품질이 정말 좋습니다. 감사.
Dolanor

32

PDF 파일이 손상되었습니다. print.pdf Ghostscript가 열리지는 않았지만 일반적인 그래픽 리눅스 뷰어 (Okular, Evince)가 잘 열었습니다. (필자의 경우 파일은 16 진수 편집기에서 열 때 PDF 머리글 대신 처음에 가비지가 있습니다.)

이 PDF 뷰어는 Poppler를 백엔드 PDF 렌더러로 사용합니다. 따라서 Poppler의 명령 줄 도구를 사용하여 PDF를 복구 할 수 있습니다. 우분투에서는 이것들이 poppler-utils 꾸러미. 내가 사용 :

pdftocairo -pdf print.pdf print_repaired.pdf

올바른 헤더가있는 PDF 파일을 생성 한 Ghostscript와 같은 도구가 이제 허용되었습니다.


3
+1은 내 Quartz가 불만없이 PDF를 생성하고 즉시 출력을 생성하기 시작합니다. 고스트 스크립트 (Ghostscript), 어도비 아크로벳 프로 (Adobe Acrobat Pro) 및 다른 사람들은 내 120GB pdf를 먼저 재구성해야한다고 주장했다.
Orwellophile

이것은 적어도 이상한 PDF에 대해서는 작동하지 않지만 좋은 시작처럼 보입니다.
Brian Peterson

1
Ghostscript가 페이지의 임의의 요소를 제거하기를 원하는 PDF에서 완벽하게 작동합니다.
Andrea Lazzarotto

Ghostscript는 문서를 읽지 못했지만 매력적이었습니다. BTW 나는 새로운 리눅스 서브 시스템을 사용하여 Windows에서 이렇게했다.
HyLian

19

mutool ( 프로젝트 페이지 , 맨 페이지 ) 손상된 PDF를 복구합니다. 인쇄하지 않고 .

  • 예 : 우분투에서 : sudo apt-get install mupdf-tools
  • 다음과 같이 실행하십시오. mutool clean input.pdf output.pdf
mutool clean [options] input.pdf [output.pdf] [pages]

  The clean command pretty prints and rewrites the syntax of a PDF file.
   It can be used to repair broken files, expand compressed streams,
   filter out a range of pages, etc.
  If no output file is specified, it will write the cleaned PDF to
   "out.pdf" in the current directory.

또는 PDF를 렌더링하지 않고 구성 요소로 분해 / 디 컴파일 할 수있는 몇 가지 도구와 프레임 워크가 있습니다. 텍스트, 스크립트 및 이미지 추출에 유용 할 수 있습니다. 이러한 도구 목록은 다음 답변을 참조하십시오. https://reverseengineering.stackexchange.com/q/1526/8210 . 예 : 당신은 현재 최고 대답을 시도 할 수 있습니다. 종이 접기 , GTK 기반 뷰어가 있습니다.


3
이 솔루션은 PDF 파일을 "인쇄"하지 않고 링크, 클릭 할 수있는 항목 등을 계속 유지하므로 위에 제시된 솔루션보다 "더 나은"방식으로 작동합니다. 나에게 고스트 스크립트 또는 카이로.
Speredenn

1
운수 나쁘게, mutool clean 가능한 모든 오류를 수정하지는 않습니다. 글꼴 및 내용 스트림에 여러 가지 오류가있는 파일이 있는데 mutool은 이러한 오류를 유지합니다.
Dominik Honnef

1
@DominikHonnef PDF를 분해하고 렌더링하지 않고 모든 파트를 볼 수있는 도구 / 프레임 워크를 언제든지 시험해 볼 수 있습니다. 그러면 텍스트, 스크립트, 이미지 등을 직접 얻을 수 있습니다. 도구 목록을 보려면 다음 답변을 참조하십시오. reverseengineering.stackexchange.com/q/1526/8210
jmiserez

나를 위해 일한 유일한 것!
jamadagni

이것은 pdf 문서를 검사하지 않기 때문에 더 효과적입니다.
riccs_0x

9

pdf 파일이 손상되었습니다. 다운로드에 사용 된 PHP 파일이 HTML의 일부 오류와 끝에 NUL 문자를 표시했기 때문입니다.

해결책은 메모장 + +로 pdf를 열고 라인 뒤의 모든 텍스트를 제거하는 것이 었습니다.

%%EOF

같은, 어도비 리더가 열리지 않았지만 네이티브 맥, 크롬 및 파이어 폭스 PDF 플러그인은 PDF 파일을 잘 표시했습니다. 이유는 업로드 중에 마지막 줄에 추가 NUL이 추가되었습니다.
Tilo

나는 두 개의 PDF 파일을 가지고 있었다. %%EOF. 나는 처음 이후 모든 것을 삭제했다. %%EOF 16 진수 편집기를 사용합니다. 이제 모든 것이 잘 작동합니다.
Adrian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.