40 줄 Python 코드 만으로 pdf 워드 변환 도 구 를 쓸 수 있 습 니 다.

6368 단어 pythonpdf공구.
도시
위 는 pdf 캡 처 내용 이 고,아래 는 전 환 된 워드 캡 처 내용 입 니 다.
Image
이제 우리 자신의 동작 으로 이 도 구 를 써 보 자!
전기 준비
우 리 는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
pdf 워드 를 돌 리 는 것 은 오랫동안 존재 해 온 화제 라 고 생각 합 니 다.지금 은 시장 에서 많은 도 구 를 사용 할 수 있 지만 완전히 무료 로 찾 아야 할 수도 있 습 니 다.
우 리 는 python 이 pdf 문 서 를 처리 하 는 제3자 라 이브 러 리 와 워드 를 처리 하 는 제3자 라 이브 러 리 가 많다 는 것 을 알 고 있 기 때문에 누군가가 이 두 가지 라 이브 러 리 의 기능 을 통합 시 켜 오늘 의 주인공pdf2docx이 생 겼 다.
기본 사고방식:
  • PyMuPDF을 이용 하여 페이지 요 소 를 가 져 옵 니 다.예 를 들 어 텍스트 와 모양 과 위치
  • 원소 간 의 상대 적 위치 관 계 를 재 활용 하여 내용 추정
  • 마지막 으로python-docx지난 단계 에 해 석 된 내용 요 소 를 docx 형식의 Word 문서 로 재 구성 합 니 다
  • .
    상기 상황 을 바탕 으로 우리 이 도 구 는 조작 을 할 때 다음 과 같은 부족 함 이 존재 할 것 이다.
  • PDF 스 캔 부품 을 식별 하고 재 구축 할 수 없습니다
  • 유한 하고 확 정 된 규칙 에 따라 PDF 와 docx 요소 간 의 매 핑 은 완전히 신뢰 할 수 있 는 것 이 아니다.즉,100%복원 이 아니 라 흔히 볼 수 있 는 규범 적 인 형식 만 처리 할 수 있다
  • .
    물론 이상 의 이런 것들 은 우리 가 상관 하지 않 고 정부 에서 준 코드 를 직접 참고 하면 된다.
    
    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()
    
    그 중에서startend매개 변 수 는 pdf 문서 의 페이지 범 위 를 지정 합 니 다(기본 값 은 0 부터 마지막 페이지 까지).pages를 통 해 불 연속 페이지 를 지정 할 수도 있다.예 를 들 어pages=[1,3,5].
    GUI 디자인
    pdf 워드 전환 기능 에 대해 우리 가 필요 한 것 은 전환 할 파일 을 선택 하고 전환 을 시작 하면 됩 니 다.또한 작업 흐름 을 기록 하면 진도 가 완벽 하 다 는 것 을 알 수 있 습 니 다.그래서 기능 은 간단 합 니 다.우 리 는 상기 기능 을 바탕 으로 간단 한 GUI 를 다음 과 같이 디자인 합 니 다.
    Image
    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()창 을 만 드 는 것 으로 창 이름 등 정 보 를 가 져 올 수 있 습 니 다
  • eventvalueswindow.read()함 수 를 실행 할 때의 반환 값 입 니 다.그 중에서event은 이벤트 입 니 다.예 를 들 어 단 추 를 누 르 거나 파일 을 선택 하 는 등 입 니 다.values는 입력 을 포함 하 는 값 입 니 다.예 를 들 어 우리 가 파일 을 선택 한 후의 파일 이름 정보 값 입 니 다.
    이전 pdf 워드 함수 와 결합 하여 논 리 는 다음 과 같 습 니 다.
    전환 시작 단 추 를 누 르 면 pdf 파일 을 선 택 했 는 지 여 부 를 판단 합 니 다.만약 에 전환 함 수 를 실행 하지 않 으 면 파일 이 선택 하지 않 았 거나 선택 하지 않 은 비 pdf 파일 을 알려 줍 니 다.
    포장 코드
    pyinstaller 를 사용 하여 프로그램 코드 를 포장 합 니 다.작업 명령 은 다음 과 같 습 니 다.
    
    pyinstaller -F -w pdf word   .py
    부분 매개 변수 의미:
    -F    실행 가능 한 파일 생 성 
    -w   이 는 GUI 인터페이스 에서 콘 솔 창 을 제거 하 는 데 유용 하 다 는 뜻 입 니 다. 
    -p    불 러 올 클래스 경 로 를 사용자 정의 합 니 다.일반적으로 사용 할 수 없습니다. 
    -i     실행 가능 한 파일 을 표시 하 는 아이콘
    사실 최신 버 전의 워드(office 2019)는 비 스캐닝 pdf 에 대한 읽 기와 전환 을 자 연 스 럽 게 지원 합 니 다.다음 절 차 를 통 해 처리 하 시 면 됩 니 다. ―> ―> pdf Image
    office-word 자체 전환 기능
    40 줄 Python 코드 만으로 pdf 워드 변환 도 구 를 쓸 수 있 는 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 pdf 워드 변환 도구 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기