Hacker News 의견
  • 실제로 중요한 작업은 PDFium에서 이루어지고 있음, PDFium은 Google이 Foxit에서 인수 후 직접 개발을 계속해온 프로젝트이며 현재 Chrome에 적용 중임을 안내함 (나는 한창 논의되고 있는 작업을 폄하하는 게 아니고, 단지 완전히 새로 작성된 PDF 파서가 아니라는 점을 언급함)
    • 많은 PDF 뷰어(상업용 제품 포함)가 PDFium을 기반으로 만들어지고 있다고 생각함
  • Mozilla PDF.js가 존재하는데도 이 프로젝트를 개발한 이유가 궁금함 https://github.com/mozilla/pdf.js (비판이 아니라, 이미 있는 것을 다시 만드는 데엔 수많은 이유가 있기 때문에 단순한 궁금증임)
    • 주요 목표는 개발자가 웹사이트에 손쉽게 통합할 수 있는 PDF 뷰어를 만드는 것이었음, PDF.js는 일부 활용 사례에선 커스터마이징과 확장이 어렵거나 복잡함
    • PDF 마크업(주석, 도형, 코멘트)이 필요한 경우, 직접 구축하거나 상당히 비싼 구독형 PDF 에디터만이 선택지로 떠오르는데, 실제로 Apryse를 연동한 팀들은 단순 PDF 편집 지원 비용만으로도 부담이 매우 크다고 들음
    • 얼핏 보기만 해도 주석 코멘트 등 기존 제품들과는 다른 기능이 있음을 알 수 있음
    • iPad나 iPhone에서 데모 문서를 열어 보면, Print Preview 기능이 데스크탑 장치에서만 작동함을 알 수 있음
    • 402개의 오픈 이슈를 보고 PDF의 엄청난 복잡성과 그 모든 기능을 처리하는 데 드는 노고를 짐작할 수 있음
  • 예전에 PDF 뷰어를 내장한 사이드 프로젝트를 해본 적이 있음, 첫 버전은 pdf.js를 썼지만 빠르게 확대(zoom)할 땐 버벅이고 포커스 유지가 힘들었음, 그래서 C++ pdfium과 Metal 렌더링으로 직접 구현했음 데모 영상에서 확인 가능함, 타일링 방식을 적용해 메모리와 성능의 균형을 맞췄음, pdfium이 WebAssembly에서도 이 정도로 성능이 좋은 줄 몰랐으며, 사실 C++보다 웹에서 UI 개발하는 쪽이 더 편함
    • 솔직히 데모가 훨씬 더 빠르고 부드럽게 느껴짐, zoom 동작이 정말 매끄럽게 구현되어 있음, 이걸 보고 나도 다시 개발에 뛰어들어 성능을 개선해보고 싶다는 생각이 듦
  • pdf.js를 사용 중인데(17MB, 158페이지, 이미지 다수, Windows 환경) 테스트하면서 겪은 문제점을 공유함
    • 링크가 동작하지 않음
    • 북마크는 보이는데 작동하지 않음
    • 파이어폭스에선 텍스트 선택 불가
    • 크롬에서 미들 클릭(스크롤 용도)이 텍스트 선택으로 연결됨
    • pdf.js에서는 스크롤이 괜찮은데, 본 제품에서는 스크롤 시 수백~천 밀리 초 동안 화면이 흐릿하게 보이며 품질 저하가 심함, 엔드 키 등으로 여러 페이지를 점프하면 하얀 화면만 보임
    • FF에서는 위/아래, 페이지 업/다운, 홈/엔드가 동작하지 않음(좌우는 동작)
  • 간단하게 테스트해보았고, Firefox에서는 주석 기능이 아예 동작하지 않았으나 Chrome에서는 밑줄, 하이라이트 등 모든 주석 기능이 정상 임을 확인함
    • Firefox에서 주석 테스트를 아직 못 해봤으니 알려줘서 고맙다는 메시지, Chrome에서는 문제없이 동작해 다행임을 공유함, 곧 확인해볼 계획임
  • 임베디드 아웃라인(주석) 편집을 지원하는지 궁금함, PDF 뷰어/에디터에서 항상 가장 아쉬웠던 기능으로, 아웃라인 없는 PDF 받을 때마다 이 기능이 필요함을 느낌
  • 리눅스+Firefox 조합에서는 데모에서 주석/음영 처리(redaction) 도구가 전혀 동작하지 않음, 반면 Chromium에서는 동일 머신에서 잘 동작함
    • Firefox에서 발생한 문제를 방금 수정했으며, 이제 Linux + Firefox와 Chromium 양쪽 모두에서 주석 및 음영 처리 기능이 정상 동작함을 안내함
  • 문서화도 훌륭하며 headless React 라이브러리 컨셉이 특히 마음에 들었음, 커스텀 UI와 기능을 손쉽게 붙일 수 있음, 특정 용어를 자동 하이라이트/밑줄 처리 후 클릭 혹은 hover 시 커스텀 컴포넌트를 표시하는 건 얼마나 어려운지 질문함
    • 아주 간단하게 할 수 있음, 이미 그런 기능이 구현됨, AnnotationLayer에서 직접 selectionMenu와 커스텀 컴포넌트를 렌더링 가능함, 더 깊이 들어가고 싶다면 Discord 채널로 문의해달라고 안내함
  • 제품이 인상적으로 보임, 궁금한 점은 이렇게 기능이 풍부한 무료 PDF 뷰어 개발을 어떻게 지속할 계획인지임, 엔터프라이즈용 기능이나 PDF 호스팅 혹은 다른 수익화 모델을 계획 중인지 질문함
    • 질문에 대해 모두 '예스'라고 답변, 클라이언트 쪽 PDF 뷰어는 무료+MIT 라이선스 유지, 다만 PDF 호스팅과 엔터프라이즈용 분석/액세스 컨트롤 등 부가 기능은 유료 서비스로 제공할 계획임
  • 전체적으로 잘 작동하는데, 음영처리(redaction) 툴을 뷰 모드로 전환할 때(빨간 줄이 활성화된 상태) 여전히 redaction이 활성화돼 스크롤 불가 현상이 있었음, 새로고침으로 해결됨
    • 좋은 피드백이고 곧 수정할 예정임, 모바일에서는 정밀한 영역 선택의 편의성 때문에 redaction 모드에서는 스크롤이 비활성화되는 게 의도된 동작임, 하지만 뷰 탭으로 전환하면 무조건 redaction 모드를 종료해야 함, 발견해줘서 고맙다는 답변임