Show HN: PDF를 스캔한 문서처럼 보이게 만들기 (CLI 및 WASM 웹 지원)

make-look-scanned는 PDF 문서에 기울기, 노이즈, JPEG 압축 등을 적용해 실제 종이를 스캔한 것처럼 변환해 주는 CLI 및 WASM 기반 오픈소스 도구입니다. Go 언어와 MuPDF를 기반으로 빌드되며, 사용자는 기본 설정값(DPI 150, 최대 회전 0.6도, JPEG 품질 70 등)을 플래그나 설정 파일을 통해 자유롭게 조정할 수 있습니다. 또한 브라우저 실행을 위해 PDF.js와 WebAssembly를 활용하며, 무설치 오프라인 구동이 가능한 약 8MB 크기의 단일 HTML 파일 빌드 기능도 지원합니다.

AI 요약

디지털로 작성된 깔끔한 PDF 문서를 마치 실제 종이로 인쇄해 물리적인 스캐너로 읽어 들인 듯한 '스캔풍' 문서로 변환해 주는 오픈소스 CLI 및 웹 도구 'make-look-scanned'가 공개되었습니다. 이 도구는 실제 스캔 과정에서 발생하는 페이지 기울임(skew), 그레이스케일 변환, 따뜻한 종이 질감 추가, 스캐너 노이즈, 초점 흐림(defocus), 가장자리 그림자 및 JPEG 압축 손상 등 다양한 왜곡 효과를 정교하게 재현합니다. 원본 PDF의 각 페이지를 이미지로 래스터화한 뒤 왜곡 파이프라인을 거쳐 텍스트 선택이 불가능한 순수 이미지 기반 PDF로 재조립하므로 아날로그 스캐너의 결과물을 완벽히 모사합니다. 특히 Go 언어 기반의 CLI 환경뿐만 아니라, PDF.js와 WebAssembly(WASM)를 결합하여 브라우저 상에서 서버 없이 단독으로 동작하는 웹 버전까지 지원해 뛰어난 사용 편의성을 자랑합니다. 보안이나 증빙 등의 이유로 '스캔된 물리 문서 형태'를 고수해야 하는 행정 및 비즈니스 실무 환경에서 시간과 종이 자원을 획기적으로 절약해 줄 수 있는 실용적인 솔루션으로 평가받고 있습니다.

핵심 인사이트

  • 매개변수 기반 정밀 제어: 기본 150 DPI 해상도를 지원하며, 최대 기울기 각도(기본 0.6도), 종이 색조 세기(기본 0.6), 스캐너 노이즈(기본 0.08), JPEG 품질(기본 70) 등의 상세 수치를 사용자가 플래그를 통해 직접 조절할 수 있습니다.
  • WASM 기반 단일 HTML 배포: 네트워크 연결 없이 웹 브라우저에서 즉시 실행 가능한 약 8MB 크기의 완전 자립형 단일 HTML 파일(dist/make-look-scanned.html) 빌드를 지원합니다.
  • 결과물의 일관성(Determinism): 입력 PDF의 콘텐츠 해시를 기반으로 랜덤 시드(Seed)를 자동 생성하므로, 동일한 파일에 동일한 설정을 적용하면 언제나 바이트 단위까지 일치하는 동일한 스캔 결과물을 생성해 냅니다.
  • AGPL-3.0 라이선스: CLI 버전은 내부적으로 go-fitz를 통해 MuPDF 라이브러리를 정적 링크하여 패키징되므로, 배포 시 AGPL-3.0 라이선스의 적용을 받습니다.

주요 디테일

  • 완벽한 아날로그화: 단순히 시각적 왜곡만 주는 것이 아니라, 원본 PDF 내의 선택 가능한 텍스트 데이터(Selectable Text)를 완전히 제거하여 실제 아날로그 스캐너가 동작하는 방식과 동일한 보안 및 데이터 포맷 효과를 제공합니다.
  • 유연한 이중 엔진 아키텍처: CLI 환경에서는 빠른 렌더링을 위해 MuPDF를 사용하지만, WASM 컴파일이 불가능한 브라우저 환경을 위해 웹 버전에서는 PDF.js로 페이지를 래스터화한 후 Go로 작성된 효과 파이프라인으로 픽셀 데이터를 전달하는 유연한 하이브리드 설계를 구현했습니다.
  • 사용자 정의 프리셋(Presets): 사용자는 $XDG_CONFIG_HOME/make-look-scanned/config.toml에 자신만의 왜곡 설정 값을 미리 저장해 두고, CLI에서 --preset 옵션으로 간편하게 불러와 적용할 수 있습니다.
  • 런타임 의존성 제로: Go 빌드 환경(C 툴체인 포함)에서 go build를 통해 컴파일된 CLI 바이너리는 내부에 모든 필수 라이브러리가 포함되므로, 실행 시 추가 프로그램 설치가 필요 없습니다.
  • 시각적 품질 동등성: CLI(MuPDF 사용)와 웹 브라우저(PDF.js 사용)가 사용하는 렌더링 엔진이 달라 바이트 단위의 최종 바이너리는 다르지만, 두 환경 모두 시각적으로는 완전히 동등한 수준의 왜곡 품질을 보장합니다.

향후 전망

  • 페이퍼리스 비즈니스 가속화: 여전히 '출력 후 자필 서명 및 스캔 제출'을 요구하는 보수적인 금융, 법률, 공공기관 행정 절차에서 불필요한 인쇄 비용 및 탄소 배출을 줄여 물리적 절차를 완전히 대체할 것으로 기대됩니다.
  • SaaS 및 전자서명 서비스로의 이식: WASM을 통한 클라이언트 사이드 변환 덕분에 서버 인프라 부담 없이 기존 웹 기반 PDF 뷰어나 전자계약 서비스의 부가 기능으로 손쉽게 통합 및 확장될 가능성이 큽니다.
Share

이것도 읽어보세요

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...