PDF Toolkit에 구조 정렬, 메타데이터, 썸네일 기능을 추가했다
구조 태그 정리와 문서 메타데이터 확인, 첫 페이지 썸네일 추출 기능을 붙인 4월 개발 기록
2026-04-17

PDF 확인 도구에서 작업 도구로
구조 정렬과 썸네일 추출 기능을 붙였다.
이 시점부터 도구는 단순 확인용 앱보다 실제 작업을 줄여주는 배치 도구에 가까워졌다.
썸네일 추출 기능같은 경우 기존 개발자들이 만들어서 올려놓은 웹에서 사용할 수 있는데, 이게 사실 오래걸리기도 하고 로그인하는것도 귀찮다. 심지어 썸네일 화질도 그닥 좋지 않다.. 그래서 이것도 내가 만들기로 결정 ㅋㅋ
각 기능은 GUI 안에 모두 넣기보다 별도 모듈로 분리했다. PDF를 직접 고치는 작업은 GUI 코드와 섞이면 금방 복잡해지기 때문이다.
구조 태그 정렬 기능
PDF 구조 태그는 문서마다 상태가 다르다. 태그 트리는 있지만 content stream의 marked content와 연결이 어긋나 있거나, 중첩 구조가 불필요하게 복잡한 경우가 있다.
이 문제를 다루기 위해 구조 정렬 기능을 추가했다.
구조 정렬은 화면에서 바로 클릭하는 작은 기능이라기보다, PDF 파일을 넣고 결과 파일을 만드는 작업이다. 그래서 별도 workspace로 분리했다.
첫 페이지 썸네일 추출
문서 검수나 정리 작업을 하다 보면 PDF 첫 페이지 이미지를 따로 뽑아야 할 때가 있다.
그래서 첫 페이지를 PNG 썸네일로 추출하는 기능도 추가했다.
출력 크기와 DPI는 고정했다. 매번 설정을 바꾸는 기능보다, 같은 규격으로 빠르게 뽑는 것이 이 도구의 목적에 더 맞았다.
메타데이터 확인과 공공누리 정보
4월 중순에는 메타데이터 패널도 정리했다.
PDF 문서에는 제목, 작성자, 주제, 키워드, 언어, 저작권 정보 같은 값이 들어 있다. 접근성 작업에서는 이런 값도 같이 확인해야 한다.
self._set_metadata_value("title", document_title) self._set_metadata_value("author", meta.get("author", "")) self._set_metadata_value("subject", meta.get("subject", "")) self._set_metadata_value("keywords", meta.get("keywords", ""))
공공누리 관련 XMP 정보는 kogl_metadata.py에서 읽고 저장하도록 분리했다.
GUI에는 공공누리 유형 명시 버튼을 두었다. 현재 열린 PDF의 XMP 저작권 상태와 저작권 정보 URL을 저장하는 기능이다.
회고
처음에는 PDF를 열고 태그를 확인하는 정도였다면, 이제는 구조 정렬, 메타데이터 확인, 썸네일 추출처럼 실제 작업에서 반복되는 기능들이 하나씩 들어가기 시작했다. 도구의 방향도 더 분명해졌다. PDF Toolkit은 PDF를 보는 앱이 아니라, 접근성 검수와 수리 작업을 줄이기 위한 작업 도구다. 만들다보니 사실 추가하고싶은 기능이 엄청 많아졌다. 지금은 UI UX도 구리지만 나중엔.. 예쁘게 만들어야지