Show GN: 논문/문서자료 인쇄비가 아까워서 여백제거 모아찍기 변환기를 직접 만들었습니다
(github.com/theodore-labs)안녕하세요, 문서와 논문을 매일 인쇄하다가 종이값이 아까워서 직접 만든 Windows용 PDF 여백제거 N-up 변환기입니다.
왜 만들었나
프린터 드라이버의 "모아찍기(4쪽씩)"를 써보면 다들 아시겠지만, 글자가 너무 작아져서 결국 못 씁니다. 원인은 폰트가 아니라 여백입니다. 슬라이드/논문 PDF는 페이지의 20~30%가 흰 여백인데, 모아찍기는 그 여백까지 통째로 축소하니까요.
FinePdf는 각 페이지의 실제 콘텐츠 영역(bounding box)을 감지해서 여백을 먼저 잘라낸 뒤 다시 배치합니다. 같은 4-up이라도 글자가 눈에 띄게 큽니다. 페이지마다 콘텐츠 박스 크기가 달라도 글자 크기가 들쭉날쭉해지지 않도록 전체 페이지에 단일 배율을 적용하는 옵션도 있습니다.
기능
- N-up 2/4/8/16 (페이지 방향 자동 감지)
- 콘텐츠 영역 감지 + 여백 트리밍
- 책자(Booklet) 임포지션 — A4 반 접으면 A5 책자
- 여러 PDF 병합 후 한 번에 변환
- 잉크 절약 모드 / 흑백 변환
- 변환 전 미리보기 + "몇 장 절약되는지" 카운터
기술적으로 재미있었던 것
C# .NET 8 WinForms이고, PDF 파싱은 PdfPig, 생성은 PDFsharp, 렌더링은 PDFium(PDFtoImage)을 씁니다. 셋을 섞어 쓰다 보니 좌표계 함정이 있었는데 — PdfPig/PDFium은 페이지의 /Rotate 속성을 무시한 좌표를 주고 PDFsharp는 적용한 좌표를 써서, 회전된 PDF(스캔본·PPT 내보내기에 흔함)에서 콘텐츠가 엉뚱한 위치에 배치되는 버그를 잡느라 고생했습니다. 결국 회전 페이지만 래스터 경로로 우회했습니다.
가격은 솔직하게
14일 무료 체험(기능 제한 없음) 후 평생 라이선스 ₩23,000 일시불입니다. 구독 아닙니다. 비슷한 기능의 FinePrint가 $100 정도인 걸 생각하며 가격을 정했습니다. 구매하려다가 좀 비싼 느낌이 들어서 한번 만들어보자 했던게 동기가 되었습니다.
Windows 10/11 x64, .NET 설치 불필요(단일 exe)입니다.
혼자 만들고 있어서 피드백이 절실합니다. 특히 "이 PDF는 변환이 이상하다" 싶은 파일이 있으면 알려주시면 바로 잡겠습니다. 🙏