pdfrw로 페이지 크기를 얻을 수 없을 때의 비망록

2788 단어 Pythonpdfrwtech
https://github.com/pmaupin/pdfrw
pdfrw를 사용하면 파이톤에서 PDF를 쉽게 조작할 수 있습니다.
그렇다고 해서 마땅한 곳이 없는 것도 아니어서 개인의 메모다.이번에는 페이지 사이즈의 취득편이다.

페이지 크기를 가져올 수 없는 질문


pdfrwMediaBox에서 속성을 사용하여 페이지의 크기를 목록 형식으로 얻을 수 있지만 PDF의 원인은 다음과 같다.

변수 유형 문제

MediaBox의 반환 값은 문자열 유형입니다.더하기와 빼기를 계산하려면 숫자형으로 전환해야 한다.

데이터 구조 문제


공식.에 따르면 PDF는 등급 구조를 가지고 있다. 특히MediaBoxRotate는 대부분 상부 구조의 값을 계승한다(가장 외부의 요소에 대해 사이즈를 지정하고 그 중의 요소가 모두 외주의 사이즈에 부합되는 경우 등).
이런 상황에서 값을 직접 설정하지 않은 요소로부터 의존 대상의 요소에 접근하기 위해inheritable의 속성을 준비했다.

해결책


def get_mediabox(page):
    fs = []
    mbox = page.MediaBox or page.inheritable.MediaBox
    for m in mbox:
        fs.append(float(m))
    return fs
PdfReader(file_path).pages에서 얻은 페이지 정보 목록의 각 요소에 대해 다음과 같이 호출하면 된다.
import pdfrw

file_path = r"C:\Users\hogehoge.pdf"
pages = PdfReader(file_path).pages
for page in pages:
    print(get_mediabox(page))

좋은 웹페이지 즐겨찾기