여러 개 워드(Word, docx)파일 한 번에 쉽게 PDF로 변환하기(프로그램 무료배포)
본문 바로가기
파이썬(Python)/파이썬 개발

여러 개 워드(Word, docx)파일 한 번에 쉽게 PDF로 변환하기(프로그램 무료배포)

by Squat Lee 2022. 6. 3.


지난번에 PDF를 워드(Word, docx)로 변환하는 프로그램을 만들어 보았습니다.(아래 링크 참고하세요)
2022.05.30 - [취미로 하는 파이썬/회사에서 몰래 파이썬] - 파이썬으로 PDF를 Word로 변환하기(PDF to Word, docx), 실행파일 무료 다운로드

 

파이썬으로 PDF를 Word로 변환하기(PDF to Word, docx), 실행파일 무료 다운로드

회사에서 업무를 하다보면 PDF 문서를 Word로 변경해야 할 때가 있습니다. 구글에서 검색해서 아래 사이트와 같이 무료로 변환해 주는 사이트를 이용하는 방법도 있습니다. 하지만, 사용 횟수에

dotsnlines.tistory.com


한 번에 하나씩만 변환하다 보니 여러개를 동시에 변환하기에는 상당히 번거롭다는 생각이 들었습니다.

그래서 이번 포스트는 한번에 여러개의 PDF를 Word로 변환하는 코드를 기록해 보도록 하겠습니다.

코딩을 못 하셔도 상관 없습니다. 맨 밑에 실행파일을 공유드리니 다운받아서 사용 하시면 됩니다.

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
import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic
from pdf2docx import Converter
 
ui = 'PDFStoWORDS.ui'
 
class Dialog(QDialog):
 
    def __init__(self):
        QDialog.__init__(selfNone)
        uic.loadUi(ui, self)
 
        self.btn_filechoose.clicked.connect(self.filebtn_click)
 
    def filebtn_click(self):
        self.textEdit.clear() # 기존에 입력된 데이터 지우기
 
        file_names = QFileDialog.getOpenFileNames(self)
        print(file_names)
 
        for num, file in enumerate(file_names[0]):
            exist = self.textEdit.toPlainText() # textEdit에 이미 표시되어 있는 List 가져오기
            self.textEdit.setText(exist + file + '\n')
 
            changed_file = file.replace('.pdf''.docx'# PDF로 변환해서 저장할 경로
            print(changed_file)
 
            cv = Converter(file# PDF로 변환할 워드파일을 'cv'변수에 저장
            cv.convert(changed_file) #PDF로 변환 후 저장
            cv.close() #변환한 PDF 닫기
 
        self.lbl_endmsg.setText('선택하신' + str(num + 1+'개 파일의 Word 변환이 완료되었습니다.')
 
if __name__=='__main__':
    app = QApplication(sys.argv)
    Dialog = Dialog()
    Dialog.show()
    app.exec_()
cs

전체 코드는 위와 같습니다.

코드 설명을 먼저하고, 마지막에 전체 코드를 보여드리니 혹시나 헷갈리시는 분들이 계실 수도 있겠다는 생각이 드네요.

위의 전체 코드가 이해 되시면 그대로 쓰시고, 이해가 안 되시면 아래 설명을 읽어 보시기 바랍니다.



지난 포스트에서도 설명 했듯이 PDF를 변환하는 코드는 간단 합니다.

from pdf2docx import Converter

cv = Converter(file# PDF로 변환할 워드파일을 'cv'변수에 저장
cv.convert(changed_file) #PDF로 변환 후 저장
cv.close() #변환한 PDF 닫기

이게 다 입니다. 'pdf2docx' 라이브러리를 import 해서 단 3줄만 적어주면 됩니다.

여기에서 'file'은 PDF로 변환할 Word(docx) 파일의 (경로를 포함한) 파일명이고, Changed_file은 PDF로 변환 후 저장할 경로 입니다.(~~.pdf 파일이 되겠죠?)


UI를 가미해서 좀 더 사용하기 쉽게 만들기 위해 코드가 좀 길어 졌습니다.

UI를 사용하기 위해 PyQt5 라이브러리를 사용했습니다. 초보 입장에서 이걸 사용하면 상당히 어렵다고 느끼는데(저도 그렇게 느꼈습니다.), 저는 공식처럼 사용합니다.

PyQt5를 사용하기 위해 'Class' 개념부터 이해하려고 했는데, 그럴 필요가 없을 것 같습니다.

왜냐하면 항상 똑같은 구조만 사용하기 되기 때문에 복붙을 하면 쉽고 간단하게 됩니다.

import sys
from PyQt5.QtWidgets import *
from PyQt5 import uic

 

ui = 'PDFStoWORDS.ui' #로드할 UI
 
class Dialog(QDialog):
 
    def __init__(self):
        QDialog.__init__(selfNone)
        uic.loadUi(ui, self)
 
        self.btn_filechoose.clicked.connect(self.filebtn_click) #클릭 했을때 실행할 함수
 
    def filebtn_click(self):
       실행하고자 하는 코드
 
if __name__=='__main__':
    app = QApplication(sys.argv)
    Dialog = Dialog()
    Dialog.show()
    app.exec_()


여기에다 미리 만들어 놓은 코드를 붙여 넣으면 됩니다. 상당히 간단하죠?


여러 파일을 불러오기 위해 아래코드를 사용했습니다.
file_names = QFileDialog.getOpenFileNames(self)

UI에서 불러온 파일명(경로)를 표시하기 위해 textEdit을 사용했습니다. textEdit은 줄 바꿈이 가능하기 때문입니다.

여러 파일을 가져오다 보니 for 문을 써서 가져온 듀플형태의 데이터 List를 하나씩 빼서 사용할 필요가 있습니다.

아래와 같이 파일을 하나씩 빼서 기존에 textEdit에 표시한 파일명과 새로운 파일명을 순차적으로 보여주는 코드를 만들었습니다.

for num, file in enumerate(file_names[0]):
            exist = self.textEdit.toPlainText() # textEdit에 이미 표시되어 있는 List 가져오기
            self.textEdit.setText(exist + file + '\n')


다른 코드는 보기에 어려움이 없을 것 같아서 설명은 생략 합니다.

실행 파일은 아래 링크를 클릭 하셔서 다운로드 받으시면 됩니다.

PDF 여러개를 워드파일로 변환하는 파일 다운로드



제가 만든 프로그램이라 시작하는데 다소 느린감이 있습니다.(저도 해결 방법을 못 찾겠네요...)

하지만, Word 변환은 비교적 빠르고, 변환하는 동안 딴 일을 하실 수도 있으니 유용하리라 봅니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


728x90
반응형

댓글