Lubuntu OS 기반의 저사양 환경에서도 도구의 조합과 자동화 스크립트를 통해 고품질의 인쇄용 Vectorized PDF 브로셔를 제작하는 효율적인 워크플로우를 정리합니다. 디자인 감각과 개발의 자동화 능력을 결합하여 수작업을 최소화하고 결과물의 정확도를 극대화하는 것이 핵심입니다.

1. 에셋 및 데이터의 구조화 (Preparation)

작업의 출발점은 시각적 요소를 정밀하게 준비하는 것입니다.

  • 이미지 프로세싱 (누끼 및 최적화): Adobe Express 등 AI 도구를 활용해 배경을 제거합니다. 최종 출력 퀄리티를 위해 고해상도 WebP 또는 PNG 포맷을 사용합니다.
  • 구조화된 데이터 (JSON): 상품명, 특징, 성분 등 모든 텍스트 정보를 1-data.json으로 구조화합니다. 이는 HTML 템플릿에 데이터가 유기적으로 바인딩되도록 하여, 상품군이 늘어나도 레이아웃 일관성을 유지하게 해줍니다.

2. Canvas-to-Code: HTML/CSS 기반 디자인 (Design)

디자인 도구를 사용하는 대신 HTML5와 CSS3를 사용하여 브로셔를 코딩합니다. 이 방식은 나중에 스크립트로 대량의 PDF를 생성할 때 매우 유리합니다.

  • A5 규격 설계: 물리적 규격(148mm x 210mm)을 CSS로 정밀하게 정의합니다. (@page { size: A5; })
  • 디자인 시스템 (CSS): styles.css 파일을 하나로 통합하여 모든 제품에 동일한 브랜딩(폰트, 간격, 이미지 컨테이너 비율)이 적용되도록 합니다.
  • 이미지 컨테이너: Hero 이미지와 Illust 이미지가 그리드 시스템 안에서 정확하게 9:16 비율과 여백을 유지하도록 설계합니다.

3. 브라우저 엔진을 통한 벡터 PDF 생성 (Build)

작성된 HTML을 그래픽 드라이버의 '인쇄' 기능을 통해 PDF로 변환합니다.

  1. 로컬 브라우저(Chrome/Edge 등)에서 HTML 파일을 실행합니다.
  2. Ctrl + P 인쇄 설정 진입:
  3. 이 단계에서 생성된 PDF는 텍스트와 벡터 로고 정보가 살아있는 고해상도 파일입니다.

4. Ghostscript & Python 자동화: Vectorize & Merge (Automation)

가장 '해커'다운 단계로, 수작업 대신 코드로 인쇄 사고를 방지하고 통합 대지를 구성합니다.

  • 텍스트 아웃라인화 (Ghostscript): 인쇄소에 폰트가 없을 때 발생하는 깨짐 현상을 방지하기 위해, 모든 텍스트를 벡터 도형(Path)으로 강제 변환합니다.
  • A3 통합 대지 구성 (Python/pypdf): 개별 A5 파일을 2x2 그리드로 배치하여 A3(297mm x 420mm) 인쇄용 판을 짭니다.
  • 자동 마진 및 여백 설정: 사방 10mm의 칼선 마진을 자동으로 계산하여 배치합니다.

사용된 핵심 명령어 예시:

bash
# 텍스트를 윤곽선(Outline)으로 변환
gs -o "output.pdf" -dNoOutputFonts -sDEVICE=pdfwrite "input.pdf"

5. 결과물 검수 및 배포 (Production)

  • generate_combined_brochure.py 실행: 단 한 줄의 명령어로 4개 제품의 개별 아웃라인 작업부터 A3 통합본 생성까지 3초 안에 완료합니다.
  • 최종 검수: 생성된 **LAROE - All Products - A3 Brochure.pdf*를 사전에 설정한 여백(10mm)과 이미지 해상도 위주로 최종 확인합니다.
  • 인쇄소 전달: 폰트 유실이나 이미지 깨짐 걱정 없는 완벽한 Vectorized PDF를 인쇄소 시스템에 업로드합니다.
Tip: 디자인을 코드로 관리하면, 텍스트 하나를 수정할 때 모든 브로셔와 통합본 PDF를 버튼 클릭 한 번으로 동시에 재생성할 수 있습니다.