스캔된 PDF EPUB으로 바꾸기(feat.비추)

반응형
    반응형

    스캔된 pdf을 epub으로 바꾸기(feat.비추)

     

    pdf가 이미지로 구성된 경우가 있다. 책이 스캔된 경우가 그렇다. 이 pdf를 epub으로 만들면 글자변환이 안되고 이미지 자체가 변환이 된다. 무사히 넘기면 좋으련만 반전이나 회전이 되어서 변환된다. 이번 포스팅은 어쩔 수 없이 epub으로 써야한다면 다음과 같은 문제들이 발생할 때 어떻게 해결하는지에 대한 얘기다. 지금 하는 방법은 케바케 성향이 강해서 혹시 잘되는 엔틱한 방법이 있을지도 모르기에 일단 기초적인 아이디어를 올려놓는다.

     

    페이지 반전

    pdf를 epub으로 변환하는 과정은 간단하다. pdf 페이지 한장한장 다 따서 파일로 저장후 html로 다시 합치는 과정으로 변환을 마친다. 그런데 pdf 페이지 각각이 이미 이미지라면 초기값으로 세팅되어 있는 것으로 그림 저장을 해버린다.
    그래서 아래와 같이 반전되고 회전된 그림으로 만들어진다.

    굳이 이걸 해결하려면 다음과 같이 한다.

    1. epub -> zip으로 바꿔버린다.
    2. zip 파일을 열면 .png로 되어 있을 것이다.
    3. zip 압축을 풀고 .png를 화면 반전 시키면 된다.
    4. 파이썬을 쓸 줄 안다면 pillow를 이용해 반전을 시켜버린다.
    5. 반전이 완료되면 다시 zip으로 압축한 후 확장자를 epub으로 바꾼다.

    파이썬의 pillow를 이용하면 가능한데 코드는 다음과 같다.

     


    좌우반전 후 반시계로 90도를 돌렸다.

    from PIL import Image
    
    import os
    # PNG 파일들이 있는 디렉토리 경로
    
    directory = 'directory'
    
    for filename in os.listdir(directory):
        if filename.endswith(".png"):
            img_path = os.path.join(directory, filename)
            img = Image.open(img_path)
    
    		# 좌우 반전
            flipped_img = img.transpose(method=Image.FLIP_LEFT_RIGHT)
    
            # 시계 반대방향으로 90도 회전
            rotated_img = flipped_img.rotate(90, expand=True)
    
            # 원래 파일에 덮어쓰기
            rotated_img.save(img_path)
            print(f"{filename} has been mirrored and rotated.")

    이걸 킨들에 옮겨보았다. 아주 별로라는 걸 새삼 느낀다.

    글씨를 하나도 알아볼 수 없을만큼 작다. 원본 이미지가 이럴것이다. 이걸 다시 키운다면 글씨 자체가 깨질 확률이 높다. 안될 일을 하는 것이다. 이미지 파일로서 처리하기 때문에 font 크기 변경도 불가능하다.
    pdf 나름일거라 생각하지만 스캔된 파일은 추천하지 않는다.

    epub 기기는 epub만 하는 걸로!

    댓글

    Designed by JB FACTORY

    ....