[업무 자동화]/파이썬

[파이썬] 명함 만들기 자동화

시간 확보러 2024. 9. 15. 08:00
728x90

명함과 같이 양식은 동일한데 성함, 전화번호 등만 변경하는 업무가 있을 수 있다.

10개 미만이면 그냥 하는 것이 빠를 텐데, 수천개로 늘어나는 순간 일일이 하기가 어렵다.

 

이번 실습에서 했던 명함만들기 자동화는 업무 하는데 큰 도움이 될 것으로 보인다.

(책에서 언급하는대로 진행하면 오류없이 끝까지 할 수있다.)

 

 

※작성 코드

!pip install xlrd

 

import pandas as pd
df=pd.read_excel('명함제작용data.xls')
df.head()

 

width=int(90*96/25.4)
height=int(50*96/25.4)
print(width,height)

 

from PIL import Image
img_basic = Image.open("명함기본샘플(90mm-50mm).jpg")
img_basic.show()

 

from PIL import Image
img_basic=Image.open("명함기본샘플(90mm-50mm).jpg")
img_logo=Image.open("Logo.jpg")
img_resize=img_logo.resize((140,140))
img_basic.paste(im=img_resize,box=(5,24))
img_basic.save("명함기본샘플(90mm-50mm)_logo.jpg")
img_basic

 

for df_unit in df.loc[0]:
    print(df_unit)

df_unit=df.loc[0]
row1=df_unit[0]
row2=df_unit[1]
row3=df_unit[2] + "" + df_unit[3]
row4=df_unit[4]
row5="H.P:"+df_unit[5]+"/Tel:"+df_unit[6]+"/Fax:"+df_unit[7]
row6="Email:"+df_unit[8]
row7=df_unit[8]

 

from PIL import Image
img = img_basic.copy()

 

from PIL import ImageFont
fontsize = 30
fnt = ImageFont.truetype("SCDream3.otf", fontsize, encoding="UTF-8")

 

from PIL import ImageDraw
draw = ImageDraw.Draw(img)
text="샘플 글자"
draw.text((180,50), text, font=fnt, fill="black")

 

a = 0
img=img_basic.copy()
fnt=ImageFont.truetype("SCDream3.otf", 10, encoding="UTF-8")
draw=ImageDraw.Draw(img)
text_list=[
    row1, row2, row3, row4, row5, row6, row7
]
text_list

 

for unit in text_list:
    a=a+25
    draw.text((150,a), unit, font=fnt, fill="black")
img

 

img.save('명함_TEST.jpg')

 

for a in range(len(df)):
    df_unit=df.loc[a]

    fnt1=ImageFont.truetype("SCDream3.otf", 20, encoding="UTF-8")
    row1=df_unit[0]
    fnt2=ImageFont.truetype("SCDream3.otf", 10, encoding="UTF-8")
    row2=df_unit[1]
    fnt3=ImageFont.truetype("SCDream3.otf", 15, encoding="UTF-8")
    row3=df_unit[2]+""+df_unit[3]
    fnt4567=ImageFont.truetype("SCDream3.otf", 10, encoding="UTF-8")
    row4=df_unit[4]
    row5="H.P:"+df_unit[5]+"/Tel:"+df_unit[6]
    row6="Email:"+df_unit[8]
    row7=df_unit[9]
    text_list=[[row1, fnt1], [row2,fnt2], [row3, fnt3], [row4, fnt4567], [row5, fnt4567], [row6, fnt4567], [row7, fnt4567]]

    a=0
    img=img_basic.copy()
    draw=ImageDraw.Draw(img)
    for unit in text_list:
        a=a+25
        draw.text((150,a), unit[0],font=unit[1],fill="black")
    img.save(f"명함/{row3}.jpg")
    img.close()

728x90