300x250
https://gongdolgongdol.tistory.com/200
기본작성은 앞서 정리한 글을 참고하다.
1. 코드작성하기
1) 이미지를 4개씩 배치하면서 줄을 바꿔가며 나열한다. 4줄씩 계속 정리해 나간다.
2) glob.glob(r"C:\Users\Pictures\Screenshots\*png") 코드는 경로내 png 파일 디렉토리를 가져오는데, 순서가 뒤죽박죽이다.
-> 파일명 1,2,3,11,12 이 있으면, 맨앞의 1먼저 가져오면서, 1,11,12,2,3 이런식으로 가져온다.
-> 그래서 pip install natsort를 설치하여 모듈을 사용한다.
-> natsort.natsorted(glob.glob(r"C:\Users\Pictures\Screenshots\*png"))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
from pptx import Presentation
from pptx.util import Cm, Pt
from pptx.util import Inches
import glob
import natsort
# 프레젠테이션
prs = Presentation()
# 슬라이드 빈화면
layout = prs.slide_layouts[6]
# 슬라이드
prs.slide_width = Inches(16)
prs.slide_height = Inches(9)
slide = prs.slides.add_slide(layout)
# 제목의 왼쪽, 높이 설정
left = Cm(1)
top = Cm(1)
height = Cm(1)
width = Inches(15)
# 텍스트 만들기
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
p = tf.add_paragraph()
p.text = "image pptx save"
p.font.bold = True
p.font.size = Pt(30)
# 시작 이미지 (첫번째이미지) 왼쪽, 높이 설정
left = Cm(0.1)
top = Cm(1)
height = Cm(8)
# 폴더내 이미지 도형 추가
for inde, file1 in enumerate(natsort.natsorted(glob.glob(r"C:\Users\Pictures\Screenshots\*png"))):
print(inde, file1) # 이미지파일 경로를 출력한다.
pic = slide.shapes.add_picture(file1, left + (Cm(10)*(inde%4)), top + (Cm(8)*(inde//4)), height=height) # 경로입력, 위치 입력, 높이 입력
# 이미지간 좌우간격은 10cm, 높이 간격은 8cm 로 설정한다. 이미지 높이는 8cm고정.
# 프레젠테이션 파일 저장
prs.save(r"C:\Users\Pictures\Screenshots\d1.pptx")
|
cs |
2. 코드 다르게 작성하기
1) 이미지 파일명을 숫자로 해놓고, 숫자 순서대로 이미지를 정리하자.
2) 예를 들면 1,2,3,5 이미지가 있으면 첫줄에는 1,2,3 이미지가 정리되고, 두번째줄에는 5번 이미지가 정리된다.
3) 바뀐 부분은 39번째출의 for문만 수정했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
from pptx import Presentation
from pptx.util import Cm, Pt
from pptx.util import Inches
import glob
import natsort
import os
# 프레젠테이션
prs = Presentation()
# 슬라이드 빈화면
layout = prs.slide_layouts[6]
# 슬라이드
prs.slide_width = Inches(16)
prs.slide_height = Inches(9)
slide = prs.slides.add_slide(layout)
# 제목의 왼쪽, 높이 설정
left = Cm(1)
top = Cm(1)
height = Cm(1)
width = Inches(15)
# 텍스트 만들기
txBox = slide.shapes.add_textbox(left, top, width, height)
tf = txBox.text_frame
p = tf.add_paragraph()
p.text = "image pptx save"
p.font.bold = True
p.font.size = Pt(30)
# 시작 이미지 (첫번째이미지) 왼쪽, 높이 설정
left = Cm(0.1)
top = Cm(1)
height = Cm(8)
# 폴더내 이미지 도형 추가
for inde11, file1 in enumerate(natsort.natsorted(glob.glob(r"C:\Users\Pictures\Screenshots\*png"))):
# print(inde, file1) # 이미지파일 경로를 출력한다.
inde = int(os.path.splitext(os.path.basename(file1))[0]) - 1
pic = slide.shapes.add_picture(file1, left + (Cm(10)*(inde%4)), top + (Cm(8)*(inde//4)), height=height) # 경로입력, 위치 입력, 높이 입력
# 이미지간 좌우간격은 10cm, 높이 간격은 8cm 로 설정한다. 이미지 높이는 8cm고정.
# 프레젠테이션 파일 저장
prs.save(r"C:\Users\Pictures\Screenshots\d1.pptx")
|
cs |
300x250
'파이썬 > 파이썬일반' 카테고리의 다른 글
python(vscode)/데이터 추출하기/마지막줄데이터 추출/간격별 데이터 추출 (0) | 2024.01.22 |
---|---|
python/파일명 추출, 디렉토리 등 참고 자료 (0) | 2023.11.12 |
python(vscode)/엑셀만들기/엑셀에 입력하기/딕셔너리 엑셀에 추가하기 (1) | 2023.10.09 |
python(vscode)/dataframe min max 구하기/원하는 범위만 계산하기 (1) | 2023.10.09 |
python(vscode)/dask와 pandas 대용량 csv 파일 읽어오기/시간비교 (0) | 2023.08.08 |