40 줄 Python 코드 만으로 pdf 워드 변환 도 구 를 쓸 수 있 습 니 다.
위 는 pdf 캡 처 내용 이 고,아래 는 전 환 된 워드 캡 처 내용 입 니 다.
이제 우리 자신의 동작 으로 이 도 구 를 써 보 자!
전기 준비
우 리 는
python
도 구 를 작성 하고 최종 적 으로exe
파일 로 포장 하여 사용 해 야 하기 때 문 입 니 다.패키지 크기 를 낮 추기 위해 서 는 먼저
예비 용 을 만들어 야 합 니 다.또한 pdf 는 워드 에 기 존의 제3자 라 이브 러 리
pdf2docx
가 있 고 gui 에 대해 우리 가 사용 하 는 것 은pysimplegui
이 며,exe 로 포장 하여 사용 하 는 것 은pyinstaller
입 니 다.가상 환경 을 만 든 후에 우 리 는 이 필요 한 제3자 라 이브 러 리 도 일일이 설치 합 시다.
#
conda create -n env_pdf python=3.8.8
#
conda activate env_pdf
#
pip install pdf2docx
pip install pysimplegui
pip install pyinstaller
이 세 개의 라 이브 러 리 에 대해 여러분 은 공식 문 서 를 조회 하여 더 많은 것 을 알 수 있 습 니 다.pdf2word : https://dothinking.github.io/pdf2docx/index.html
pysimplegui: https://pysimplegui.readthedocs.io/en/latest/
pyinstaller: http://www.pyinstaller.org/
전기 준비 도구 가 다 되 었 고 우 리 는 도구 작성 단계 에 들 어가 기 시작 했다.
pdf 워드 를 돌 리 는 것 은 오랫동안 존재 해 온 화제 라 고 생각 합 니 다.지금 은 시장 에서 많은 도 구 를 사용 할 수 있 지만 완전히 무료 로 찾 아야 할 수도 있 습 니 다.
우 리 는 python 이 pdf 문 서 를 처리 하 는 제3자 라 이브 러 리 와 워드 를 처리 하 는 제3자 라 이브 러 리 가 많다 는 것 을 알 고 있 기 때문에 누군가가 이 두 가지 라 이브 러 리 의 기능 을 통합 시 켜 오늘 의 주인공
pdf2docx
이 생 겼 다.기본 사고방식:
PyMuPDF
을 이용 하여 페이지 요 소 를 가 져 옵 니 다.예 를 들 어 텍스트 와 모양 과 위치python-docx
지난 단계 에 해 석 된 내용 요 소 를 docx 형식의 Word 문서 로 재 구성 합 니 다상기 상황 을 바탕 으로 우리 이 도 구 는 조작 을 할 때 다음 과 같은 부족 함 이 존재 할 것 이다.
물론 이상 의 이런 것들 은 우리 가 상관 하지 않 고 정부 에서 준 코드 를 직접 참고 하면 된다.
from pdf2docx import Converter
import re
#
def pdf_to_word(fileName):
pdf_file = fileName
# , word
name = re.findall(r'(.*?)\.',pdf_file)[0]
docx_file = f'{name}.docx'
cv = Converter(pdf_file)
cv.convert(docx_file, start=0, end=None)
cv.close()
그 중에서start
와end
매개 변 수 는 pdf 문서 의 페이지 범 위 를 지정 합 니 다(기본 값 은 0 부터 마지막 페이지 까지).pages
를 통 해 불 연속 페이지 를 지정 할 수도 있다.예 를 들 어pages=[1,3,5]
.GUI 디자인
pdf 워드 전환 기능 에 대해 우리 가 필요 한 것 은 전환 할 파일 을 선택 하고 전환 을 시작 하면 됩 니 다.또한 작업 흐름 을 기록 하면 진도 가 완벽 하 다 는 것 을 알 수 있 습 니 다.그래서 기능 은 간단 합 니 다.우 리 는 상기 기능 을 바탕 으로 간단 한 GUI 를 다음 과 같이 디자인 합 니 다.
ue 설계 원고
우리 가 이번에 사용 한 것 은
pysimplegui
이 매우 간단 하고 사용 하기 좋 은 도구 창고 이기 때문에 상기 기능 을 만족 시 키 기 위해 인 코딩 은 다음 과 같다.
import PySimpleGUI as sg
import re
#
sg.theme('DarkTeal7')
#
layout = [
[sg.Text(' :',font=(" ", 12)),sg.Text('',key='filename',size=(50,1),font=(" ", 10),text_color='blue')],
[sg.Text(' ',justification='center')],
[sg.Output(size=(80, 20),font=(" ", 10))],
[sg.FileBrowse(' ',key='file',target='filename'),sg.Button(' '),sg.Button(' ')]
]
#
window = sg.Window('pdf word , @ : ', layout,font=(" ", 15),default_element_size=(50,1))
#
while True:
event, values = window.read()
if event in (None, ' '):
break
if event == ' ':
if values['file'] and re.findall(r'\.(\S+)',values['file'])[0]=='pdf':
fileName = values['file']
pdf_to_word(fileName)
print('
---------- ----------
')
else:
print(' pdf
')
window.close()
PyQt5
보다 훨씬 간단 할 수 밖 에 없다.sg.theme('DarkTeal7')
gui 를 설정 하 는 테마 입 니 다.pysimplegui 는 많은 테 마 를 제공 하 므 로 자 유 롭 게 선택 할 수 있 습 니 다.layout
구 조 를 설정 하 는 것 입 니 다.구체 적 으로 저 희 는 UE 원고 의 수요 에 따라 위 에서 아래로 순서대로 설정 합 니 다.sg.Text()
텍스트 내용 과 형식 설정sg.Output()
print 출력 을 설정 한 곳sg.FileBrowse()
설정 파일 선택 브 라 우 저,key
지정 건 이름,target
선택 한 폴 더 이름sg.Button()
설정 버튼sg.Window()
창 을 만 드 는 것 으로 창 이름 등 정 보 를 가 져 올 수 있 습 니 다event
와values
는window.read()
함 수 를 실행 할 때의 반환 값 입 니 다.그 중에서event
은 이벤트 입 니 다.예 를 들 어 단 추 를 누 르 거나 파일 을 선택 하 는 등 입 니 다.values
는 입력 을 포함 하 는 값 입 니 다.예 를 들 어 우리 가 파일 을 선택 한 후의 파일 이름 정보 값 입 니 다.이전 pdf 워드 함수 와 결합 하여 논 리 는 다음 과 같 습 니 다.
전환 시작 단 추 를 누 르 면 pdf 파일 을 선 택 했 는 지 여 부 를 판단 합 니 다.만약 에 전환 함 수 를 실행 하지 않 으 면 파일 이 선택 하지 않 았 거나 선택 하지 않 은 비 pdf 파일 을 알려 줍 니 다.
포장 코드
pyinstaller 를 사용 하여 프로그램 코드 를 포장 합 니 다.작업 명령 은 다음 과 같 습 니 다.
pyinstaller -F -w pdf word .py
부분 매개 변수 의미:-F 실행 가능 한 파일 생 성
-w 이 는 GUI 인터페이스 에서 콘 솔 창 을 제거 하 는 데 유용 하 다 는 뜻 입 니 다.
-p 불 러 올 클래스 경 로 를 사용자 정의 합 니 다.일반적으로 사용 할 수 없습니다.
-i 실행 가능 한 파일 을 표시 하 는 아이콘
사실 최신 버 전의 워드(office 2019)는 비 스캐닝 pdf 에 대한 읽 기와 전환 을 자 연 스 럽 게 지원 합 니 다.다음 절 차 를 통 해 처리 하 시 면 됩 니 다.
―> ―> pdf
office-word 자체 전환 기능
40 줄 Python 코드 만으로 pdf 워드 변환 도 구 를 쓸 수 있 는 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 pdf 워드 변환 도구 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.