열리지 않는 PDF는 완전한 손실처럼 느껴지지만 대개는 그렇지 않습니다. 압도적으로 많은 경우 페이지 내용은 파일 안에 온전하고 읽을 수 있는 상태로 그대로 남아 있습니다. 망가진 것은 각 페이지가 어디서 시작하는지 뷰어에게 알려 주는 작은 내부 장부입니다. 파일을 복구한다는 것은 그 장부를 다시 세운다는 뜻이지, 문서를 새로 만든다는 뜻이 아닙니다.
이 가이드는 실제로 무엇이 망가지는지, 복구 가능한 파일과 정말로 파괴된 파일을 어떻게 구분하는지, 그리고 아무것도 설치하지 않고 브라우저에서 PDF를 복구하는 방법을 설명합니다.
손상된 PDF에서 실제로 망가지는 것
PDF는 일반 파일처럼 끊김 없이 이어지는 텍스트 흐름이 아닙니다. 번호가 매겨진 객체들의 모음이며 — 글꼴, 이미지, 페이지 설명, 메타데이터 — 그 뒤 파일 맨 끝에 상호 참조 표, 곧 xref라 불리는 조회 표가 붙습니다. xref는 모든 객체의 정확한 바이트 위치를 기록합니다. 뷰어는 PDF를 열 때 먼저 끝으로 건너뛰어 xref를 읽고, 그것으로 1쪽을 찾아냅니다.
이 설계는 빠르지만 뚜렷한 약점이 하나 있습니다. 색인이 끝에 있으면서 앞쪽을 가리킨다는 점입니다. 무언가가 객체의 위치를 밀어내거나 파일의 꼬리 부분이 아예 도착하지 못하면, xref에 담긴 모든 위치가 한꺼번에 어긋납니다. 뷰어는 48,213바이트 자리에서 1쪽을 찾다가 페이지가 아닌 무언가를 발견하고 포기합니다. 정작 페이지 자체는 아무 손상도 입지 않았는데 말입니다.
- 상호 참조 표 손상. 색인은 있지만 그 위치 정보가 더 이상 실제와 맞지 않습니다. PDF 손상 가운데 압도적으로 흔한 형태이며 거의 언제나 복구됩니다.
- 잘린 파일. 업로드, 다운로드, 복사 중 하나가 일찍 멈춰 파일의 마지막 부분이 — xref를 포함해 — 끝내 도착하지 못했습니다. 파일이 끊긴 지점까지는 복구할 수 있습니다.
- 손상된 객체 스트림. 개별 객체가 변형됐습니다. 대개 파일에 잘못 기록한 프로그램 탓입니다. 페이지 단위로 복구되며, 손상된 페이지는 서식을 잃을 수 있습니다.
- 깨진 삽입 글꼴. 글자는 있지만 그것이 참조하는 글꼴을 읽을 수 없어 페이지가 빈 화면이나 네모 상자로 나타납니다. 표준 글꼴로 바꾸면 대개 해결됩니다.
- 잘못된 헤더. 파일이
%PDF-로 시작하지 않습니다. 애초에 PDF가 아니거나, 앞에 무언가가 덧붙었다는 뜻인 경우가 많습니다.
흔한 오류 메시지의 진짜 의미
뷰어가 보여 주는 메시지는 무엇이 잘못됐는지 알려 주는 꽤 쓸 만한 단서입니다. 가장 자주 나타나는 것들은 다음과 같습니다.
| 오류 메시지 | 대개의 의미 | 복구 가능? |
|---|---|---|
| 「이 문서를 여는 중 오류가 발생했습니다. 파일이 손상되어 복구할 수 없습니다.」 | Adobe 자체 복구 시도가 깨진 xref 앞에서 실패 | 보통 가능. 다른 도구를 쓰면 됨 |
| 「PDF 문서를 불러오지 못했습니다.」 | Chrome이 헤더나 xref를 해석하지 못함 | 보통 가능 |
| 「파일이 지원되지 않는 형식이거나 손상되었습니다.」 | %PDF- 헤더가 잘못됐거나 없음 | 때때로 — 정말 PDF인지 확인할 것 |
| 「dict 객체가 필요합니다.」 / 「잘못된 객체 번호입니다.」 | 손상된 객체 스트림 | 부분적으로 — 멀쩡한 페이지는 복구됨 |
| 열리지만 모든 페이지가 비어 있음 | 삽입 글꼴이 깨졌거나 없음 | 보통 가능 |
| 열리지만 중간에서 끊김 | 잘린 파일 | 잘린 지점까지만 |
| 「이 문서는 보호되어 있습니다.」 | 손상이 전혀 아님. 암호화된 것 | 복구로 풀 문제가 아님 |
마지막 줄은 보기보다 훨씬 중요합니다. 사람들이 복구 도구에 가져오는 파일 가운데 결코 적지 않은 비율은 손상되지 않았습니다. 암호가 걸려 있을 뿐이고, 뷰어의 메시지가 명확하지 않을 따름입니다. 암호를 알고 있다면 복구를 시도하는 대신 PDF 보호로 파일의 암호화를 관리하세요.
복구할 수 있는 것과 없는 것
여기서는 낙관보다 정직한 기대치를 세우는 편이 더 값집니다. 어느 시점에 한 파일에 시간 쓰기를 멈추고 원본을 찾으러 가야 하는지 알려 주기 때문입니다.
- 거의 언제나 복구 가능: 깨진 xref 표, 뷰어가 열기를 거부할 뿐 나머지는 온전한 파일, 쓰기 도중 멈춰 버린 프로그램이 저장한 PDF, 그리고 글꼴 문제로 비어 보이는 파일.
- 부분적으로 복구 가능: 잘린 파일. 파일이 끊긴 바이트까지는 전부 얻을 수 있고, 그 뒤로는 아무것도 없습니다. 80%까지 진행된 다운로드라면 보통 페이지의 약 80%를 온전히 건집니다.
- 복구되는 일이 드묾: 객체 스트림 자체가 관련 없는 데이터로 덮여 버린 파일. 고장 나는 디스크나 수명이 다한 메모리 카드가 원인인 경우입니다. 색인은 다시 세울 수 있어도, 그것이 가리키는 내용은 정말로 사라진 상태입니다.
- 애초에 복구 문제가 아님: 암호화된 파일, 애초에 PDF가 아니었던 파일(예컨대 Word 문서에
.pdf확장자를 붙인 경우), 그리고 0바이트 파일. 0바이트 파일 안에는 복구할 것이 존재하지 않습니다.
복구하기 전에 시도해 볼 세 가지
각각 1분도 걸리지 않으며, 각각 손상이 아닌 실제 문제 유형 하나씩을 해결해 줍니다.
- 다른 뷰어에서 열어 보세요. 형식이 어긋난 파일을 얼마나 너그럽게 받아 주는지는 뷰어마다 크게 다릅니다. Adobe Acrobat이 단호하게 거부하는 PDF도 사소한 구조 문제를 조용히 넘겨 주는 Chrome이나 Firefox에서는 열리는 일이 흔합니다. 브라우저에서 열린다면 다시 PDF로 인쇄해 두면 깨끗한 사본이 생깁니다.
- 다시 내려받으세요. 파일이 네트워크로 왔다면 가장 단순한 설명은 전송 실패입니다. 다시 내려받고, 파일 자체를 탓하기 전에 원본과 크기를 비교해 보세요.
- 정말 PDF인지 확인하세요. 아무 일반 텍스트 편집기로 열어 첫 줄을 보세요. 진짜 PDF는
%PDF-1.4처럼 시작합니다.PK가 보이면 확장자가 잘못 붙은 ZIP이나 Office 파일이고,<!DOCTYPE html>가 보이면 문서 대신 오류 페이지를 내려받은 것입니다.
세 단계로 PDF 복구하기
파일이 정말로 손상됐다면 PdfDocShift로 복구하는 데는 세 단계면 충분합니다. 설치도 가입도 필요 없고, 업로드된 모든 파일은 두 시간 뒤 서버에서 영구히 삭제됩니다.
PDF 복구 도구를 여세요
pdfdocshift.com/repair-pdf 로 이동해 손상된 파일을 업로드 영역에 끌어다 놓거나, 클릭해 찾아보세요. 파일은 있는 그대로 올리세요. 미리 이름을 바꾸거나 다시 저장하거나 열었다가 내보내지 마세요. 그런 동작 하나하나가 되살릴 수 있었던 구조를 덮어쓸 수 있습니다.
복구 과정이 돌아가도록 두세요
도구는 기존 색인을 믿는 대신 파일 전체를 훑어 유효한 PDF 객체를 찾고, 찾아낸 것으로 페이지 트리를 다시 세우고, 상호 참조 표를 새로 만들고, 읽을 수 없는 삽입 글꼴은 표준 글꼴로 대체합니다. 대부분의 파일은 몇 초 만에 끝나며, 아주 크거나 심하게 손상된 파일은 더 오래 걸립니다.
내려받아 확인하세요
복구된 파일을 내려받아 1쪽만이 아니라 제대로 확인하세요. 쪽수가 예상과 맞는지 확인한 다음, 중간의 한 쪽과 마지막 쪽을 표본으로 살펴보세요. 쪽이 빠져 있다면 그 파일은 잘려 있던 것이고, 지금 가진 것이 살아남은 전부입니다.
스캔본과 이미지가 많은 PDF 복구하기
스캔 문서는 텍스트 문서와 손상되는 방식이 다르므로 별도의 사례로 다룰 만합니다. 스캔된 PDF는 큰 이미지를 담는 그릇이어서 파일에서 이미지 데이터가 차지하는 비중이 훨씬 큽니다. 즉 파일이 잘리면 깨진 색인이 아니라 페이지 자체를 통째로 잃게 되며, 불완전한 파일은 흔히 이미지 한가운데서 끝나 마지막 쪽이 절반만 그려진 채 남습니다.
여기서 두 가지가 따라 나옵니다. 첫째, 스캔된 PDF는 다른 무엇을 하기 전에 먼저 복구하세요. 손상된 스캔본에 압축이나 변환을 돌리면 손상이 영구히 굳어지기 쉽습니다. 둘째, 복구된 파일이 열리는데 글자를 더 이상 선택할 수 없다면 텍스트 레이어가 살아남지 못한 것입니다. 복구된 파일을 OCR PDF에 통과시키면 이미지를 읽어 그 아래에 검색 가능한 새 텍스트 레이어를 써 넣어 다시 만들 수 있습니다.
건져 낸 스캔본이 그 뒤로 다루기 버겁게 커졌다면 — 복구는 깨진 압축 구조를 재사용할 수 없어 때때로 원본보다 큰 파일을 만들어 냅니다 — PDF 압축이 페이지 자체는 건드리지 않고 크기를 다시 낮춰 줍니다.
PDF는 어떻게 손상되고 어떻게 막는가
현실에서 일어나는 PDF 손상은 거의 전부 몇 안 되는 원인으로 좁혀지며, 그 대부분은 피할 수 있습니다.
- 중단된 전송. 끊긴 다운로드, 복사 도중 연결이 끊긴 네트워크 공유, 쓰기가 끝나기 전에 뽑아 버린 USB 드라이브. 이동식 저장 장치는 반드시 제대로 꺼내고, 큰 전송 뒤에는 파일 크기를 확인하세요.
- 클라우드 파일을 동기화 중에 편집하기. Dropbox나 OneDrive, Google 드라이브가 바로 그 순간 업로드하고 있는 PDF에 덮어 저장하는 것은 절반은 옛것이고 절반은 새것인 파일을 만드는 확실한 방법입니다. 동기화가 끝난 뒤에 파일을 여세요.
- 저장 도중 멈추는 프로그램. 예기치 않게 종료된 프로그램이 써 놓은 PDF는 대개 내용은 있지만 유효한 색인이 없습니다. 바로 복구가 잘 듣는 전형적인 경우입니다.
- 오래된 서버를 거쳐 PDF를 본문 첨부로 보내기. 일부 구식 메일 시스템은 아직도 이진 첨부에 텍스트 모드 인코딩을 적용해 전송 도중 파일을 망가뜨립니다. 믿기 어려운 시스템을 상대할 때는 보내기 전에 파일을 압축하세요.
- 수명이 다해 가는 저장 장치. 불량 섹터와 죽어 가는 메모리 카드는 조용히 파일을 망가뜨립니다. 한 드라이브에서 두 개 이상의 파일이 망가졌다면 문제는 그 드라이브입니다. 다른 일을 하기 전에 먼저 전부 복사해 빼내세요.
자주 묻는 질문
아닙니다. 다만 대부분은 복구됩니다. PDF가 열리지 않는 가장 흔한 원인인 상호 참조 표 손상은 페이지 내용이 그대로이고 색인만 다시 세우면 되므로 거의 언제나 복구됩니다. 잘린 파일은 끊긴 지점까지 복구됩니다. 디스크 고장으로 실제 내용이 덮여 버린 파일은 일반적으로 복구되지 않으며, 0바이트 파일은 어떤 도구로도 되살릴 수 없습니다.
바뀌지 않아야 정상입니다. 복구는 파일의 구조적 색인과 페이지 트리를 다시 세우며, 페이지 내용은 그대로 옮겨집니다. 유일한 예외는 삽입 글꼴입니다. 글꼴을 읽을 수 없으면 복구 과정이 표준 글꼴로 대체하는데, 이 때문에 페이지에서 글자 간격이나 배치가 조금 달라질 수 있습니다. 낱말 자체는 영향을 받지 않습니다.
브라우저는 형식이 어긋난 PDF에 대해 Acrobat보다 훨씬 너그럽습니다. Chrome과 Firefox는 깨진 상호 참조 표를 조용히 우회해 파일을 훑으며 페이지를 찾아내지만, Acrobat은 구조를 검증하고 통과하지 못한 파일을 거부합니다. 이는 유용한 신호입니다. 브라우저에서 열린다면 내용은 온전하며 복구는 거의 확실히 성공합니다.
보통은 페이지 손상이 아니라 글꼴 문제입니다. 페이지 내용은 있지만 뷰어가 해독하지 못하는 삽입 글꼴을 참조하고 있어 아무것도 그려지지 않는 것입니다. 표준 글꼴로 대체하는 복구 과정을 거치면 대개 보이는 글자가 되살아납니다. 그래도 페이지가 계속 비어 있다면 문서에 실제로 빈 페이지가 들어 있을 수 있습니다. 빈 페이지 제거 기능으로 내용이 있는 페이지가 몇 쪽인지 확인해 보세요.
업로드를 전송 중에 암호화하고 파일을 신속히 삭제하는 도구라면 안전합니다. PdfDocShift는 모든 업로드에 256비트 SSL을 사용하며 두 시간 뒤 파일을 서버에서 영구히 삭제합니다. 특히 민감한 자료라면 파일을 복구한 다음, 공유하기 전에 256비트 AES 암호화를 적용하는 PDF 보호 도구로 비밀번호를 걸어 두세요.
아닙니다. 복구와 복호화는 완전히 다른 작업입니다. 복구 도구는 손상된 파일의 구조를 다시 세울 뿐, 암호화를 제거하거나 되살리지 않습니다. PDF가 오류 메시지가 아니라 비밀번호 입력창과 함께 열린다면 그 파일은 손상된 것이 아니라 보호된 것이며, 비밀번호가 있어야 합니다.