안녕하세요
오늘은 Chat GPT를 사용해서 간단하게 명함을 만드는 프로그램을
만들어 달라고 한 후에 잘 실행이 되는가 확인을 해보도록 하겠습니다
아래 있는 코드를 만들어 주었습니다.
우선 실행을 하기 앞써
CMD창에서
pip install pandas Pillow
위 내용과 같은 것을 입력을 해준 후 설치를 진행을 해줍니다.
자세히 보니 어떻한 함수 인지 친절하게 만들어 주었군요 그럼 같이 보시죠
별 표시에 있는 부연 설명을 지우셔야 합니다.
import pandas as pd
from PIL import Image, ImageDraw, ImageFont
# 엑셀 파일에서 명함 정보를 읽어오는 함수
def read_from_excel(filename="business_cards.xlsx"):
df = pd.read_excel(filename)
cards = df.to_dict(orient='records')
return cards
*만들어 놓은 절대경로(파이썬이 있는 폴더 안에) business_cards.xlsx란 파일이 필요하겠습니다.
이것이 없으면 notfound에러가 나옵니다.
*파일을 만드시고 그 안에 내용을 입력을 해주셔야 하는데 그 내용을 밑에서 보시죠~~!
# 명함 정보를 엑셀로 저장하는 함수
def save_to_excel(cards, filename="business_cards.xlsx"):
df = pd.DataFrame(cards)
df.to_excel(filename, index=False)
print(f"명함 정보가 '{filename}' 파일로 저장되었습니다.")
*여기는 엑셀 안에 있는 데이터를 저장해주는 내용입니다.
# 명함을 이미지로 생성하는 함수
def create_business_card_image(info, logo_path=None):
card_width, card_height = 600, 350
background_color = (255, 255, 255)
font_color = (0, 0, 0)
image = Image.new('RGB', (card_width, card_height), background_color)
draw = ImageDraw.Draw(image)
# 윈도우 기본 폰트 경로 설정
font_path = "C:/Windows/Fonts/arial.ttf"
font = ImageFont.truetype(font_path, 24)
small_font = ImageFont.truetype(font_path, 18)
draw.text((20, 50), f"Name: {info['Name']}", font=font, fill=font_color)
draw.text((20, 100), f"Title: {info['Title']}", font=small_font, fill=font_color)
draw.text((20, 150), f"Company: {info['Company']}", font=small_font, fill=font_color)
draw.text((20, 200), f"Email: {info['Email']}", font=small_font, fill=font_color)
draw.text((20, 250), f"Phone: {info['Phone']}", font=small_font, fill=font_color)
*위 def save_to_excel(cards, filename="business_cards.xlsx"): 에서 엑셀을 저장을 할 때 넣어야 하는 형식이 있는데
바로 위 내용에 NAME으로 만들어야 한다는 겁니다.
# 로고 추가
if logo_path:
logo = Image.open(logo_path).convert("RGBA") # 로고 이미지를 RGBA 형식으로 변환
logo = logo.resize((100, 100)) # 로고 크기 조절
image.paste(logo, (450, 20), logo) # 투명도 유지하며 이미지에 로고 추가
filename = f"{info['Name'].replace(' ', '_')}_business_card.png"
image.save(filename)
print(f"명함 이미지가 '{filename}' 파일로 저장되었습니다.")
*로고 이미지도 적당한 것을 골라서 파이썬에 있는 위치에 넣어주시면 되는데
이름을 logo.png로 하셔도 되고 이름을 바꾸셔도 되는데 바꾼이름과 똑같이 기입을 해주셔야합니다.
# 엑셀 파일에서 명함 정보를 읽어옴
cards = read_from_excel("business_cards.xlsx")
# 명함 정보를 엑셀로 저장 (필요 시 사용)
# save_to_excel(cards)
# 예시 명함 하나를 이미지로 생성
if cards:
for card in cards:
create_business_card_image(card, logo_path="logo.png") # 로고 파일 경로 지정
else:
print("엑셀 파일에 명함 정보가 없습니다.")
위 내용에 오류가 없으면 정상적으로 실행이 되는데~~!
실행을 하면 위 사진과 같이 실행이 됩니다.~~!
https://github.com/poptaek/python-code
위 소스 코드는 github에 올려 있으니 필요하시면 다운받아서 사용하시길 바랍니다.
'코딩' 카테고리의 다른 글
블로그에 배너 넣기~~! 게임회사도 사용 한다는 그것~~! (11) | 2021.02.16 |
---|---|
java, swing 장바구니 영수증 만들기 소스 (0) | 2020.12.28 |
데이터의 바다를 모르면 데이터베이스 원피스를 찾지마라 ~! (1) | 2020.12.11 |