반응형

1. 상단 디스크 모양 (Figure 저장)

Figure 예시2
Figure 예시1 결과

 

 

 

2. plot 위 디스크 모양 (다른 이름으로 저장)

Figure 예시2
Figure 예시2 결과

 

 

Figure 예시 결과는 저장된 PNG 원본 그대로 붙임.

 

1번의 경우 그림도 작고 선명하지 않음.

 

 PPT에 선명한 그림을 넣으려면 2번이 적합함. 

 

2번의 경우 그림도 크고 legend, x axis, y axis 등 글씨가 선명함.

728x90
반응형
반응형

안녕하세요.

 

오랜만에 파이썬 응용에 글을 쓰는 것 같습니다.

 

어제 급하게 교수님의 지시하에 책을 스캔떠서 복사했습니다.

 

아무래도 양도 양인 만큼 스캔을 한 페이지 한 페이지 뜨는 것이 너무 힘들어서 파이썬으로 꼼수 좀 사용했습니다. 

 

책 같은 경우는 양면으로 되있기 때문에 스캔을 뜨는 것이 굉장히 어렵습니다. 

 

연속으로 한 면만 스캔 뜰 수 있는 프린트입니다.

 

 20 - 81 page 라면,

 

앞 : 20, 22, 24, 26 ~ 76, 78, 80 Page

뒤 : 21, 23, 25, 27 ~ 77, 79, 81 Page

 

로 스캔을 뜬 후,  저장된 pdf를 각페이지를 교차해서 합쳤습니다. 

 

from PyPDF2 import PdfFileReader, PdfFileWriter
import os


# FIle name
base_path = os.getcwd()
file_name_1 = '앞.pdf'
file_name_2 = '뒤.pdf'
save_name = '교차.pdf'

# Path
file_path_1 = os.path.join(base_path, file_name_1)
file_path_2 = os.path.join(base_path, file_name_2)
save_path = os.path.join(base_path, save_name)
print(file_path_1)
print(file_path_2)
print(save_path)

# PDF Read
pdf_read_1 = PdfFileReader(open(file_path_1, 'rb'))
pdf_read_2 = PdfFileReader(open(file_path_2, 'rb'))

# PDF Write
pdf_writer = PdfFileWriter()

# Get number page
number_pages_1 = pdf_read_1.getNumPages()
number_pages_2 = pdf_read_2.getNumPages()
print(number_pages_1)
print(number_pages_2)

if number_pages_1 >= number_pages_2:
    stop_point = number_pages_2
else:
    stop_point = number_pages_1
# set up
i = 0

while(1):
    if stop_point == i:
        break
    pdf_writer.addPage(pdf_read_1.getPage(i))
    pdf_writer.addPage(pdf_read_2.getPage(i))
    i = i + 1

with open(save_path, 'wb') as f:
    pdf_writer.write(f)

급하게 코드를 짰지만, 동작은 잘 합니다. 

 

외부 라이브러리를 쉽게 불러올 수 있고, 코드 또한 굉장히 간단합니다. 

 

전공적인 부분이 아닌, 논리적인 연결을 시킬 수 있다면 누구나 할 수 접근할 수 있는 것이 파이썬의 강점입니다.

 

정말로 몇 년 뒤면 파이썬을 엑셀처럼 실무에서 사용하는 모습을 볼 수 있을 것 같습니다.

 

python -m pip install PyPDF2  # 설치
728x90
반응형

+ Recent posts