본문 바로가기

PDF 복구

열리지 않는 PDF를 살려 냅니다. 파일 인덱스를 다시 만들고, 문서를 아예 분석할 수 없더라도 바이트 속에 아직 읽을 수 있는 내용은 모두 되살립니다. 아무것도 저장하지 않습니다.

  • 저장되지 않음
  • 대기열 없음, 기다림 없음
  • 회원가입 없음, 워터마크 없음

사용 방법

1

손상된 PDF 추가

열리지 않는 파일을 끌어다 놓으세요. 다른 앱에서 거부된 파일이어도 괜찮습니다.

2

복구

파일 인덱스를 다시 만들거나, 분석할 수 없는 파일이면 객체 하나하나로 다시 구성합니다.

3

확인 후 다운로드

몇 페이지가 돌아왔는지, 어떤 작업을 했는지 알려 드린 뒤 복구된 파일을 다운로드합니다.

대개 무엇이 망가지는지, 그리고 되살리는 두 가지 방법

열리지 않는 PDF 대부분은 실질적으로 손상된 것이 아닙니다. PDF는 상호 참조 테이블로 끝나는데, 이는 파일 안 모든 객체의 바이트 위치를 기록한 인덱스이며 뷰어는 이것으로 모든 것을 찾습니다. 이 인덱스가 깨지면 모든 내용이 그대로 있어도 아무것도 찾을 수 없으므로 멀쩡한 문서가 열리지 않게 됩니다. 중단된 다운로드, 도중에 끊긴 저장, 충돌한 앱, 위치 정보를 갱신하지 않은 프로그램의 편집, 줄바꿈 문자를 망가뜨린 전송은 모두 인덱스를 깨뜨리지만 내용은 전혀 건드리지 않습니다.

첫 번째 단계는 바로 이 점을 이용합니다. 파일을 관대하게 분석해, 기록된 위치가 실제 내용과 맞지 않으면 무시한 뒤, 올바른 인덱스와 올바른 스트림 길이, 깔끔한 트레일러로 새로 씁니다. 대다수 파일은 이 단계에서 복구되며, 빠르고, 페이지는 전혀 바뀌지 않습니다. 결과물은 제대로 작동하는 목차를 다시 달아 놓은 여러분의 문서입니다.

파일을 아예 분석할 수 없으면 두 번째 단계가 데스크톱 복구 도구와 같은 일을 합니다. 원시 바이트를 처음부터 끝까지 훑으며 객체 헤더를 찾고, 아직 PDF 객체처럼 보이는 모든 것을 모은 뒤, 파일이 주장하는 내용이 아니라 실제로 있는 내용을 바탕으로 인덱스를 다시 만듭니다. 두 단계 중 어느 쪽이 실행됐는지 페이지에서 알려 드리는데, 이는 중요합니다. 재구성했다는 것은 원래 구조를 읽을 수 없었다는 뜻이므로, 결과물을 믿기 전에 한 번 살펴봐야 합니다.

어느 단계도 없는 데이터를 만들어 낼 수는 없으며, 세상 어떤 도구도 마찬가지입니다. 다운로드가 60%에서 멈췄다면 나머지 40%의 페이지는 파일에 존재하지 않습니다. 복구는 도착한 페이지를 찾아내고 거기서 멈춥니다. 압축 스트림 내부가 손상됐다면 그 스트림은 압축을 풀 수 없으므로, 그 스트림이 그리던 페이지는 빈 페이지로 돌아오고 주변 페이지는 멀쩡합니다. 여기서는 문서의 일부를 되살리는 것이 정상적인 좋은 결과이며, 잘린 사본을 복구하는 것보다 원본 파일을 다시 받는 편이 언제나 낫습니다.

다른 작업이 필요할 때

이 작업의 표준 도구는 qpdf 이며, 같은 첫 번째 단계를 더 철저하게 수행합니다. qpdf --replace-input damaged.pdf 는 올바른 인덱스로 파일을 다시 쓰며, 관대한 분석이 걸려 넘어질 수 있는 암호화 문서, 객체 스트림, 선형화 파일도 처리합니다. mutool clean -ggg in.pdf out.pdf 는 한발 더 나아가 페이지 트리를 다시 만들고 참조되지 않는 것을 버립니다. 둘 다 무료이고, 브라우저 탭이 감당할 수 있는 것보다 훨씬 큰 파일도 처리하며, 무엇을 고쳐야 했는지 알려 줍니다.

객체 스캔밖에 방법이 없을 만큼 심하게 손상된 파일에는 Ghostscript가 가장 끈질긴 경우가 많습니다. gs -o repaired.pdf -sDEVICE=pdfwrite broken.pdf 는 인덱스를 다시 만드는 데 그치지 않고 페이지 콘텐츠를 해석하므로, 다른 도구가 포기한 페이지를 재구성하기도 합니다. 대신 모든 것을 다시 쓰므로, 결과물은 살아남은 원래 데이터와 바이트 단위로 같지 않습니다.

자주 묻는 질문

실제로 무엇이 복구되나요?

“손상된” PDF 대부분은 구조는 멀쩡하지만 상호 참조 테이블, 즉 각 객체의 위치를 알려 주는 인덱스가 깨져 있습니다. 다운로드가 중간에 끊기거나, 저장이 중단되거나, 버그 있는 프로그램이 파일을 만들면 이런 일이 생기며, 내용은 그대로 있는데도 뷰어가 파일을 거부합니다. 이 인덱스를 다시 만들면 문서가 바로 돌아옵니다.

파일을 아예 분석할 수 없으면요?

그때는 원시 바이트에서 객체 헤더를 찾아 남아 있는 모든 것을 모은 뒤, 그 주위에 새 인덱스와 트레일러를 씁니다. 데스크톱 도구가 하는 것과 같은 복구 방식입니다. 결과 파일은 전달하기 전에 다시 열어 보므로, 여전히 열리지 않는 파일은 다운로드되는 대신 그렇다고 알려 드립니다.

망가진 제 파일이 어딘가에 저장되나요?

아니요. 복구 스캔도 아무것도 저장하지 않습니다. 어디에도 전송되지 않습니다.

다운로드 도중 잘린 파일도 복구할 수 있나요?

많은 경우 가능합니다. 데이터가 끊긴 지점까지입니다. 다운로드되지 않은 페이지를 만들어 낼 수는 없으므로 문서 전체가 아니라 앞부분만 돌아올 수 있습니다.

비밀번호가 걸린 PDF도 복구되나요?

복구 중에는 암호화를 무시하므로, 보호된 파일은 비밀번호도 있어야 읽을 수 있는 상태로 돌아올 수 있습니다. 비밀번호 제거는 PDF 비밀번호 해제에서 따로 하세요.

참고: 복구는 파일에 아직 남아 있는 것을 되살릴 뿐, 정말로 없어진 데이터를 재구성할 수는 없습니다. 문서가 잘렸다면 잘린 지점 이후의 페이지는 영영 사라진 것입니다. 압축 스트림 내부가 손상된 파일은 일부 페이지가 빈 채로 복구될 수 있습니다.

내 웹사이트에 이 도구 넣기

블로그, 수업 페이지, 도움말 글 어디에나 무료로 넣을 수 있습니다. 코드 한 줄만 붙여 넣으면 방문자가 페이지에서 바로 사용할 수 있습니다.