서클장이 대본을 음성에 같이 넣어주면 나같은 일알못들한텐 아주 좋아서 고마움.


그런데 가끔 위처럼 세로쓰기에 pdf로 넣어주는 경우가 있음. 이러면 긁어서 번역기 돌리기 불편함.


그래서 내가 파이썬 코드를 간단하게 만든 게 있는데 도움이 되었으면 해서 올려봄


파이썬 버전은 상관 없을꺼고 PyMuPDF 라는 모듈이 필요하고 아래 명령어로 설치가능함. 자세한건 검색하면 나오니까 생략.


pip install PyMuPDF


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
import fitz
 
 
pdf_path = "./script.pdf"
doc = fitz.open(pdf_path)
 
pages = []
 
script = open('script.txt', 'w', encoding='utf-8')
 
for page in doc:
    pages.append(page)
 
for p in pages:
    p1 = p.get_text().replace('\n', '').split(' ')
 
    c = 1
    for i in range(1, len(p1)):
        if p1[i] == str(c):
            p1[i] = '\n\n'
            c += 1
  
    del p1[0]
    p2 = ''.join(p1) + '\n'
    print(p2)
    
    script.write(p2)
 
script.close()
cs


사용법은 이거 복사해서 py파일 만들고 같은 위치에 pdf 대본파일을 script.pdf로 바꿔서 실행하면 됨. 아니면 코드 4번째줄에 script.pdf를 바꿔도 되고.


잠깐 설명하자면 doc가 pdf파일 전체고 page가 각 페이지, pages는 그냥 page 모아놓은거임.


그리고 p1이 각 문장인데, 위에 올린 대본은 각 문장이 숫자로 시작해서 이거 지워주느라 18~23 같은 루프가 들어갔음. 다 지워준게 p2고 이걸 27번에서 txt파일에 한줄 한줄 기록함. 그런데 예상치 못한 변수때문에 숫자가 지워지지 않을 수도 있어서 나중에 확인해줘야함.


서클마다 대본 양식이 다를수도 있으니 이것저것 실험해보면서 자신이 변환하고자 하는 대본에 맞게 수정해보는걸 추천함.