이미지를 삽입하고싶은데 계속 에러가 발생합니다.

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
import win32com.client as win32
import os

# Google Drive 인증 설정
gauth = GoogleAuth()
gauth.LocalWebserverAuth()  # OAuth 인증 수행
drive = GoogleDrive(gauth)

# 다운로드 경로 설정
download_path = "xx"  # 이미지가 저장될 로컬 경로

# Google Drive에서 '활동사진 첨부' 폴더 및 그 하위 폴더 내 이미지 다운로드
def download_images_from_subfolders():
    # '활동사진 첨부' 폴더 가져오기
    main_folder_id = "xx"  # '활동사진 첨부' 폴더의 ID 입력
    main_folder = drive.CreateFile({'id': main_folder_id})

    # 하위 폴더들 ('photopair 222', 'photopair 223' 등) 가져오기
    subfolders = drive.ListFile({'q': f"'{main_folder['id']}' in parents and mimeType = 'application/vnd.google-apps.folder'"}).GetList()

    # 하위 폴더들을 이름순으로 정렬
    sorted_subfolders = sorted(subfolders, key=lambda x: x['title'])  # 이름순 오름차순 정렬

    # 하위 폴더 처리
    for subfolder in sorted_subfolders:
        print(f"Processing folder: {subfolder['title']}")

        # 하위 폴더의 이미지 파일 목록 가져오기 (PNG 이미지로 필터링)
        image_files = drive.ListFile({'q': f"'{subfolder['id']}' in parents and mimeType contains 'image/png'"}).GetList()
        
        image_paths = []
        if len(image_files) >= 2:  # 두 장 이상의 이미지가 있는지 확인
            for i, file in enumerate(image_files[:2]):  # 최대 2개의 이미지만 다운로드
                file_path = os.path.join(download_path, f"{subfolder['title']}_image_{i+1}.png")
                file.GetContentFile(file_path)
                image_paths.append(file_path)
            
            return image_paths  # 첫 번째 폴더의 이미지 두 개를 리턴
        else:
            print(f"폴더 {subfolder['title']} 내에 이미지가 두 장 미만입니다.")
            continue

    print("이미지 2장이 발견되지 않았습니다.")
    return None  # 이미지가 두 장 이상인 폴더가 없으면 None 반환

# 한글 파일 열기 및 이미지 삽입
def insert_images_into_hwp(image_paths):
    hwp = win32.gencache.EnsureDispatch("HWPFrame.HwpObject")
    hwp.Open(r"C:\\Users\\wikky\\Downloads\\SWeat 튜터링 보고서 4명.hwp")  # 한글 파일 경로

    # 첫 번째 이미지 삽입
    hwp.HAction.GetDefault("InsertImageFromFile", hwp.HParameterSet.HInsertImageFromFile.HSet)
    hwp.HParameterSet.HInsertImageFromFile.FileName = image_paths[0]  # 첫 번째 이미지 경로
    hwp.Run("InsertImageFromFile")

    # 두 번째 이미지 삽입
    hwp.HAction.GetDefault("InsertImageFromFile", hwp.HParameterSet.HInsertImageFromFile.HSet)
    hwp.HParameterSet.HInsertImageFromFile.FileName = image_paths[1]  # 두 번째 이미지 경로
    hwp.Run("InsertImageFromFile")

    # 저장
    hwp.SaveAs(r"C:\\Users\\wikky\\Downloads\\modified_report.hwp")  # 수정된 파일 저장 경로
    hwp.Quit()

# 실행
image_paths = download_images_from_subfolders()
if image_paths:  # 이미지 경로가 반환되면 삽입 함수 실행
    insert_images_into_hwp(image_paths)

구글 폼을 통해서 이미지를 받고, 그 이미지가 저장된 구글 드라이브 파일에서 로컬로 이미지를 설치한 다음에, 한글파일에 필드 “사진1”, "사진2"에 업로드를 하는 자동화 코드를 작성하고 있는데,

line 54, in insert_images_into_hwp
    hwp.HAction.GetDefault("InsertImageFromFile", hwp.HParameterSet.HInsertImageFromFile.HSet)
                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

드라이브에서 사진 설치까지는 잘 되는데 사진 삽입이 안되면서 이러한 오류메시지가 발생합니다… 어느부분이 잘못된 것인지 가르쳐주시면 감사할것같습니다.

1개의 좋아요

안녕하세요 ^^
한글 오토메이션에 "InsertImageFromFile"이라는 액션은 존재하지 않습니다.
존재하지 않는 액션을 사용하려고해서 오류가 발생하는것입니다.
이미지를 넣고싶으시다면 오토메이션 API 중 InsertPicture API를 이용하시면 될것 같습니다.
API에 대한 자세한 가이드문서는 개발 가이드 | 한컴디벨로퍼 에서 확인 가능하십니다.
감사합니다 ^^

1개의 좋아요