피드로 돌아가기![The Page Order Math Behind Saddle-Stitch Booklets Is Weirder Than You Think. So I Automated It. [Devlog #8]](/_next/image?url=https%3A%2F%2Ftsewlmecqtvqphyhezcm.supabase.co%2Fstorage%2Fv1%2Fobject%2Fpublic%2Fthumbnails%2F84ecbb06-f8c1-431c-97f7-30df692b9848.webp%3F&w=3840&q=75)
Dev.toBackend
원문 읽기
Rust 기반의 Imposition 알고리즘 구현을 통한 PDF 중첩 인쇄 자동화
The Page Order Math Behind Saddle-Stitch Booklets Is Weirder Than You Think. So I Automated It. [Devlog #8]
AI 요약
Context
Saddle-stitch 제본 시 단순 페이지 순서로는 물리적 접지 구조를 구현할 수 없는 한계 존재. InDesign 등 고가 소프트웨어의 전유물인 Imposition 기능을 대체하기 위해 맞춤형 자동화 툴의 필요성 대두.
Technical Solution
- 전체 페이지 수를 4의 배수로 맞추는 Padding 로직을 통한 물리적 시트 규격 정렬
- [front-left, front-right, back-left, back-right] 4개 논리 페이지를 한 시트로 매핑하는 Imposition 알고리즘 설계
- Rust의 강한 타입 시스템과 lopdf 라이브러리를 활용한 PDF 페이지 재배치 및 새 문서 생성 파이프라인 구축
- 문장 종결 문자가 없고 길이가 2~60자 사이인 라인을 헤딩으로 간주하는 Heuristic 기반의 Auto TOC 생성 로직 도입
- 물리적 제본 시 발생하는 Gutter Margin 문제를 해결하기 위한 시트 조립 단계의 자동 마진 오프셋 적용
- 소스 PDF와 동일한 Page Dimension을 유지하는 Blank Page 생성으로 레이아웃 붕괴 방지
실천 포인트
- 물리적 매체 출력 설계 시 논리적 순서와 물리적 배치(Imposition)의 차이를 고려한 매핑 테이블 설계 필요 - 정형화되지 않은 텍스트에서 구조 정보를 추출할 때 길이 제한과 특정 문자 배제라는 Heuristic 규칙을 조합해 정확도 향상 - PDF 조작 시 페이지 크기의 불일치가 전체 레이아웃에 영향을 주므로 소스 문서의 메타데이터 정밀 동기화 확인