블로그

PDF의 컬러 emoji: 지원 범위, 파일 크기, 왜 중요한가

emoji는 이제 영수증, 티켓, 채팅 내보내기, 지원 기록에서 상태와 감정, 맥락을 전달합니다. PDF 생성기가 컬러 emoji를 어떻게 처리하는지, 그리고 파일 크기가 왜 중요한지 정리합니다.

PDF 안의 emoji는 예전에는 단순한 장식 문제처럼 들렸습니다. 하지만 이제는 그렇지 않습니다.

현대의 고객용 문서에서 emoji는 의미를 담는 경우가 많습니다.

  • 영수증에서는 ✅가 결제 완료, 🎁가 보상, ⭐가 평점, 🔥가 한정 혜택을 뜻할 수 있습니다.
  • 배송 알림에서는 📦, 🚚, 🙏가 빠른 상태 신호가 됩니다.
  • 고객 지원 대화 기록에는 WhatsApp, LINE, KakaoTalk, WeChat 메시지가 포함될 수 있고, emoji 자체가 증거의 일부일 수 있습니다.
  • 인증서, 배지, 쿠폰, 티켓, 로열티 카드에서는 🏆, 🎓, 🎉, 💯가 시각 정체성의 일부가 될 수 있습니다.

이 emoji가 사라지거나 tofu box로 바뀌거나 PDF를 수백 KB씩 키운다면, 문서는 더 이상 원래 콘텐츠를 충실히 담지 못합니다. 대량 시스템에서는 제품 문제, 저장소 문제, 때로는 컴플라이언스 문제가 됩니다.

어려운 점은 “emoji 지원“이 단일 체크박스가 아니라는 데 있습니다. PDF 생성기는 브라우저 폰트에 맡길 수도 있고, 호출자에게 emoji 폰트 설정을 요구할 수도 있으며, emoji를 이미지나 벡터 아트워크로 바꿀 수도 있고, 컬러 폰트 데이터를 출력 PDF에 임베드할 수도 있습니다. 모두 작동할 수 있습니다. 다만 설정, 재현성, 파일 크기에서 서로 다른 대가가 있습니다.

현실적인 문제: 지원과 크기

컬러 emoji는 일반 흑백 글리프가 아니기 때문에 PDF에서 어렵습니다. PDF Association은 기본 문제를 잘 요약합니다. OpenType 컬러 폰트에는 서로 경쟁하는 여러 형식이 있지만, 그 컬러 폰트 형식은 전통적인 윤곽선 폰트처럼 PDF에 단순하고 직접적으로 들어가는 기본 형식이 아닙니다.

따라서 PDF 생성기는 표현 방식을 골라야 합니다.

  • 브라우저나 운영체제 컬러 폰트를 사용한다;
  • 컬러 emoji 폰트 데이터를 임베드하거나 부분 임베드한다;
  • emoji를 이미지나 벡터 아트워크로 변환한다;
  • 또는 흑백 글리프, 누락 글리프 상자, 일반 텍스트로 대체한다.

emoji가 한두 개라면 차이가 크지 않을 수 있습니다. 그러나 emoji가 많은 영수증, 쿠폰, 채팅 내보내기, 지원 아카이브에서는 차이가 매우 커집니다.

작은 벤치마크: 일반 emoji 50개

2026년 5월 20일, 동일한 한 페이지 A4 샘플로 로컬 스모크 테스트를 실행했습니다.

  • 일반 텍스트만 있는 버전;
  • 본문에 일반 emoji 50개가 들어간 버전;
  • Chrome 148 headless print-to-PDF;
  • 같은 일반 emoji 50개 세트를 사용한 gPdf 로컬 생성.

모든 문서나 모든 엔진 버전에 대한 보편 벤치마크는 아닙니다. 서로 다른 컬러 emoji가 많이 있을 때 나타나는 파일 크기 동작을 드러내기 위한 간단한 테스트입니다.

생성 방식 일반 PDF 같은 페이지에 emoji 50개 증가량 비율
Chrome 148 print-to-PDF 31,250 bytes 435,630 bytes +404,380 bytes 13.94x
gPdf 로컬 생성 8,766 bytes 43,466 bytes +34,700 bytes 4.96x

Chrome 출력은 AppleColorEmoji Type 3 부분 집합을 임베드했습니다. emoji를 보이게 만드는 유효한 방법이지만, 이 샘플에서는 파일 크기 영향이 분명합니다.

gPdf 출력은 전체 컬러 emoji 폰트를 임베드하지 않았습니다. emoji가 많은 버전이 일반 텍스트 버전보다 커진 것은 당연합니다. 컬러 아트워크는 어딘가에 들어가야 합니다. 차이는 출력 크기가 광범위한 브라우저나 운영체제 폰트 경로가 아니라, 문서에 실제 사용된 emoji 아트워크에 맞춰 증가한다는 점입니다.

중요한 구매 질문은 “내 노트북에서 웃는 얼굴 하나가 보이나?“가 아닙니다. 질문은 이것입니다.

실제로 PDF를 생성하는 시스템에서 문서에 서로 다른 emoji가 수십 개 들어가면 어떻게 되는가?

다른 PDF 생성기는 emoji를 어떻게 처리하나

정직한 비교는 “다른 도구는 모두 실패한다“가 아닙니다. 여러 성숙한 PDF 도구가 컬러 emoji를 지원합니다. 문제는 어떻게 지원하는지, 그리고 그 방식이 설정, 재현성, 출력 크기에 무엇을 의미하는지입니다.

Puppeteer, Chrome, Chromium 기반 API

Puppeteer는 Chrome의 PDF 출력 경로를 사용합니다. 자체 문서는 page.pdf()를 페이지를 PDF로 인쇄하는 기능으로 설명하고, 기본적으로 폰트 로드를 기다린다고도 밝힙니다. 기준 입력이 이미 웹 페이지라면 유용합니다.

emoji가 많은 구조화 문서에서는 출력이 브라우저와 폰트 환경에 의존한다는 대가가 있습니다. 로컬 샘플에서 Chrome은 emoji를 올바르게 표시했지만, 파일은 31 KB에서 436 KB로 커졌습니다.

이것이 Puppeteer가 틀렸다는 뜻은 아닙니다. Puppeteer는 우선 브라우저 자동화 도구입니다. 기존 웹 페이지를 캡처해야 한다면 사용하세요. 하지만 작고 반복 가능한 영수증, 라벨, 티켓, 명세서, 지원 기록이 필요하다면 브라우저 경로는 무거운 답일 수 있습니다.

DocRaptor와 Prince

DocRaptor는 Prince를 감싼 서비스이고, Prince는 강력한 HTML-PDF 변환 엔진입니다. 입력이 실제 HTML/CSS이고 문서에 복잡한 paged-media 기능이 필요하다면 특히 좋은 선택입니다.

DocRaptor의 Pipeline 9 / Prince 14 발표는 컬러 emoji 지원을 명시합니다. Prince 14 릴리스 노트도 SVG-in-OpenType, CBLC/CBDT 컬러 emoji 폰트, Apple sbix, emoji tag sequence 지원을 나열합니다. 따라서 올바른 주장은 “DocRaptor는 emoji를 표시하지 못한다“가 아닙니다.

더 나은 주장은 좁습니다. DocRaptor/Prince는 고품질 HTML-PDF 변환 경로입니다. gPdf는 구조화된 JSON-PDF 변환 경로입니다. 입력이 이미 데이터로 존재하는 emoji 많은 구조화 문서라면, gPdf는 문제를 범용 HTML/CSS 생성 경로로 밀어 넣지 않습니다.

PDFreactor

PDFreactor도 컬러 emoji를 지원합니다. 매뉴얼은 컬러 emoji가 기본으로 사용되며 CBDT, SBIX, OpenType-SVG 같은 컬러 폰트 형식을 지원한다고 설명합니다.

같은 매뉴얼은 컬러 폰트의 제한도 밝힙니다. OpenType-SVG를 사용할 때 PDF 크기가 커지고, 해당 컬러 폰트 경로에서는 선택이나 복사가 되지 않습니다. “emoji 지원“을 yes/no 기능으로 보기 전에 팀이 이해해야 할 대가가 바로 이런 것입니다.

iText와 pdfHTML

iText는 해당 문자를 그릴 수 있는 폰트 프로그램이 문서에 있으면 emoji를 표시할 수 있습니다. 공식 pdfHTML emoji 가이드는 예상되는 패턴을 보여줍니다. emoji를 그릴 수 있는 폰트를 FontProvider에 추가한 뒤 변환을 실행하는 방식입니다.

SDK 수준의 제어를 원하는 팀에는 강력합니다. 동시에 폰트 설정, 테스트, 배포, 장기 유지보수가 애플리케이션 팀의 몫이라는 뜻이기도 합니다.

emoji coverage가 중요한 이유

잘못된 것을 테스트하기 쉽습니다. 생성기가 😂를 표시할 수 있다고 해서 실제 사용자가 보내는 emoji를 처리할 수 있다는 뜻은 아닙니다.

현실의 emoji 사용에는 다음이 포함됩니다.

  • text presentation과 emoji presentation이 달라지는 variation selector;
  • skin-tone modifier;
  • zero-width-joiner sequence;
  • 국가 플래그와 tag sequence;
  • CJK, Arabic, Latin 등 여러 문자 체계와 섞인 emoji;
  • 오래된 PDF 뷰어와 기업 문서 처리 경로.

고객 문서에서는 일관성이 제품의 일부입니다. 지원 대화 기록이 어느 서버에서 생성됐는지에 따라 다른 emoji를 보여서는 안 됩니다. 영수증이 macOS에서는 상태 표시를 보이고 Linux 컨테이너에서는 상자를 보여서도 안 됩니다. 마켓플레이스가 모든 판매자에게 같은 emoji 폰트 묶음을 설치하라고 요구해서도 안 됩니다.

gPdf의 제품 입장은 단순합니다. 컬러 emoji는 고객에게 emoji 폰트 설치, 브라우저 실행 환경 조정, 큰 출력 파일을 기본값으로 받아들이라는 요구 없이 생성된 PDF에서 작동해야 합니다.

emoji가 가장 중요한 곳

emoji가 많은 PDF는 소비자 마케팅에만 있지 않습니다. 운영 시스템에도 나타납니다.

문서 유형 emoji가 중요한 이유
영수증과 바우처 상태, 보상, 평점, 프로모션 신호가 고객 경험의 일부입니다.
배송 및 예약 확인 emoji는 confirmed, packed, shipped, delivered 같은 상태 변화를 빠르게 읽게 합니다.
고객 지원 기록 채팅 내보내기에서 emoji가 빠지거나 바뀌면 의미가 사라집니다.
커뮤니티와 소셜 아카이브 emoji는 장식이 아니라 대화의 일부입니다.
인증서와 achievement badge 트로피, 졸업, 축하 기호는 디자인의 일부인 경우가 많습니다.
다국어 고객 PDF emoji는 언어 경계를 넘어 빠른 상태 의미를 전달할 수 있습니다.

그래서 파일 크기가 중요합니다. 한 번 400 KB 증가하는 것은 커 보이지 않을 수 있습니다. 월 10만 건의 영수증에서는 저장소, 대역폭, 이메일 전달성, 모바일 다운로드 시간, 아카이브 비용이 됩니다. 채팅 내보내기 규모에서는 훨씬 더 나빠집니다.

gPdf가 맞는 경우

gPdf는 완전한 브라우저가 되려는 것도, 모든 HTML-PDF 변환 엔진을 대체하려는 것도 아닙니다. 기준 문서가 임의의 웹 페이지, 복잡한 편집 레이아웃, JavaScript로 그린 차트가 있는 라이브 대시보드라면 브라우저나 성숙한 HTML-PDF 변환 엔진을 쓰세요.

gPdf는 다른 경우를 위해 만들어졌습니다.

  • 문서 입력이 이미 구조화된 데이터다;
  • 출력이 예측 가능해야 한다;
  • 시스템이 대량으로 동작한다;
  • PDF가 작게 유지되어야 한다;
  • 같은 요청 데이터가 여러 환경에서 일관되게 생성되어야 한다;
  • emoji, CJK, 바코드, PDF/A, 메타데이터가 나중에 붙인 기능이 아니라 제품 요구사항이다.

이 업무 유형에서는 emoji 지원이 별일 아니어야 합니다. 상태, 감정, 고객 언어 신호를 문서에 넣는 일이 PDF 생성을 폰트 설치 프로젝트로 바꾸어서는 안 됩니다.

PDF 벤더에게 물어볼 것

emoji 지원을 평가할 때는 스크린샷보다 더 많은 것을 요청하세요.

  1. 서로 다른 일반 emoji 50개가 들어간 PDF를 생성할 수 있나요?
  2. 그 emoji가 있을 때와 없을 때 파일 크기는 얼마인가요?
  3. 출력이 운영체제 폰트에 의존하나요?
  4. 고객이 emoji 폰트를 설치하거나 등록해야 하나요?
  5. ZWJ sequence, 플래그, variation selector는 어떻게 되나요?
  6. 실행 환경 업그레이드 뒤에도 출력이 안정적으로 유지되나요?
  7. emoji 동작이 문서화되어 있나요, 아니면 호스트 환경에서 우연히 물려받은 결과인가요?

답을 보면 emoji 지원이 실제 제품 기능인지, 실행 환경의 우발적 부작용인지 알 수 있습니다.

Sources

참고: gPdf는 Twemoji 그래픽을 사용합니다. Twemoji 그래픽의 저작권은 2019 Twitter, Inc 및 기타 기여자에게 있으며 CC BY 4.0 라이선스로 제공됩니다.