PDF 파싱: 명세와의 싸움
2025-08-04
PDF 파일 파싱은 간단해 보입니다. 버전 헤더, 교차 참조 테이블, 객체 오프셋을 찾고 마지막으로 카탈로그 사전을 만듭니다. 하지만 현실은 냉혹합니다. PDF 명세는 절대적인 규칙이 아니며, 실제 파일에는 `startxref` 포인터 위치가 잘못되었거나, 파일 시작 부분에 정크 데이터가 있거나, 교차 참조 테이블 형식이 잘못된 등 다양한 비준수 상황이 있습니다. 저자는 수많은 실제 PDF 파일 분석을 통해 이러한 문제점을 밝히고, 기존 PDF 뷰어가 작동하는 이유는 비준수 상황을 처리하기 때문이라고 지적합니다. 이 글은 PDF 파싱의 어려움을 쉽게 이해할 수 있도록 설명하고 개발자에게 귀중한 경험을 제공합니다.