🤖 Data Study/memo

[jupyter] PDF 파일 제어하기

데이터분석가SIENNA 2020. 5. 9. 14:29

1. 현재 작업중인 디렉토리 위치를 파악한다

%pwd

 

 

2. pdf 제어 모듈 설치

!pip install PyPDF2

!pip install textract

!pip install nltk

!pip install pdfminer3k

Collecting ~ 설치하는 중
Requirement ~ 이미 설치 되어있음

 

 

3. 불러올 pdf파일을 올바른 경로로 넣어준다

* jupyter 말고 IDLE 사용할 경우 경로가 다르므로 바꿔주어야 한다

#현재 작업중인 디렉토리 확인
import os
os.getcwd()

#경로 바꾸기
os.chdir('d:\python')

 

4. 모듈 불러오기 파일 열기

import PyPDF2
pdfFileObj = open('meet1.pdf', 'rb')


(* 참고1) 파일 호출 옵션
1. r : read only 읽기전용 -> 원본 보호
2. a : append 추가모드 -> 원본 보호
3. w : write 쓰기모드 -> 원본 삭제 -> 덮어쓰기
4. rb : binary mode  (메모장 제외하고는 모두 rb로 열어준다)

 

(*참고2) 문자↔숫자 변환

(*참고3) 개발자용 폰트 추천 : D2Coding
- 자간을 맞춰준다
- 0과 O 등을 구분해준다

(*참고4) 폰트에 @붙은것 : 글씨 세로쓰기 (없는건 가로쓰기)

\ 역슬래시 (영문폰트)
₩ 원화기호 (한글폰트)

 

 

5. 원하는 pdf 파일 출력하기

1) 

import PyPDF2
import sys

pdfFileObj = open('meet1.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pdfReader.numPages
pageObj = pdfReader.getPage(0)
pageObj.extractText()
print(pageObj.extractText())

 

2) 암호 해제

# 라이브러리 읽어 들이기
import urllib.request

# URL과 저장 경로 지정하기
url = "http://uta.pw/shodou/img/28/214.png"
savename = "test.png"

# 다운로드
urllib.request.urlretrieve(url, savename)
print("저장되었습니다...!")
#%%writefile d:/python/1일차/decrypt.py

#암호가 걸려있는 파일
import PyPDF2

pdfFile = open('encrypted.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFile) #읽은내용을 변수에 저장
pdfWriter = PyPDF2.PdfFileWriter()

#암호를 입력하지 않으면 파일읽기 오류발생
pdfReader.decrypt('rosebud') #암호해제

for pageNum in range(pdfReader.numPages) :
    pdfWriter.addPage(pdfReader.getPage(pageNum))
    
pdfReader.numPages

print(pdfReader.numPages, "페이지")
print()
print("----------------------------")
print()

pageObj = pdfReader.getPage(0)
pageObj.extractText()
print(pageObj.extractText())

 

3) 암호 변경

#파일명 : encrypted.py

#%%writefile d:/python/1일차/decrypt.py

#암호가 걸려있는 파일
import PyPDF2

pdfFile = open('encrypted.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFile) #읽은내용을 변수에 저장
pdfWriter = PyPDF2.PdfFileWriter()

#암호를 입력하지 않으면 파일읽기 오류발생
pdfReader.decrypt('rosebud') #암호해제

for pageNum in range(pdfReader.numPages) :
    pdfWriter.addPage(pdfReader.getPage(pageNum))
    
pdfWriter.encrypt('sssss')

resultPdf = open('NEW_encrypted.pdf', 'wb')

pdfWriter.write(resultPdf)

resultPdf.close()

print("작업이 완료되었습니다")

'🤖 Data Study > memo' 카테고리의 다른 글

[Web] 반응형 웹 기술  (0) 2020.05.10
[Linux] 리눅스 명령어  (0) 2020.05.10
[jupyter] tip  (0) 2020.05.09
[jupyter] 설치/단축키  (0) 2020.05.09
CMD 명령어  (0) 2020.05.09