Skip to content

Youcu/Ebook-to-PDF

Repository files navigation

Ebook PDF Extractor μ‚¬μš© μ•ˆλ‚΄

Ebook PDF ExtractorλŠ” macOS ν™˜κ²½μ—μ„œ Ebook Viewer의 화면을 νŽ˜μ΄μ§€ λ‹¨μœ„λ‘œ μΊ‘μ²˜ν•œ λ’€, 캑처 이미지λ₯Ό ν•˜λ‚˜μ˜ PDF 파일둜 λ³‘ν•©ν•˜λŠ” ν”„λ‘œκ·Έλž¨μž…λ‹ˆλ‹€.

λ³Έ ν”„λ‘œκ·Έλž¨μ€ 배포용 μƒμš© μ œν’ˆμ΄ μ•„λ‹ˆλ©°, 개인 μ‚¬μš©μ„ λͺ©μ μœΌλ‘œ μ œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.


κ°œμš”

이 ν”„λ‘œκ·Έλž¨μ€ Ebook Viewer의 λ‚΄λΆ€ νŒŒμΌμ„ 직접 μΆ”μΆœν•˜κ±°λ‚˜ λ³΅ν˜Έν™”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
λŒ€μ‹  μ‚¬μš©μžκ°€ μ§€μ •ν•œ ν™”λ©΄ μ˜μ—­μ„ κΈ°μ€€μœΌλ‘œ νŽ˜μ΄μ§€λ₯Ό λ„˜κΈ°λ©° μŠ€ν¬λ¦°μƒ·μ„ μƒμ„±ν•˜κ³ , 이λ₯Ό μˆœμ„œλŒ€λ‘œ λ³‘ν•©ν•˜μ—¬ PDF νŒŒμΌμ„ μƒμ„±ν•©λ‹ˆλ‹€.

μž‘μ—… μ€‘μ—λŠ” ν”„λ‘œκ·Έλž¨μ΄ λ§ˆμš°μŠ€μ™€ ν‚€λ³΄λ“œ μž…λ ₯을 μžλ™μœΌλ‘œ μ œμ–΄ν•©λ‹ˆλ‹€.
λ”°λΌμ„œ PDF 생성이 μ§„ν–‰λ˜λŠ” λ™μ•ˆμ—λŠ” μ‚¬μš©μžκ°€ 마우슀 λ˜λŠ” ν‚€λ³΄λ“œλ₯Ό μ‘°μž‘ν•˜μ§€ μ•Šμ•„μ•Ό ν•©λ‹ˆλ‹€.


μ£Όμ˜μ‚¬ν•­

DRM μ •μ±…μœΌλ‘œ 인해, λͺ¨λ“  Ebook Viwerμ—μ„œ λ™μž‘ν•˜μ§€λŠ” μ•ŠλŠ”λ‹€. ν˜„μž¬κΉŒμ§€ ν™•μΈλœ λ°”λ‘œλŠ”, μ•ŒλΌλ”˜ λ·°μ–΄μ—μ„œλŠ” 정상 λ™μž‘ν•œλ‹€.


버전 μ•ˆλ‚΄

초기 버전

초기 버전은 μˆ˜μž‘μ—…μœΌλ‘œ μž‘μ„± 및 μˆ˜μ •λœ μ½”λ“œ 기반으둜 μ œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
λ”°λΌμ„œ 일뢀 ν™˜κ²½μ—μ„œλŠ” μ •μƒμ μœΌλ‘œ λ™μž‘ν•˜μ§€ μ•Šκ±°λ‚˜ μ˜ˆμ™Έ 상황을 μΆ©λΆ„νžˆ μ²˜λ¦¬ν•˜μ§€ λͺ»ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ 버전

ν˜„μž¬ 버전은 GPTλ₯Ό ν™œμš©ν•΄ μž‘μ„±λœ μ½”λ“œ 기반으둜 κ΅¬μ„±λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
λ‹€λ§Œ μžλ™ μƒμ„±λœ μ½”λ“œ νŠΉμ„±μƒ λͺ¨λ“  ν™˜κ²½κ³Ό μƒν™©μ—μ„œ μ™„μ „ν•œ λ™μž‘μ„ 보μž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μ‚¬μš©μžλŠ” μ‹€ν–‰ κ²°κ³Όλ₯Ό λ°˜λ“œμ‹œ 직접 확인해야 ν•˜λ©°, ν•„μš” μ‹œ μ’Œν‘œ, νŽ˜μ΄μ§€ 수, 속도 섀정을 μ‘°μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€.


λ™μž‘ 방식

ν”„λ‘œκ·Έλž¨μ€ λ‹€μŒ μˆœμ„œλ‘œ λ™μž‘ν•©λ‹ˆλ‹€.

  1. Ebook Viewer의 ν˜„μž¬ νŽ˜μ΄μ§€λ₯Ό κΈ°μ€€μœΌλ‘œ μ§€μ •λœ μ˜μ—­μ„ μΊ‘μ²˜ν•©λ‹ˆλ‹€.
  2. λ‹€μŒ νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.
  3. μž…λ ₯ν•œ νŽ˜μ΄μ§€ 수만큼 μœ„ 과정을 λ°˜λ³΅ν•©λ‹ˆλ‹€.
  4. μƒμ„±λœ 이미지 νŒŒμΌμ„ μˆœμ„œλŒ€λ‘œ μ •λ ¬ν•©λ‹ˆλ‹€.
  5. μ •λ ¬λœ 이미지λ₯Ό ν•˜λ‚˜μ˜ PDF 파일둜 λ³‘ν•©ν•©λ‹ˆλ‹€.

이 방식은 ν™”λ©΄ 캑처 κΈ°λ°˜μ΄λ―€λ‘œ, Viewer의 ν‘œμ‹œ μƒνƒœμ™€ μ‚¬μš©μžκ°€ μ§€μ •ν•œ 캑처 μ˜μ—­μ— 따라 κ²°κ³Όλ¬Ό ν’ˆμ§ˆμ΄ λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.


μ €μž‘κΆŒ κ΄€λ ¨ μ•ˆλ‚΄

μ €μž‘κΆŒλ²• 제30쑰에 λ”°λ₯΄λ©΄, μ €μž‘λ¬Όμ„ 개인적인 이용 λ²”μœ„ λ‚΄μ—μ„œ λ³΅μ œν•˜λŠ” 것은 ν—ˆμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€λ§Œ μƒμ„±λœ PDF νŒŒμΌμ„ νƒ€μΈμ—κ²Œ κ³΅μœ ν•˜κ±°λ‚˜ λ°°ν¬ν•˜λŠ” κ²½μš°μ—λŠ” 법적 μ±…μž„μ΄ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ³Έ ν”„λ‘œκ·Έλž¨μ€ 개인 μ‚¬μš©μ„ μ „μ œλ‘œ μ œκ³΅λ©λ‹ˆλ‹€.
μƒμ„±λœ PDF 파일의 μ‚¬μš©, 보관, 곡유, 배포에 λŒ€ν•œ μ±…μž„μ€ μ‚¬μš©μž λ³ΈμΈμ—κ²Œ μžˆμŠ΅λ‹ˆλ‹€.

μƒμ„±λœ PDF νŒŒμΌμ€ 개인적인 μš©λ„λ‘œλ§Œ μ‚¬μš©ν•˜μ‹­μ‹œμ˜€.


μ‚¬μš© 방법

개발자

κ°œλ°œμžλŠ” μ†ŒμŠ€μ½”λ“œλ₯Ό 직접 ν™•μΈν•œ λ’€, ν•„μš”ν•œ ν™˜κ²½μ— 맞게 μˆ˜μ •ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ³Έ ν”„λ‘œκ·Έλž¨μ€ κΈ°μ‘΄ κ΅¬ν˜„λ¬Όμ„ 기반으둜 μ»€μŠ€ν„°λ§ˆμ΄μ§•ν•œ κ΅¬μ‘°μž…λ‹ˆλ‹€.
λ”°λΌμ„œ μ‚¬μš© ν™˜κ²½, Ebook Viewer μ’…λ₯˜, ν™”λ©΄ 해상도, κΆŒν•œ μ„€μ • 등에 따라 μΆ”κ°€ μˆ˜μ •μ΄ ν•„μš”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ†ŒμŠ€μ½”λ“œλ₯Ό μˆ˜μ •ν•˜λŠ” 경우 λ‹€μŒ 사항을 ν™•μΈν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

  1. macOS μ ‘κ·Όμ„± κΆŒν•œ 처리
  2. ν™”λ©΄ 캑처 κΆŒν•œ 처리
  3. 마우슀 및 ν‚€λ³΄λ“œ μžλ™ μ œμ–΄ 둜직
  4. νŽ˜μ΄μ§€ μ „ν™˜ 방식
  5. 캑처 μ˜μ—­ μ’Œν‘œ 계산 방식
  6. 이미지 μ €μž₯ 및 PDF 병합 둜직

CLI μ‹€ν–‰

CLI둜 μ‹€ν–‰ν•˜κ³ μž ν•œλ‹€λ©΄, μœ„μ˜ κΆŒν•œμ‚¬ν•­λ“€μ„ μ†μ‰¬μš΄ μ‚¬μš©μ—μ„œ ν—ˆμš©ν•˜μ‹  ν›„ λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μž…λ ₯ν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

pip install -r requirements.txt
python main.py

DMG Build

Customν•œκ²ƒμœΌλ‘œ dmg buildν•˜κ³  μ‹Άλ‹€λ©΄ λ‹€μŒκ³Ό 같은 절차λ₯Ό λ”°λΌμ£Όμ‹œλ©΄ λ©λ‹ˆλ‹€.

사전 μ€€λΉ„

  • macOS ν™˜κ²½ (hdiutil, codesign, osascriptλŠ” macOS κΈ°λ³Έ 제곡)
  • ν”„λ‘œμ νŠΈ λ£¨νŠΈμ—μ„œ μž‘μ—… (main.py, build.zshκ°€ μžˆλŠ” 디렉터리)

ν•œ λ²ˆμ— λΉŒλ“œ (ꢌμž₯)

build.zsh ν•˜λ‚˜λ‘œ μ˜μ‘΄μ„± μ„€μΉ˜ β†’ 문법 검사 β†’ μ•± λ²ˆλ“€ λΉŒλ“œ β†’ μ„œλͺ… β†’ DMG μƒμ„±κΉŒμ§€ λͺ¨λ‘ μˆ˜ν–‰λ©λ‹ˆλ‹€.

./build.zsh

μœ„ μŠ€ν¬λ¦½νŠΈλŠ” λ‚΄λΆ€μ μœΌλ‘œ λ‹€μŒμ„ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰ν•©λ‹ˆλ‹€.

  1. build/dist 디렉터리 정리
  2. .venv κ°€μƒν™˜κ²½ 생성 (없을 경우) 및 ν™œμ„±ν™”
  3. pip install -r requirements.txt 둜 μ˜μ‘΄μ„± μ„€μΉ˜ (pyinstaller 포함)
  4. main.py, permission_utils.py, capture_worker.py 문법 검사 (py_compile)
  5. pyinstaller --clean --noconfirm EbookToPDF.spec 둜 dist/EbookToPDF.app 생성
  6. codesign 으둜 μ„œλͺ… 및 검증 (κΈ°λ³Έ ad-hoc, CODESIGN_IDENTITY μ§€μ • μ‹œ μ•ˆμ • μ„œλͺ… β€” μ•„λž˜ μ°Έκ³ )
  7. make_dmg.zsh μ‹€ν–‰μœΌλ‘œ dist/EbookToPDF.dmg 생성

λΉŒλ“œκ°€ μ™„λ£Œλ˜λ©΄ 결과물은 λ‹€μŒ μœ„μΉ˜μ— μƒμ„±λ©λ‹ˆλ‹€.

  • μ•± λ²ˆλ“€: dist/EbookToPDF.app
  • μ„€μΉ˜ 이미지: dist/EbookToPDF.dmg

DMG만 λ‹€μ‹œ 생성

μ•± λ²ˆλ“€(dist/EbookToPDF.app)이 이미 λΉŒλ“œλ˜μ–΄ μžˆλŠ” μƒνƒœμ—μ„œ DMG만 λ‹€μ‹œ λ§Œλ“€κ³  μ‹Άλ‹€λ©΄ λ‹€μŒμ„ μ‹€ν–‰ν•©λ‹ˆλ‹€.

./make_dmg.zsh

이 μŠ€ν¬λ¦½νŠΈλŠ” dist/EbookToPDF.appλ₯Ό μŠ€ν…Œμ΄μ§• 폴더에 λ³΅μ‚¬ν•˜κ³  /Applications 심볼릭 링크λ₯Ό μΆ”κ°€ν•œ λ’€, λ“œλž˜κ·Έ-μ•€-λ“œλ‘­ μ„€μΉ˜μš© λ ˆμ΄μ•„μ›ƒ(μ•„μ΄μ½˜ 배치)을 μ μš©ν•΄ μ••μΆ•λœ dist/EbookToPDF.dmgλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€. μ•± λ²ˆλ“€μ΄ μ—†μœΌλ©΄ λ¨Όμ € ./build.zshλ₯Ό μ‹€ν–‰ν•˜λΌλŠ” μ•ˆλ‚΄μ™€ ν•¨κ»˜ μ’…λ£Œλ©λ‹ˆλ‹€.

μž¬λΉŒλ“œ μ‹œ κΆŒν•œμ΄ ν’€λ¦¬λŠ” 문제 (μ€‘μš”)

ad-hoc μ„œλͺ…(codesign --sign -)은 μž¬λΉŒλ“œν•  λ•Œλ§ˆλ‹€ μ½”λ“œ μ„œλͺ… 신원(cdhash)이 λ°”λ€λ‹ˆλ‹€. macOS κΆŒν•œ μ‹œμŠ€ν…œ(TCC)은 κΆŒν•œμ„ λ²ˆλ“€ μ‹λ³„μž + μ½”λ“œ μ„œλͺ… 동일성 으둜 μ‹λ³„ν•˜λ―€λ‘œ, 같은 이름·같은 λ²ˆλ“€ id 라도 μƒˆλ‘œ λΉŒλ“œν•œ 앱은 TCC μž…μž₯μ—μ„œ "λ‹€λ₯Έ μ•±"이 λ©λ‹ˆλ‹€. κ·Έ κ²°κ³Ό:

  • μ‹œμŠ€ν…œ μ„€μ •μ˜ κΆŒν•œ 토글이 κ³Όκ±° λΉŒλ“œμ— 묢인 μž”μ‘΄ ν•­λͺ©μ„ κ°€λ¦¬μΌœ, μƒˆ λΉŒλ“œμ—μ„œ ν™”λ©΄ 캑처/μžλ™ 클릭이 λ™μž‘ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • 앱을 μ‚­μ œν•΄λ„ TCC ν•­λͺ©μ€ λ‚¨μœΌλ©°, 버전을 μ˜¬λ €λ„ TCCλŠ” 버전을 ν‚€λ‘œ μ“°μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 토글을 off 해도 μž”μ‘΄ ν•­λͺ©λ§Œ 꺼질 λΏμž…λ‹ˆλ‹€.

ν•΄κ²°: κΈ°μ‘΄ κΆŒν•œ ν•­λͺ©μ„ μ œκ±°ν•œ λ’€ λ‹€μ‹œ λ°›κΈ°. λΉŒλ“œ μ‹œ --reset-permissions ν”Œλž˜κ·Έλ₯Ό μ£Όλ©΄ λΉŒλ“œ ν›„ μžλ™μœΌλ‘œ μ •λ¦¬ν•©λ‹ˆλ‹€.

./build.zsh --reset-permissions

λ˜λŠ” λΉŒλ“œμ™€ λ³„κ°œλ‘œ μ •λ¦¬λ§Œ ν•˜λ €λ©΄:

./reset_permissions.zsh

이 μŠ€ν¬λ¦½νŠΈλŠ” 이 앱이 μ‹€μ œλ‘œ μ‚¬μš©ν•˜λŠ” κΆŒν•œ μ„œλΉ„μŠ€ 3개만 μ œκ±°ν•©λ‹ˆλ‹€ β€” ScreenCapture(ν™”λ©΄ 기둝), Accessibility(μžλ™ 클릭/ν‚€ μž…λ ₯), ListenEvent(μž…λ ₯ λͺ¨λ‹ˆν„°λ§). 정리 ν›„ 앱을 λ‹€μ‹œ μ‹€ν–‰ν•˜λ©΄ κΆŒν•œμ„ μƒˆλ‘œ μš”μ²­ν•©λ‹ˆλ‹€. ad-hoc λΉŒλ“œ νŠΉμ„±μƒ μƒˆ λΉŒλ“œλŠ” 맀번 μƒˆ μ‹ μ›μ΄λ―€λ‘œ, μž¬λΉŒλ“œ ν›„ κΆŒν•œμ΄ ν’€λ Έλ‹€λ©΄ λ‹€μ‹œ --reset-permissions 둜 μ •λ¦¬ν•˜λ©΄ λ©λ‹ˆλ‹€.

λΉŒλ“œ κ²°κ³Ό 확인

μ„œλͺ…/κΆŒν•œ λ™μž‘μ€ λ‚΄λΆ€ λ°”μ΄λ„ˆλ¦¬λ₯Ό 직접 μ‹€ν–‰ν•˜κΈ°λ³΄λ‹€ μ•± λ²ˆλ“€μ„ 톡해 ν™•μΈν•˜λŠ” 것이 μ •ν™•ν•©λ‹ˆλ‹€.

open -n "dist/EbookToPDF.app"

μ°Έκ³ 

  • EbookToPDF.spec λŠ” PyInstaller λΉŒλ“œ μ„€μ • νŒŒμΌμž…λ‹ˆλ‹€. μ•± 이름, μ•„μ΄μ½˜, 포함 λ¦¬μ†ŒμŠ€ 등을 λ³€κ²½ν•˜λ €λ©΄ 이 νŒŒμΌμ„ μˆ˜μ •ν•˜μ‹­μ‹œμ˜€. κΆŒν•œ 리셋에 μ“°μ΄λŠ” λ²ˆλ“€ μ‹λ³„μž(com.local.ebooktopdf)도 이 파일의 bundle_identifier κ°’κ³Ό reset_permissions.zsh 의 BUNDLE_ID κ°€ μΌμΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • λ³Έ λΉŒλ“œλŠ” ad-hoc μ„œλͺ…(codesign --sign -)을 μ‚¬μš©ν•˜λ―€λ‘œ Apple 곡증(notarization)은 μ μš©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ λ‹€λ₯Έ μ‚¬μš©μžμ˜ Macμ—μ„œ 처음 μ‹€ν–‰ν•  λ•Œ Gatekeeper κ²½κ³ κ°€ ν‘œμ‹œλ  수 있으며, 우클릭 β†’ μ—΄κΈ° λ˜λŠ” λ³΄μ•ˆ μ„€μ •μ—μ„œ 싀행을 ν—ˆμš©ν•΄μ•Ό ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ½”λ“œλ₯Ό μˆ˜μ •ν•œ 경우 ./build.zsh λ₯Ό λ‹€μ‹œ μ‹€ν–‰ν•˜λ©΄ λ³€κ²½ 사항이 반영된 μ•±κ³Ό DMGκ°€ μƒˆλ‘œ μƒμ„±λ©λ‹ˆλ‹€.

μ‚¬μš©μž

μ‚¬μš©μžλŠ” DMG νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œν•œ λ’€ ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜λ©΄ λ©λ‹ˆλ‹€.
μ•„λž˜ 절차λ₯Ό μˆœμ„œλŒ€λ‘œ μ§„ν–‰ν•˜μ‹­μ‹œμ˜€.


1. κΆŒν•œ ν—ˆμš©

ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ ν›„ κΆŒν•œ κ΄€λ ¨ λ²„νŠΌμ΄ μ—¬λŸ¬ 개 ν‘œμ‹œλ  수 μžˆμŠ΅λ‹ˆλ‹€.

일반 μ‚¬μš©μžλŠ” 상단에 μœ„μΉ˜ν•œ κΆŒν•œ μš”μ²­ λ²„νŠΌ 2개만 μ‚¬μš©ν•˜λ©΄ λ©λ‹ˆλ‹€.

κΆŒν•œ ν—ˆμš©μ€ ν”„λ‘œκ·Έλž¨μ΄ λ‹€μŒ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•©λ‹ˆλ‹€.

  1. ν™”λ©΄ 캑처
  2. 마우슀 및 ν‚€λ³΄λ“œ μžλ™ μ œμ–΄

κΆŒν•œμ΄ μ •μƒμ μœΌλ‘œ ν—ˆμš©λ˜μ§€ μ•ŠμœΌλ©΄ PDF 생성이 μ œλŒ€λ‘œ λ™μž‘ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.


2. μ’Œν‘œ μ§€μ •

μ’Œν‘œ 지정은 PDF둜 λ³€ν™˜ν•  νŽ˜μ΄μ§€ μ˜μ—­μ„ μ„€μ •ν•˜λŠ” λ‹¨κ³„μž…λ‹ˆλ‹€.

λ‹€μŒ μˆœμ„œλ‘œ μ§„ν–‰ν•˜μ‹­μ‹œμ˜€.

  1. Ebook Viewerμ—μ„œ μΊ‘μ²˜ν•  νŽ˜μ΄μ§€ μ˜μ—­μ˜ μ’Œμƒλ‹¨μ„ ν΄λ¦­ν•©λ‹ˆλ‹€.
  2. μΊ‘μ²˜ν•  νŽ˜μ΄μ§€ μ˜μ—­μ˜ μš°ν•˜λ‹¨μ„ ν΄λ¦­ν•©λ‹ˆλ‹€.

μ§€μ •λœ 두 μ’Œν‘œλ₯Ό κΈ°μ€€μœΌλ‘œ μ‚¬κ°ν˜• μ˜μ—­μ΄ μ„€μ •λ˜λ©°, ν”„λ‘œκ·Έλž¨μ€ ν•΄λ‹Ή μ˜μ—­λ§Œ νŽ˜μ΄μ§€ μ΄λ―Έμ§€λ‘œ μΊ‘μ²˜ν•©λ‹ˆλ‹€.

μ’Œν‘œλ₯Ό μ§€μ •ν•˜κΈ° 전에 Ebook Viewerμ—μ„œ μ—¬λŸ¬ νŽ˜μ΄μ§€λ₯Ό λ„˜κ²¨λ³΄λ©° μ‹€μ œ μ½˜ν…μΈ  μ˜μ—­μ„ 확인해야 ν•©λ‹ˆλ‹€.
일뢀 Viewerμ—μ„œλŠ” νŽ˜μ΄μ§€λ§ˆλ‹€ μ½˜ν…μΈ μ˜ κ°€λ‘œ λ„ˆλΉ„κ°€ μΌμ •ν•˜μ§€ μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ’Œν‘œλ₯Ό λ„ˆλ¬΄ 쒁게 μ§€μ •ν•˜λ©΄ νŽ˜μ΄μ§€ 일뢀가 잘릴 수 μžˆμŠ΅λ‹ˆλ‹€.
μ’Œν‘œλ₯Ό λ„ˆλ¬΄ λ„“κ²Œ μ§€μ •ν•˜λ©΄ λΆˆν•„μš”ν•œ μ—¬λ°±μ΄λ‚˜ Viewer UIκ°€ PDF에 포함될 수 μžˆμŠ΅λ‹ˆλ‹€.


3. νŽ˜μ΄μ§€ 수 μž…λ ₯

Ebook Viewerμ—μ„œ 전체 νŽ˜μ΄μ§€ 수λ₯Ό ν™•μΈν•œ λ’€, ν”„λ‘œκ·Έλž¨μ— μž…λ ₯ν•©λ‹ˆλ‹€.

μž…λ ₯ν•œ νŽ˜μ΄μ§€ 수만큼 μΊ‘μ²˜κ°€ λ°˜λ³΅λ©λ‹ˆλ‹€.

νŽ˜μ΄μ§€ 수λ₯Ό μ‹€μ œλ³΄λ‹€ 적게 μž…λ ₯ν•˜λ©΄ PDFκ°€ 쀑간 νŽ˜μ΄μ§€μ—μ„œ μ’…λ£Œλ©λ‹ˆλ‹€.
νŽ˜μ΄μ§€ 수λ₯Ό μ‹€μ œλ³΄λ‹€ 많이 μž…λ ₯ν•˜λ©΄ λ§ˆμ§€λ§‰ νŽ˜μ΄μ§€ 이후에도 μΊ‘μ²˜κ°€ 계속 μ‹œλ„λ  수 μžˆμŠ΅λ‹ˆλ‹€.

μ •ν™•ν•œ νŽ˜μ΄μ§€ 수λ₯Ό μž…λ ₯ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.


4. PDF 파일λͺ… μž…λ ₯

생성할 PDF 파일λͺ…을 μž…λ ₯ν•©λ‹ˆλ‹€.

μž…λ ₯ν•œ 이름은 κ²°κ³Ό PDF 파일λͺ…μœΌλ‘œ μ‚¬μš©λ©λ‹ˆλ‹€.
νŒŒμΌμ„ μ‰½κ²Œ 식별할 수 μžˆλ„λ‘ μ±… 제λͺ© λ˜λŠ” μž‘μ—… λͺ©μ μ„ λ°˜μ˜ν•œ 이름을 μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.


5. 속도 μ„€μ •

νŽ˜μ΄μ§€ μ „ν™˜ 및 캑처 μ‚¬μ΄μ˜ λŒ€κΈ° μ‹œκ°„μ„ μ„€μ •ν•©λ‹ˆλ‹€.

기본값은 0.5μ΄ˆμž…λ‹ˆλ‹€.

일반적인 ν™˜κ²½μ—μ„œλŠ” κΈ°λ³Έκ°’ μ‚¬μš©μ„ ꢌμž₯ν•©λ‹ˆλ‹€.
ν…ŒμŠ€νŠΈ κ²°κ³Ό, 0.5초 섀정이 κ°€μž₯ μ•ˆμ •μ μœΌλ‘œ λ™μž‘ν–ˆμŠ΅λ‹ˆλ‹€.

속도λ₯Ό λ„ˆλ¬΄ λΉ λ₯΄κ²Œ μ„€μ •ν•˜λ©΄ νŽ˜μ΄μ§€ μ „ν™˜μ΄ μ™„λ£Œλ˜κΈ° 전에 μΊ‘μ²˜κ°€ 싀행될 수 μžˆμŠ΅λ‹ˆλ‹€.
속도λ₯Ό λ„ˆλ¬΄ 느리게 μ„€μ •ν•˜λ©΄ 전체 PDF 생성 μ‹œκ°„μ΄ κΈΈμ–΄μ§‘λ‹ˆλ‹€.

Viewer λ°˜μ‘ 속도가 λŠλ¦¬κ±°λ‚˜ νŽ˜μ΄μ§€ μ „ν™˜ μ• λ‹ˆλ©”μ΄μ…˜μ΄ κΈ΄ κ²½μš°μ—λŠ” 값을 쑰금 λ†’μ—¬ μ„€μ •ν•˜μ‹­μ‹œμ˜€.


6. PDF 생성

λͺ¨λ“  섀정을 μ™„λ£Œν•œ λ’€ Create PDF λ²„νŠΌμ„ ν΄λ¦­ν•©λ‹ˆλ‹€.

λ²„νŠΌμ„ ν΄λ¦­ν•œ ν›„μ—λŠ” μž‘μ—…μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ λ§ˆμš°μŠ€μ™€ ν‚€λ³΄λ“œλ₯Ό μ‘°μž‘ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.

ν”„λ‘œκ·Έλž¨μ€ PDF 생성을 μœ„ν•΄ 마우슀 및 ν‚€λ³΄λ“œ μž…λ ₯을 μžλ™μœΌλ‘œ μˆ˜ν–‰ν•©λ‹ˆλ‹€.
μ‚¬μš©μžκ°€ λ‹€λ₯Έ 창을 ν΄λ¦­ν•˜κ±°λ‚˜ 포컀슀λ₯Ό λ³€κ²½ν•˜λ©΄ μžλ™ μž…λ ₯이 μ˜λ„ν•˜μ§€ μ•Šμ€ μœ„μΉ˜μ—μ„œ 싀행될 수 μžˆμŠ΅λ‹ˆλ‹€.

PDF 생성 μ€‘μ—λŠ” λ‹€μŒ 행동을 ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€.

  1. λ‹€λ₯Έ μ•± 클릭
  2. μ°½ 이동
  3. ν‚€λ³΄λ“œ μž…λ ₯
  4. 마우슀 이동 및 클릭
  5. Ebook Viewer 포컀슀 λ³€κ²½

μž‘μ—…μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ ν˜„μž¬ μƒνƒœλ₯Ό μœ μ§€ν•˜λŠ” 것이 κ°€μž₯ μ•ˆμ „ν•©λ‹ˆλ‹€.


7. PDF μ—΄κΈ°

PDF 생성이 μ™„λ£Œλ˜λ©΄ Open PDF λ²„νŠΌμ„ 톡해 결과물을 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

κ²°κ³Ό 확인 μ‹œ λ‹€μŒ ν•­λͺ©μ„ μ κ²€ν•˜μ‹­μ‹œμ˜€.

  1. 전체 νŽ˜μ΄μ§€κ°€ ν¬ν•¨λ˜μ—ˆλŠ”μ§€
  2. νŽ˜μ΄μ§€ μˆœμ„œκ°€ μ˜¬λ°”λ₯Έμ§€
  3. νŽ˜μ΄μ§€ 일뢀가 μž˜λ¦¬μ§€ μ•Šμ•˜λŠ”μ§€
  4. λΆˆν•„μš”ν•œ Viewer UIλ‚˜ 여백이 ν¬ν•¨λ˜μ§€ μ•Šμ•˜λŠ”μ§€
  5. λ™μΌν•œ νŽ˜μ΄μ§€κ°€ 쀑볡 μΊ‘μ²˜λ˜μ§€ μ•Šμ•˜λŠ”μ§€

λ¬Έμ œκ°€ μžˆλŠ” 경우 μ’Œν‘œ, νŽ˜μ΄μ§€ 수, 속도 섀정을 μ‘°μ •ν•œ λ’€ λ‹€μ‹œ μƒμ„±ν•˜μ‹­μ‹œμ˜€.


문제 λ°œμƒ μ‹œ 확인 사항

PDF 결과물이 정상적이지 μ•Šμ€ 경우, λŒ€λΆ€λΆ„ λ‹€μŒ ν•­λͺ© 쀑 ν•˜λ‚˜κ°€ μ›μΈμž…λ‹ˆλ‹€.

  1. 캑처 μ’Œν‘œκ°€ μ •ν™•ν•˜μ§€ μ•ŠμŒ
  2. νŽ˜μ΄μ§€ μˆ˜κ°€ μ‹€μ œμ™€ 닀름
  3. νŽ˜μ΄μ§€ μ „ν™˜ 속도보닀 캑처 λŒ€κΈ° μ‹œκ°„μ΄ 짧음
  4. μž‘μ—… 쀑 μ‚¬μš©μžκ°€ 마우슀 λ˜λŠ” ν‚€λ³΄λ“œλ₯Ό μ‘°μž‘ν•¨
  5. Ebook Viewer 창의 ν¬μ»€μŠ€κ°€ 변경됨
  6. macOS κΆŒν•œμ΄ μ •μƒμ μœΌλ‘œ ν—ˆμš©λ˜μ§€ μ•ŠμŒ

각 ν•­λͺ©μ„ ν™•μΈν•œ λ’€ λ‹€μ‹œ μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€.


μ‚¬μš© μ‹œ μ£Όμ˜μ‚¬ν•­

이 ν”„λ‘œκ·Έλž¨μ€ ν™”λ©΄ 캑처 기반 μžλ™ν™” λ„κ΅¬μž…λ‹ˆλ‹€.
λ”°λΌμ„œ Viewer ꡬ쑰, ν™”λ©΄ 해상도, macOS κΆŒν•œ μ„€μ •, νŽ˜μ΄μ§€ μ „ν™˜ 속도에 따라 κ²°κ³Όκ°€ λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž¨μ€ λͺ¨λ“  Ebook Viewerμ—μ„œμ˜ λ™μž‘μ„ 보μž₯ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
λ˜ν•œ 생성 결과물의 ν’ˆμ§ˆκ³Ό 정확성은 μ‚¬μš©μžκ°€ μ§€μ •ν•œ 섀정값에 영ν–₯을 λ°›μŠ΅λ‹ˆλ‹€.

PDF 생성 ν›„μ—λŠ” λ°˜λ“œμ‹œ 결과물을 직접 ν™•μΈν•˜μ‹­μ‹œμ˜€.


μ΅œμ’… μ•ˆλ‚΄

Ebook PDF ExtractorλŠ” macOSμ—μ„œ Ebook Viewer 화면을 νŽ˜μ΄μ§€ λ‹¨μœ„λ‘œ μΊ‘μ²˜ν•˜μ—¬ PDF둜 λ³‘ν•©ν•˜λŠ” 개인용 λ„κ΅¬μž…λ‹ˆλ‹€.

μƒμ„±λœ PDF νŒŒμΌμ€ 개인적인 λͺ©μ μœΌλ‘œλ§Œ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.
νƒ€μΈμ—κ²Œ κ³΅μœ ν•˜κ±°λ‚˜ 배포할 경우 법적 μ±…μž„μ΄ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ³Έ ν”„λ‘œκ·Έλž¨μ˜ μ‚¬μš© 결과와 μƒμ„±λœ PDF 파일의 관리 μ±…μž„μ€ μ‚¬μš©μž λ³ΈμΈμ—κ²Œ μžˆμŠ΅λ‹ˆλ‹€.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors