Skip to content

ikjo93/PDF-Editor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

32 Commits
Β 
Β 
Β 
Β 

Repository files navigation

PDF-Editor

πŸ‘‰ Introduction

PDF νŽΈμ§‘(병합, λΆ„ν•  λ“±)을 μœ„ν•΄μ„œλŠ”Β ezPDF λ“±Β νŽΈμ§‘ ν”„λ‘œκ·Έλž¨μ„ ꡬ맀해야 λ˜κ±°λ‚˜ 별도 인터넷 μ›Ή μ‚¬μ΄νŠΈμ— 접속해야 ν•˜λŠ”λ°, PDF νŽΈμ§‘μ„ λͺ‡ 번 ν•˜μ§€ μ•ŠλŠ”λ°λ„ λΉ„μš©μ„ λΆ€λ‹΄ν•˜λŠ” 것은 κΊΌλ €μ§€κ³  μ›Ή μ‚¬μ΄νŠΈμ— μ ‘μ†ν•΄μ„œ νŽΈμ§‘ν•˜λŠ” 경우 λ‘œλ”©μ‹œκ°„, κ΄‘κ³  λ…ΈμΆœ λ“± λ²ˆκ±°λ‘œμ›€μ΄ λ°œμƒν•˜μ—¬ νŒŒμ΄μ¬μ„ 톡해 자체 ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜μ—¬ 문제λ₯Ό ν•΄κ²°ν•˜κ³ μž ν–ˆμŠ΅λ‹ˆλ‹€. ν˜Ήμ‹œ 더 쒋은 λ°©ν–₯으둜 κ°œλ°œν•  수 μžˆλŠ” 방법이 μžˆλ‹€λ©΄ μ €ν•œν…Œλ„ 아이디어λ₯Ό κ³΅μœ ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€. πŸ™‡β€β™‚οΈ




πŸ‘ Overview

Functions

  • PDF λΆ„ν•  및 병합 πŸ“‘
  • 마우슀 λ“œλž˜κ·Έ μ•€ λ“œλ‘­ πŸ–±
  • PDF 병합 μˆœμ„œ λ³€κ²½ 및 선택 μ‚­μ œ βœ‚

Tech

Programming Language / Library

  • Python, tkinter, PyPDF2, TkinterDnD2

IDE

  • Visual Studio Code

Production Period

  • 2021λ…„ 4μ›” 1일 ~ 2021λ…„ 4μ›” 15일(κΈ°λŠ₯ κ΅¬ν˜„)
  • 2021λ…„ 5μ›” 4일(κΈ°λŠ₯ κ°œμ„ )
  • 2021λ…„ 7μ›” 9일(κΈ°λŠ₯ κ°œμ„ )

Information

  • ν•΄λ‹Ή ν”„λ‘œκ·Έλž¨μœΌλ‘œ 별도 μˆ˜μ΅μ„ μ°½μΆœν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • 지인듀이 μ‹€μ œ ν˜„μ—…μ—μ„œ μ‚¬μš© 쀑이며 λ§Œμ‘±λ„κ°€ λ†’μŠ΅λ‹ˆλ‹€. πŸ‘



πŸ› οΈ Details

β‘  ν”„λ‘œκ·Έλž¨ 전체 ν”„λ ˆμž„ ꡬ성

  • 파일 ν”„λ ˆμž„
    • PDF 파일 μΆ”κ°€(디렉토리 쑰회)
    • 리슀트 ν”„λ ˆμž„ 상 PDF 파일 μˆœμ„œ λ³€κ²½
    • 리슀트 ν”„λ ˆμž„ 상 PDF 파일 선택 μ‚­μ œ
  • 리슀트 ν”„λ ˆμž„
    • 리슀트 λ°•μŠ€(마우슀 λ“œλž˜κ·Έ μ•€ λ“œλ‘­)
    • μ„Έλ‘œ μŠ€ν¬λ‘€λ°”
  • μ €μž₯ 경둜 ν”„λ ˆμž„
    • μ €μž₯경둜 μ°ΎκΈ°(디렉토리 쑰회)
    • μ €μž₯경둜 μž…λ ₯λž€ 및 κ°€λ‘œ μŠ€ν¬λ‘€λ°”
  • μ‹€ν–‰ ν”„λ ˆμž„
    • PDF 파일 λΆ„ν•  및 병합 μ‹€ν–‰ λ²„νŠΌ

캑처

β‘‘ PDF 병합 μˆœμ„œ λ³€κ²½ 및 선택 μ‚­μ œ

μ—¬λŸ¬ 개의 PDF νŒŒμΌμ„ 병합 μ‹œ '↑ ', '↓' λ²„νŠΌμ„ ν΄λ¦­ν•˜μ—¬ λ³‘ν•©λ˜λŠ” μˆœμ„œλ₯Ό λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆλ‹€ image

Features

  • μˆœμ„œ λ³€κ²½ μ‹œ ν•΄λ‹Ή 파일이 리슀트λ₯Ό λ²—μ–΄λ‚˜μ§€ μ•Šλ„λ‘ index μ œν•œ μ„€μ •
  • pdf 파일 μ‚­μ œ μ‹œ reversed()λ₯Ό 톡해 μ—­μˆœμœΌλ‘œ μ •λ ¬ ν›„ for문을 톡해 μ‚­μ œ
    • index 0 ~7의 pdf 파일이 μžˆλ‹€κ³  ν–ˆμ„ λ•Œ, 0을 λ¨Όμ € μ‚­μ œ ν•˜λ©΄ 뒀에 μžˆλŠ” pdf 파일이 μ•žμœΌλ‘œ 였기 λ•Œλ¬Έμ— λ‚˜μ€‘μ— 7이 μ‚­μ œλ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έ

β‘’Β λ§ˆμš°μŠ€ λ“œλž˜κ·Έ μ•€ λ“œλ‘­

PDF 파일이 κΉŠμ€(λ³΅μž‘ν•œ) 디렉토리에 μ‘΄μž¬ν•˜λŠ” 경우 디렉토리λ₯Ό 타고 PDF νŒŒμΌμ„ λ“±λ‘ν•˜κΈ° λ²ˆκ±°λ‘œμš°λ―€λ‘œ νŒŒμΌμ„ λŒμ–΄λ‹€κ°€ ν”„λ‘œκ·Έλž¨μ— 직접 λ“±λ‘μ‹œν‚¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

image

Features

  • TkinterDnD2 라이브러리의 drag_source_register, dnd_bind λ“±μ˜ λ©”μ„œλ“œμ™€ widget 속성 ν™œμš©

β‘£ PDF λΆ„ν•  및 병합

μ—¬λŸ¬ νŽ˜μ΄μ§€μ˜ PDFλ₯Ό λΆ„ν• ν•  수 있고 μ—¬λŸ¬ 개의 PDF νŒŒμΌμ„ λ³‘ν•©ν•˜μ—¬ μƒˆλ‘œμš΄ PDF νŒŒμΌμ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

image

Features

  • PyPDF2 라이브러리의 PdfFileWriter 및 PdfFileReader 객체λ₯Ό ν†΅ν•œ pdf 파일 λΆ„ν• 
  • PyPDF2 라이브러리의 PdfFileMerger 객체λ₯Ό ν†΅ν•œ pdf 파일 병합



🎞 Retrospection

κ°œλ°œμžκ°€ 되기둜 κ²°μ‹¬ν•œ ν›„ μ œκ°€ 처음 ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ 배운 것은 νŒŒμ΄μ¬μ΄μ—ˆμŠ΅λ‹ˆλ‹€. 유튜브 β€œλ‚˜λ„ 코딩” 채널을 톡해 νŒŒμ΄μ¬μ„ ν•™μŠ΅ν–ˆμ—ˆλŠ”λ°, 파이썬 기초 문법을 ν•™μŠ΅ν•˜κ³  파이썬 라이브러리λ₯Ό 톡해 κ²Œμž„, 이미지 병합 ν”„λ‘œκ·Έλž¨, μ›Ή μŠ€ν¬λž˜ν•‘, μ—…λ¬΄μžλ™ν™”(RPA) ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€μ–΄ λ³΄λŠ” κ³Όμ •(클둠 μ½”λ”©)μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

ν•΄λ‹Ή 과정을 톡해 배운 λ‚΄μš©μ„ ν† λŒ€λ‘œ 개인적으둜 PDF νŽΈμ§‘ ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•΄ 보고 μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. μ €μ˜ μ „ 직μž₯μ—μ„œλŠ” PDF νŽΈμ§‘μ„ μœ„ν•΄μ„œλŠ” 별도 ν”„λ‘œκ·Έλž¨(λ²•μΈμš©)을 ꡬ맀해야 ν•˜κ±°λ‚˜ 별도 μ›Ή μ‚¬μ΄νŠΈμ— μ ‘μ†ν•΄μ•Όν•˜λŠ” λΆˆνŽΈν•¨μ΄ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•΄λ³΄κ³ μž μ‚¬μš©μž μž…μž₯μ—μ„œ μ–΄λ–»κ²Œ PDF νŽΈμ§‘μ„ νŽΈλ¦¬ν•˜κ²Œ ν•  수 μžˆμ„μ§€ 고민해보며 μœ„ κ³Όμ •μ—μ„œ 닀루지 μ•Šμ•˜λ˜ PDF λ³‘ν•©Β·λΆ„ν• μ΄λ‚˜ 마우슀 λ“œλž˜κ·Έ μ•€ λ“œλ‘­ 라이브러리 μ‚¬μš©λ²•μ„ μ°Ύμ•„κ°€λ©΄μ„œ PDF νŽΈμ§‘ ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•΄ λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 이후 κ°œλ°œν•œ ν”„λ‘œκ·Έλž¨μ„ μ§€μΈλ“€μ—κ²Œ 배포해본 κ²°κ³Ό λͺ¨λ‘λ“€ ν˜„μ—…μ—μ„œ μ‚¬μš© λ§Œμ‘±λ„κ°€ λ†’μ•˜μœΌλ©° λ˜ν•œ μ–΄λ–€ 점이 λΆˆνŽΈν–ˆλŠ”μ§€(PDF 파일 등둝이 λΆˆνŽΈν•˜λ‹€, μ €μž₯경둜 확인이 λΆˆνŽΈν•˜λ‹€ λ“±) ν”Όλ“œλ°±μ„ λ°›μ•„ κΈ°λŠ₯을 κ°œμ„ μ‹œν‚¬ μˆ˜λ„ μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

이λ₯Ό 톡해 개발 κ³΅λΆ€λŠ” 무엇보닀 μ‹€μ œλ‘œ μ„œλΉ„μŠ€λ₯Ό κ°œλ°œν•΄λ³΄κ³  이λ₯Ό μ‚¬μš©μžλ“€μ—κ²Œ λ°°ν¬ν•˜κ³  μš΄μ˜ν•΄λ³΄λŠ” 것이 κ°€μž₯ 효과적인 ν•™μŠ΅ λ°©λ²•μ΄λΌλŠ” 것을 λŠλ‚„ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ ν”„λ‘œκ·Έλž˜λ°μ„ 톡해 μžμ‹ μ˜ 아이디어가 μ†Œν”„νŠΈμ›¨μ–΄λ‘œ μ‹€μ œν™”λ˜μ–΄ κ΅¬ν˜„λ  λ•Œ λŠλΌλŠ” 희열감과 μ–΄λ–€ λ¬Έμ œμ— λŒ€ν•΄ κ³ λ‡Œν•˜λŠ” 끝에 해결될 λ•Œ μ–»λŠ” 성취감 그리고 μ‚¬μš©μžκ°€ νŽΈλ¦¬ν•¨μ„ λŠλ‚„ λ•Œ λ³΄λžŒκ°μ„ λŠλ‚„ 수 μžˆμ—ˆκ³  μ΄λŸ¬ν•œ 것듀이 κ°œλ°œμžκ°€ ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λŠ” μ΄μœ μ΄μ§€ μ•Šμ„κΉŒλΌκ³  생각해볼 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

About

PDF editing program using Python

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages