Nano-PDF 소개
Nano-PDF는 자연어 프롬프트를 사용하여 PDF 슬라이드를 직접 편집하거나 새로운 슬라이드를 생성할 수 있는 CLI(Command Line Interface) 도구입니다. Google의 최신 멀티모달 모델인 Gemini 3 Pro Image (일명 "Nano Banana" 모델)를 기반으로 작동하며, PDF 파일을 이미지로 변환하여 시각적으로 수정한 뒤 다시 텍스트 레이어를 복원하는 방식으로 동작합니다.
개발자나 기획자들은 종종 원본 파일(PPTX, Keynote)이 유실된 PDF 문서를 수정해야 하는 난감한 상황에 처하곤 합니다. 기존 PDF 편집 도구들은 텍스트 수정 시 레이아웃이 깨지거나 폰트가 맞지 않는 문제가 빈번했습니다. Nano-PDF는 이러한 문제를 생성형 AI를 통해 해결합니다. 사용자가 "차트의 데이터를 2025년 기준으로 업데이트해 줘"라고 명령하면, AI가 시각적인 스타일을 유지한 채 내용을 변경하고, OCR(광학 문자 인식) 기술을 통해 텍스트 선택 및 검색 기능까지 보존합니다.
Nano-PDF는 단순히 텍스트를 교체하는 것을 넘어, Google Search와 연동하여 최신 정보를 반영하거나, 기존 디자인 톤을 분석하여 완전히 새로운 슬라이드를 생성해 끼워 넣는 기능까지 제공합니다. 특히 여러 페이지를 병렬로 처리하여 작업 속도를 높였으며, 로컬 환경에서 파이썬으로 가볍게 구동할 수 있다는 점이 큰 특징입니다.
이에 반해 기존의 PDF 편집 소프트웨어(Adobe Acrobat 등)는 사용자가 직접 텍스트 박스를 선택하고 폰트를 맞추는 '수동 편집' 방식이었습니다. 이 과정에서 원본 폰트가 없으면 디자인이 어긋나거나, 복잡한 배경 위에 있는 텍스트를 수정하기 어려웠습니다.
반면 Nano-PDF는 생성형 편집(Generative Editing) 방식을 취하고 있어, 다음과 같은 장점이 있습니다:
- 시각적 일관성: AI가 주변 픽셀과 디자인 스타일(글꼴, 색상, 배치)을 인식하여 내용을 생성하므로, 원본과 이질감이 없는 수정이 가능합니다.
- 의도 기반 편집: "오타 수정해 줘"부터 "배경색을 파란색으로 변경해 줘"와 같은 추상적인 명령을 이해하고 수행합니다.
- 데이터 최신화: 단순히 있는 텍스트를 바꾸는 것이 아니라, 외부 검색(Google Search)을 통해 데이터를 찾아 그래프나 수치를 업데이트할 수 있습니다.
Nano-PDF 동작 예시
다음은 LinkedIn의 2004년 시리즈B 투자 유치를 위한 슬라이드를 예시로 변경을 수행한 예시 결과입니다. (수정 결과 슬라이드는 여기에서 확인할 수 있습니다):
Nano-PDF CLI 명령 수행 전 슬라이드는 다음과 같습니다:
변경을 위한 수행 명령어는 다음과 같습니다:
nano-pdf edit linkedin-deck.pdf 1 "Change the tagline in the logo to 'Cringe posts from work colleagues' and update the date"
변경 수행 후 결과 슬라이드는 다음과 같습니다:
이렇게 수정한 뒤에도 텍스트는 선택 가능합니다:
Nano-PDF의 주요 동작
Nano-PDF의 핵심 작동 프로세스는 다음과 같은 PDF 렌더링 -> AI 생성 -> OCR 복원 -> 병합의 4단계로 이루어집니다:
- Page Rendering: Poppler를 사용하여 편집할 PDF 페이지를 고해상도 이미지로 변환합니다.
- Style Analysis: 선택적으로 참조 페이지(Style Refs)를 분석하여 문서의 디자인 톤앤매너를 학습합니다.
- AI Generation: 변환된 이미지와 사용자 프롬프트를 Gemini 3 Pro Image 모델에 전송하여 수정된 이미지를 생성합니다.
- OCR Re-hydration: 생성된 이미지는 픽셀 데이터일 뿐이므로, Tesseract OCR을 사용해 이미지 위에 투명한 텍스트 레이어를 다시 입힙니다. 이 과정 덕분에 결과물 PDF에서도 텍스트 드래그와 검색이 가능합니다.
- Stitching: 수정된 페이지를 원본 PDF의 나머지 페이지와 병합하여 최종 파일을 생성합니다.
Nano-PDF의 주요 기능
-
자연어 편집 (Natural Language Editing): 복잡한 UI 조작 없이 텍스트 명령만으로 슬라이드 내용을 수정합니다. 예를 들어, "2페이지의 제목을 'Q3 결산'으로 변경해."와 같은 방식으로 수정을 요청할 수 있습니다.
-
새 슬라이드 추가 (Add New Slides): 문서의 맥락과 디자인을 파악하여 위화감이 없도록 새로운 페이지를 추가합니다. 예를 들어, "5페이지 뒤에 핵심 요약 슬라이드를 추가해 줘."와 같은 명령이 가능합니다.
-
Google Search 통합: 모델이 편집 중에 최신 정보를 검색하여 반영할 수 있습니다. 이 기능은 기본적으로 활성화되어 있습니다.
-
병렬 처리: 여러 페이지에 대한 수정 명령을 동시에 처리하여 작업 시간을 단축합니다.
-
해상도 조절: 작업 목적에 따라
4K,2K,1K해상도 중 선택하여 품질과 비용(API 토큰)을 조절할 수 있습니다.
Nano-PDF 설치 및 사용
Python 3.10 이상 환경에서 pip를 통해 설치할 수 있으며, PDF 처리와 OCR을 위한 시스템 의존성 패키지가 필요합니다.
먼저, OS별로 필요한 시스템 의존성 패키지들을 설치합니다:
- macOS:
brew install poppler tesseract - Windows:
choco install poppler tesseract - Linux (Ubuntu):
sudo apt-get install poppler-utils tesseract-ocr
이후, pip 명령을 사용하여 Nano-PDF Python 패키지를 설치합니다:
pip install nano-pdf
설치 후에는 환경 변수에 Google Gemini API Key를 설정해야 합니다. 이를 위해 Google AI Studio에서 발급받은 API 키가 필요하며, Gemini 3 Pro Image 모델 사용을 위해 결제 계정이 연동되어 있어야 합니다. 이 때, 유료 API를 사용할 수 있으니 API 사용 요금를 먼저 확인해주세요.
환경 변수 설정은 다음과 같이 할 수 있습니다:
export GEMINI_API_KEY="your_api_key_here"
Nano-PDF CLI 사용 시 옵션
다음은 Nano-PDF CLI 사용 시 사용 가능한 옵션들입니다:
| 옵션 (Option) | 설명 (Description) | 기본값 / 비고 |
|---|---|---|
--use-context--no-use-context |
PDF 문서 전체 텍스트를 문맥으로 참고할지 여부를 설정합니다. | • edit: 기본 OFF• add: 기본 ON |
--style-refs |
디자인 일관성을 위해 스타일을 참고할 페이지 번호를 수동으로 지정합니다. (예: "1,5") |
지정 안 함 |
--resolution |
이미지 처리 해상도를 설정합니다. 옵션: "4K", "2K", "1K" |
"4K" (품질 높음 = 속도 느림) |
--output |
결과물을 저장할 파일 이름을 지정합니다. (예: "new.pdf") |
지정 안 함 |
--disable-google-search |
모델이 정보를 찾기 위해 수행하는 Google Search 기능을 비활성화합니다. | 기본값은 검색 활성화 |
처음 사용할 때는 기본 설정(4K 해상도, Google Search 활성화)으로 테스트해 보고, 처리 속도가 너무 느리다면 --resolution "2K"를, 디자인이 튀는 느낌이 든다면 --style-refs 옵션을 적극적으로 활용하시는 것을 권장합니다.
Nano-PDF 사용 예시 (Usage)
먼저 CLI 명령어를 사용하여 기본적인 페이지 수정을 수행할 수 있습니다. 다음은 my_deck.pdf의 2페이지 제목을 'Q3 Results'로 변경하는 예시 명령어입니다.
nano-pdf edit my_deck.pdf 2 "Change the title to 'Q3 Results'"
이 외에도 Nano-PDF를 사용하여 여러 페이지를 한 번에 수정할 수 있습니다. 아래 예시 명령어와 같이 3가지의 수정 사항을 한 번에 요청할 수 있습니다:
nano-pdf edit my_deck.pdf \
1 "Update date to Oct 2025" \
5 "Add company logo" \
10 "Fix typo in footer"
새로운 슬라이드를 추가하는 것도 가능합니다. 다음은 문서의 5번째 페이지 뒤에 요약 슬라이드를 새로 생성하여 삽입하는 예시 명령어입니다:
nano-pdf add my_deck.pdf 5 "Summary slide with key takeaways as bullet points"
Nano-PDF는 PDF 파일의 스타일 참조 및 디자인 변경 또한 가능합니다. 다음은 특정 페이지(2, 3페이지)의 스타일을 참고하여 1페이지의 디자인을 변경하는 예시 명령어입니다:
nano-pdf edit slides.pdf 1 "Make the header background blue" --style-refs "2,3"
라이선스
Nano-PDF 프로젝트는 MIT License로 공개 및 배포되고 있습니다.
Nano-PDF 프로젝트 GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()



