무료 PDF 병합 프로그램 다운로드
본문 바로가기
파이썬(Python)/파이썬 개발

무료 PDF 병합 프로그램 다운로드

by Squat Lee 2024. 1. 25.

 

실행파일을 다운로드 받으시려면 아래 링크를 클릭하세요.

 

비번은 댓글로 문의하시면 비밀댓글로 알려드리겠습니다.

 

무료 PDF 병합 프로그램 다운로드


사용법은 아래를 참고하시고, 파이썬으로 만든 프로그램이라 코드도 설명했으니 참고하세요.

 

프로그램을 실행하면 위와 같은 GUI 창이 나옵니다.

 

'파일선택' 버튼을 누르면 '열기' 창이 나옵니다.

 

여기에서 병합할 PDF를 선택하시면 됩니다.

 

병합이 완료되면 메세지 박스가 뜨고, 병합된 파일을 TextEdit에서  표시합니다.

 

 

이렇게 합쳐진 파일이 최초에 합칠 파일과 같은 경로에 생성됩니다.

 


 

 

전체 코드는 아래와 같습니다.

from pypdf import PdfWriter
import sys
from PyQt5.QtWidgets import *
import os

class pdf_merger(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle('PDF 파일합치기')
        self.setGeometry(800, 200, 400, 300)

        self.btn = QPushButton('파일선택')
        self.btn.clicked.connect(self.pdf_merge)

        self.te = QTextEdit()

        grid = QGridLayout()

        grid.addWidget(QLabel('합칠 PDF를 선택하세요 : '), 0, 0)
        grid.addWidget(self.btn, 0, 1)
        grid.addWidget(self.te, 1, 0, 1, 2)

        self.setLayout(grid)

    def pdf_merge(self):
        try:
            files_path = QFileDialog.getOpenFileNames(self) #파일불러오기
            files = files_path[0]
            merger = PdfWriter()

            for pdf in files:
                merger.append(pdf)
                exist = self.te.toPlainText()
                self.te.setText(exist + pdf.split('/')[-1] + ' 병합 완료' + '\n')

            merge_path = os.path.join(*files[0].split('/')[:-1], 'merged_PDF.pdf')
            merger.write(merge_path)
            merger.close()

            QMessageBox.about(self, 'PDF병합 완료', '모든 PDF를 병합해서 "merged_pdf.pdf로 만들었습니다.')
        except:
            pass

if __name__=='__main__':
    app = QApplication(sys.argv)
    win = pdf_merger()
    win.show()
    app.exec_()

 

주요 코드는 이전 포스트와 동일하며, GUI 부분만 추가했습니다.

 

files_path = QFileDialog.getOpenFileNames(self) #파일불러오기
            files = files_path[0]

합칠 파일을 찾기위해 QFileDialog 클래스를 사용해서 files_path 변수에 넣었습니다.

 

반환되는 파일명이 튜플 형태로 나오기 때문에 첫번째 List로 구성된 파일명을 가져왔습니다.

 

 for pdf in files:
                merger.append(pdf)
                exist = self.te.toPlainText()
                self.te.setText(exist + pdf.split('/')[-1] + ' 병합 완료' + '\n')

TextEdit을 사용해서 병합된 PDF를 하나씩 표시하도록 했습니다.

 

toPlainText()는 기존에 TextEdit 창에 입력된 값을 불러오는 함수입니다.

 

QMessageBox.about(self, 'PDF병합 완료', '모든 PDF를 병합해서 "merged_pdf.pdf로 만들었습니다.')

마지막에 메세지 박스를 띄어서 완료됨을 알려주도록 했습니다. 

728x90
반응형

댓글