Skip to content

Kimjinsoo62/WebBook3

Repository files navigation

WebBook3

PDF를 단일 HTML 플립북(페이지 넘김 애니메이션 뷰어)으로 변환하는 Windows용 도구

platform python license

WebBook3는 PDF의 모든 페이지를 이미지로 렌더링한 뒤 base64로 HTML에 인라인하여, 서버 없이 어디서나 더블클릭만으로 열리는 단독 실행형 .html 파일 하나를 만듭니다. page-flip 라이브러리도 CDN이 아닌 로컬 자산으로 번들되어 완전 오프라인으로 동작합니다.

핵심 엔진은 PyMuPDF(fitz)이며, 두 개의 패키지로 구성됩니다.

패키지 역할
webbook3 변환 엔진. CLI · Flask 웹 UI · 폴더 감시 3가지 진입점 제공
webprt Windows 가상 프린터. 어떤 앱에서든 "WebPRT" 프린터로 인쇄하면 웹북 자동 생성

주요 기능

  • 📄 PDF → 단일 HTML 플립북 변환 (서버 불필요, 단독 실행)
  • 📖 단면 / 양면(스프레드) 보기 전환, 전체화면, 키보드 이동
  • ✂️ PDF TrimBox 기준 자동 크롭(재단선 제거)
  • 🎨 래스터(WebP/JPEG) 또는 SVG 렌더링, 배경 스타일 선택
  • 🖨️ WebPRT 가상 프린터 — 모든 앱의 인쇄 기능으로 웹북 생성
  • 🌐 완전 오프라인 동작 (page-flip 자산 로컬 번들)

빠른 시작

일상 작업은 통합 런처 WebBook3.bat 하나로 수렴합니다. 더블클릭 후 메뉴 번호를 선택하세요.

WebBook3.bat  →  [1] 설치  →  [2] 웹 UI 실행

💡 PDF 파일을 WebBook3.bat 위로 끌어다 놓으면 메뉴 없이 즉시 변환됩니다.

번호 기능 동작
1 설치 .venv 생성 → requirements.txt 설치 → output/uploads/watch 폴더 생성
2 웹 UI 실행 http://127.0.0.1:4713/ 서버 + 브라우저 자동 열기
3 감시 폴더 모드 watch 폴더의 PDF를 감지해 같은 폴더에 HTML 생성
4 PDF 변환 입력 PDF를 output\<이름>_webbook3.html 로 변환
5 WebPRT 시작 가상 프린터 서비스 시작 (트레이 아이콘 생성)
6 WebPRT 중지 실행 중인 WebPRT 서비스 종료
7 웹 서버 종료 4713 포트 프로세스 종료
8 환경 점검 Python · .venv · 패키지 · 프린터 등록 상태 확인
9 프린터 등록/제거 webprt\install.ps1 / uninstall.ps1 을 관리자 권한으로 실행
0 종료 런처 종료

설치

시스템 요구사항

항목 최소 권장
운영체제 Windows 10 (1909+) Windows 11
Python 3.8 3.11+
RAM 2 GB 4 GB 이상
디스크 500 MB 1 GB 이상

상황별 설치 방법

상황 사용할 파일
소스코드 직접 설치 (인터넷 O) WebBook3.bat[1]
빌드된 설치 마법사 (가장 쉬움) dist\installer\WebPRT_Setup_1.0.0.exe
포터블 (설치 없이 USB 실행) Make_Portable.bat → 생성된 ZIP 압축 해제
오프라인 설치 (인터넷 X) Setup_Offline.bat (아래 참고)
IT 무인 설치 Install_Silent.bat (빌드된 exe 필요)

1) 소스코드 설치 (권장)

# WebBook3.bat → [1] 이 자동 실행하는 명령
py -3 -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt

가상 프린터까지 쓰려면 이어서 [9][1] 로 프린터를 등록(관리자 권한)한 뒤 [5] 로 서비스를 시작합니다.

2) 오프라인 설치 (폐쇄망)

준비 — 인터넷 있는 PC에서 1회 실행:

Download_Offline_Packages.bat
  • Python 3.11 설치 파일(~28 MB) → offline\python_installer\
  • 필요한 Python 패키지 전체(~120 MB) → offline\packages\

완료 후 프로젝트 폴더 전체를 USB/공유폴더로 대상 PC에 복사합니다.

설치 — 인터넷 없는 PC에서 실행:

Setup_Offline.bat

Python 설치 → 가상환경 생성 → 패키지 설치 → 프린터 등록 → 시작 프로그램 등록(선택)까지 마법사가 자동 처리합니다.


사용법

CLI

# 기본 변환 → output\sample_webbook3.html
.venv\Scripts\python.exe -m webbook3 "C:\path\to\sample.pdf"

# 출력 경로·옵션 지정
.venv\Scripts\python.exe -m webbook3 "input.pdf" -o "output\out.html" --view double --render-mode raster --bg-style grey30

# 단면 보기 / 재단선 크롭 끄기
.venv\Scripts\python.exe -m webbook3 "input.pdf" --view single --no-crop-marks
옵션 설명
-o <path> 출력 HTML 경로
--view single | double 단면 / 양면(스프레드) 보기
--render-mode raster | svg 렌더링 방식 (Pillow 없으면 JPEG 폴백)
--bg-style <style> 배경 스타일 (예: grey30)
--no-crop-marks TrimBox 자동 크롭 비활성화

웹 UI (Flask)

.venv\Scripts\python.exe -m webbook3.webapp

브라우저에서 http://127.0.0.1:4713 접속 → PDF 업로드 1개 → 보기/렌더링/배경/크롭 선택 → 생성 결과 열기·다운로드. 종료는 런처 [7].

감시 폴더

.venv\Scripts\python.exe -m webbook3.watcher

watch/ 폴더에 PDF를 넣으면 자동 감지하여 같은 폴더에 HTML을 생성합니다. 파일 크기·수정 시각이 안정되면(복사/저장 완료) 처리를 시작합니다.


WebPRT — Windows 가상 웹북 프린터

어떤 앱(Word, 브라우저, PDF 뷰어 등)에서든 인쇄 시 "WebPRT" 프린터를 선택하면, 페이지 넘김 애니메이션이 있는 단독 HTML 웹북이 자동 생성됩니다.

동작 원리

앱 인쇄 → "WebPRT" 프린터 → Microsoft XPS Document Writer v4 드라이버
  → %APPDATA%\WebPRT\spool\webprt_current.xps
  → SpoolWatcher 폴링 감지 → FlipbookGenerator → HTML
  → 출력 폴더(기본 Desktop\WebPRT)에 저장 + 브라우저 자동 오픈
  • 외부 도구 불필요 (Ghostscript·별도 드라이버 없음), Windows 10/11 기본 XPS 드라이버 사용
  • PyMuPDF가 PDF와 XPS를 동일하게 처리 → 변환 엔진 그대로 재사용

설치·실행

WebBook3.bat  →  [9] → [1]  프린터 등록 (관리자 권한, 최초 1회)
WebBook3.bat  →  [5]        서비스 시작 (트레이 아이콘 생성)

트레이 모드 의존성이 없으면 헤드리스(콘솔) 모드로 동작합니다.

.venv\Scripts\python.exe -m webprt              # 트레이 모드
.venv\Scripts\python.exe -m webprt --headless   # 콘솔 모드
.venv\Scripts\python.exe -m webprt --install    # Windows 시작 시 자동 실행 등록
.venv\Scripts\python.exe -m webprt --uninstall  # 자동 실행 제거

사용

  1. 아무 앱에서 파일 → 인쇄
  2. 프린터 목록에서 WebPRT 선택 → 인쇄
  3. 잠시 후 HTML 웹북이 브라우저에서 자동으로 열림
  4. 생성 파일은 기본적으로 %USERPROFILE%\Desktop\WebPRT\ 에 저장

설정

설정 파일: %APPDATA%\WebPRT\config.json (트레이 아이콘 우클릭 → 설정 파일 편집)

항목 기본값 설명
output_dir Desktop\WebPRT HTML 저장 경로 (구버전 Documents\WebPRT는 자동 마이그레이션)
auto_open true 생성 후 브라우저 자동 오픈
dpi 96 렌더링 해상도
spread_view true 양면 보기 (false = 단면)
render_mode "raster" "raster" 또는 "svg"
bg_style "grey30" 배경 스타일
crop_marks true 재단선 크롭 여부

프로젝트 구조

WebBook3/
  webbook3/             ← 웹북 변환 엔진
    __main__.py           CLI 진입점
    generator.py          FlipbookGenerator (모든 변환이 수렴하는 핵심)
    watcher.py            폴더 감시
    webapp.py             Flask 웹 UI
    templates/index.html
    assets/page-flip.browser.min.js   (로컬 번들)
  webprt/               ← WebPRT 가상 프린터 서비스
    __main__.py
    config.py             %APPDATA%\WebPRT\config.json 관리
    processor.py          인쇄 작업 처리
    spool.py              SpoolWatcher (스풀 파일 감시)
    xps_converter.py      OpenXPS → fitz/WPF 변환
    tray.py               pystray 트레이 UI
    install.ps1 / uninstall.ps1
  build/                ← PyInstaller + Inno Setup 빌드 스크립트
  offline/              ← 오프라인 설치 패키지
  requirements.txt

빌드 (배포용)

build\build.bat       # PyInstaller + Inno Setup (15~30분), Inno Setup 필요
Make_Portable.bat     # 포터블 ZIP 생성

산출물: dist\installer\WebPRT_Setup_1.0.0.exe, dist\portable\WebPRT_Portable_1.0.0.zip


문제 해결

"Microsoft XPS Document Writer v4" 드라이버를 찾을 수 없음

Windows 설정 → 앱 → 선택적 기능 → "XPS 뷰어" 설치 후 재시도. 또는 PowerShell(관리자):

Enable-WindowsOptionalFeature -Online -FeatureName Printing-XPSServices-Features
인쇄해도 아무 반응 없음
  1. WebPRT 서비스 실행 여부 확인 (WebBook3.bat[5], 트레이 아이콘)
  2. %APPDATA%\WebPRT\spool\.xps 파일이 생기는지 확인
  3. 방화벽/백신이 python.exe 를 차단하지 않는지 확인
  4. WebBook3.bat[8] 환경 점검
pystray 설치 오류 / 트레이 아이콘 없음

트레이가 필요 없으면 무시해도 됩니다. 콘솔에서 Ctrl+C 로 종료하는 헤드리스 모드로 동작합니다. 수동 설치: .venv\Scripts\pip install pystray

Python을 찾을 수 없음

python --version 으로 설치 확인. 설치 시 "Add Python to PATH" 체크 여부를 확인하고, 누락 시 재설치하거나 PATH에 수동 추가하세요.


주의

  • 모든 페이지를 base64로 HTML에 인라인하는 의도된 설계입니다. PDF가 매우 크면 출력 HTML과 브라우저 메모리 사용량이 커지고 생성 시간이 늘어날 수 있습니다.

라이선스

MIT License © 2026 애플아저씨. 자유롭게 사용·수정·배포할 수 있습니다.

About

PDF를 단일 HTML 플립북(페이지 넘김 뷰어)으로 변환하는 Windows 도구. 서버 없이 단독 실행되는 .html 생성 + WebPRT 가상 프린터 지원

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors