함수

다음은 상당히 낮은 수준의 기술 세부 사항에 대한 다양한 함수 및 속성입니다.

일부 함수는 PDF 구조에 대한 세부 액세스를 제공합니다. 다른 함수들은 더 많은 정보를 제공하는 다른 함수들의 간소화된 고성능 버전입니다.

또 다른 함수들은 편리한 범용 유틸리티입니다.

함수

간단한 설명

Annot.apn_bbox

PDF 전용: 외관 객체의 bbox

Annot.apn_matrix

PDF 전용: 외관 객체의 행렬

Page.is_wrapped

콘텐츠 래핑이 있는지 확인

adobe_glyph_names()

Adobe Glyph List 에 정의된 글리프 이름 목록

adobe_glyph_unicodes()

Adobe Glyph List 에 정의된 유니코드 목록

Annot.clean_contents()

PDF 전용: 주석의 contents 객체 정리

Annot.set_apn_bbox()

PDF 전용: 외관 객체의 bbox 설정

Annot.set_apn_matrix()

PDF 전용: 외관 객체의 행렬 설정

ConversionHeader()

get_text 메서드에 대한 헤더 문자열 반환

ConversionTrailer()

get_text 메서드에 대한 트레일러 문자열 반환

Document.del_xml_metadata()

PDF 전용: XML 메타데이터 제거

Document.get_char_widths()

PDF 전용: 글꼴의 글리프 너비 목록 반환

Document.get_new_xref()

PDF 전용: 새로운 xref 항목 생성 및 반환

Document.is_stream()

PDF 전용: xref 가 스트림 객체인지 확인

Document.xml_metadata_xref()

PDF 전용: XML 메타데이터 xref 번호 반환

Document.xref_length()

PDF 전용: xref 테이블의 길이 반환

EMPTY_IRECT()

(표준) 빈/유효하지 않은 사각형 반환

EMPTY_QUAD()

(표준) 빈/유효하지 않은 쿼드 반환

EMPTY_RECT()

(표준) 빈/유효하지 않은 사각형 반환

get_pdf_now()

PDF 형식의 현재 타임스탬프 반환

get_pdf_str()

PDF 호환 문자열 반환

get_text_length()

주어진 글꼴 및 fontsize 에 대한 문자열 길이 반환

glyph_name_to_unicode()

글리프 이름에서 유니코드 반환

image_profile()

기본 이미지 속성의 딕셔너리 반환

INFINITE_IRECT()

(유일하게 존재하는) 무한 사각형 반환

INFINITE_QUAD()

(유일하게 존재하는) 무한 쿼드 반환

INFINITE_RECT()

(유일하게 존재하는) 무한 사각형 반환

make_table()

사각형을 하위 사각형으로 분할

Page.clean_contents()

PDF 전용: 페이지의 contents 객체 정리

Page.get_bboxlog()

텍스트, 그리기 또는 이미지 객체를 둘러싸는 사각형 목록

Page.get_contents()

PDF 전용: 콘텐츠 xref 번호 목록 반환

Page.get_displaylist()

페이지의 디스플레이 리스트 생성

Page.get_text_blocks()

텍스트 블록을 Python 리스트로 추출

Page.get_text_words()

텍스트 단어를 Python 리스트로 추출

Page.get_texttrace()

저수준 텍스트 정보

Page.read_contents()

PDF 전용: 완전하고 연결된 /Contents 소스 가져오기

Page.run()

디바이스를 통해 페이지 실행

Page.set_contents()

PDF 전용: 페이지의 contents 를 일부 xref 로 설정

Page.wrap_contents()

스택 명령으로 콘텐츠 래핑

css_for_pymupdf_font()

pymupdf_fonts 패키지의 글꼴에 대한 CSS 소스 생성

paper_rect()

알려진 용지 형식에 대한 사각형 반환

paper_size()

알려진 용지 형식에 대한 너비, 높이 반환

paper_sizes()

사전 정의된 용지 형식의 딕셔너리

planish_line()

선을 x축에 매핑하는 행렬

recover_char_quad()

문자(“rawdict”)의 쿼드 계산

recover_line_quad()

라인 스팬의 하위 집합의 쿼드 계산

recover_quad()

스팬(“dict”, “rawdict”)의 쿼드 계산

recover_span_quad()

스팬 문자의 하위 집합의 쿼드 계산

set_messages()

PyMuPDF 메시지의 대상 설정.

sRGB_to_pdf()

sRGB 정수에서 PDF RGB 색상 튜플 반환

sRGB_to_rgb()

sRGB 정수에서 (R, G, B) 색상 튜플 반환

unicode_to_glyph_name()

유니코드에서 글리프 이름 반환

get_tessdata()

Tesseract-OCR 설치의 언어 지원 위치 찾기

colors_pdf_dict()

색상 이름의 딕셔너리 반환.

colors_wx_list()

색상 이름의 리스트 반환.

fitz_fontdescriptors

사용 가능한 보조 글꼴의 딕셔너리

PYMUPDF_MESSAGE

PyMuPDF 메시지의 대상.

pdfcolor

PDF 형식의 약 500개의 RGB 색상 딕셔너리.

paper_size(s)

알려진 용지 형식 코드의 너비와 높이를 반환하는 편의 함수. 이러한 값은 표준 해상도 72 픽셀 = 1 인치에 대한 픽셀 단위로 제공됩니다.

현재 정의된 형식에는 ‘A0’ 부터 ‘A10’, ‘B0’ 부터 ‘B10’, ‘C0’ 부터 ‘C10’, ‘Card-4x6’, ‘Card-5x7’, ‘Commercial’, ‘Executive’, ‘Invoice’, ‘Ledger’, ‘Legal’, ‘Legal-13’, ‘Letter’, ‘Monarch’‘Tabloid-Extra’ 가 포함되며, 각각 세로 또는 가로 형식으로 제공됩니다.

형식 이름은 문자열로 제공해야 하며(대소문자 구분 안 함), 선택적으로 “-L”(가로) 또는 “-P”(세로) 접미사를 붙일 수 있습니다. 접미사가 없으면 기본값은 세로입니다.

매개변수:

s (str) – 위의 형식 이름 중 하나를 대문자 또는 소문자로 지정합니다. 예: “A4” 또는 “letter-l”.

반환 형식:

tuple

반환:

용지 형식의 (너비, 높이). 알 수 없는 형식의 경우 (-1, -1) 이 반환됩니다. 예: pymupdf.paper_size(“A4”)(595, 842) 를 반환하고 pymupdf.paper_size(“letter-l”)(792, 612) 를 반환합니다.


paper_rect(s)

알려진 용지 형식에 대한 Rect 를 반환하는 편의 함수.

매개변수:

s (str) – paper_size() 에서 지원하는 모든 형식 이름.

반환 형식:

Rect

반환:

width, height=pymupdf.paper_size(s) 를 사용한 pymupdf.Rect(0, 0, width, height).

>>> import pymupdf
>>> pymupdf.paper_rect("letter-l")
pymupdf.Rect(0.0, 0.0, 792.0, 612.0)
>>>

set_messages(*, text=None, fd=None, stream=None, path=None, path_append=None, pylogging=None, pylogging_logger=None, pylogging_level=None, pylogging_name=None)

PyMuPDF 메시지의 대상을 파일 디스크립터, 파일, 기존 스트림 또는 Python의 로깅 시스템 로 설정합니다.

일반적으로 하나의 인수만 설정하거나 하나 이상의 pylogging* 인수를 설정합니다.

매개변수:
  • text (str) – 대상의 텍스트 사양. 자세한 내용은 환경 변수 PYMUPDF_MESSAGE 의 설명을 참조하세요.

  • fd (int) – 파일 디스크립터에 쓰기.

  • stream – 기존 스트림에 쓰기. .write(text).flush() 메서드가 있어야 합니다.

  • path (str) – 파일에 쓰기.

  • path_append (str) – 파일에 추가.

  • pylogging – Python의 logging 시스템에 쓰기.

  • pylogging_logger (logging.Logger) – 지정된 Logger를 사용하여 Python의 logging 시스템에 쓰기.

  • pylogging_level (int) – 지정된 레벨을 사용하여 Python의 logging 시스템에 쓰기.

  • pylogging_name (str) – 지정된 로거 이름을 사용하여 Python의 logging 시스템에 쓰기. pylogging_loggerNone 인 경우에만 사용됩니다. 기본값은 pymupdf 입니다.

pylogging* 인수가 None 이 아니면 Python의 로깅 시스템 에 씁니다.


sRGB_to_pdf(srgb)

v1.17.4에서 새로 추가됨

Page.get_text() 딕셔너리 “dict” 및 “rawdict” 에서 발생하는 것처럼 주어진 sRGB 색상 정수에 대한 PDF 색상 삼중(빨강, 녹색, 파랑)을 반환하는 편의 함수.

매개변수:

srgb (int) – RRGGBB 형식의 정수로, 각 색상 구성 요소는 range(255)의 정수입니다.

반환:

동일한 색상을 나타내는 0 <= item <= 1 구간의 float 항목을 가진 튜플(빨강, 녹색, 파랑). 예: sRGB_to_pdf(0xff0000) = (1, 0, 0) (빨강).


sRGB_to_rgb(srgb)

v1.17.4에서 새로 추가됨

주어진 sRGB 색상 정수에 대한 색상(빨강, 녹색, 파랑)을 반환하는 편의 함수.

매개변수:

srgb (int) – RRGGBB 형식의 정수로, 각 색상 구성 요소는 range(255)의 정수입니다.

반환:

동일한 색상을 나타내는 range(256) 의 정수 항목을 가진 튜플(빨강, 녹색, 파랑). 예: sRGB_to_pdf(0xff0000) = (255, 0, 0) (빨강).


glyph_name_to_unicode(name)

v1.18.0에서 새로 추가됨

**Adobe Glyph List**를 기반으로 글리프 이름의 유니코드 번호를 반환합니다.

매개변수:

name (str) – 일부 글리프의 이름. 이 함수는 Adobe Glyph List 에 기반합니다.

반환 형식:

int

반환:

유니코드. 유효하지 않은 name 항목은 0xfffd (65533) 을 반환합니다.

참고

유사한 기능이 fontTools 패키지의 agl 하위 패키지에서 제공됩니다.


unicode_to_glyph_name(ch)

v1.18.0에서 새로 추가됨

**Adobe Glyph List**를 기반으로 유니코드 번호의 글리프 이름을 반환합니다.

매개변수:

ch (int) – 예를 들어 ord("ß") 로 주어진 유니코드. 이 함수는 Adobe Glyph List 에 기반합니다.

반환 형식:

str

반환:

글리프 이름. 예: pymupdf.unicode_to_glyph_name(ord("Ä"))'Adieresis' 를 반환합니다.

참고

유사한 기능은 패키지 fontToolsagl 하위 패키지에서 제공됩니다.


adobe_glyph_names()

v1.18.0에서 새로 추가됨

Adobe Glyph List 에 정의된 글리프 이름 목록을 반환합니다.

반환 형식:

list

반환:

문자열 목록.

참고

유사한 기능이 fontTools 패키지의 agl 하위 패키지에서 제공됩니다.


adobe_glyph_unicodes()

v1.18.0에서 새로 추가됨

Adobe Glyph List 에 글리프 이름이 존재하는 유니코드 목록을 반환합니다.

반환 형식:

list

반환:

정수 목록.

참고

유사한 기능이 fontTools 패키지의 agl 하위 패키지에서 제공됩니다.


css_for_pymupdf_font(fontcode, *, CSS=None, archive=None, name=None)

v1.21.0의 새로운 기능

“Story” 애플리케이션에서 사용하기 위한 유틸리티 함수.

pymupdf-fonts에서 주어진 fontcode에 대한 CSS @font-face 항목을 생성합니다. 문자열 “fontcode”로 시작하는 모든 글꼴에 대한 CSS font-family를 생성합니다.

패키지 pymupdf-fonts의 글꼴 명명 규칙은 “fontcode<sf>”이며, 여기서 접미사 “sf”는 “”(비어 있음), “it”/”i”, “bo”/”b” 또는 “bi” 중 하나입니다. 이러한 접미사는 따라서 해당 글꼴의 일반, 기울임꼴, 굵게 또는 굵은 기울임꼴 변형을 나타냅니다.

예를 들어, 글꼴 코드 “notos”는 다음 글꼴을 나타냅니다

  • “notos” - “Noto Sans Regular”

  • “notosit” - “Noto Sans Italic”

  • “notosbo” - “Noto Sans Bold”

  • “notosbi” - “Noto Sans Bold Italic”

함수는 (최대) 4개의 CSS @font-face 정의를 생성하고 font-family 이름 “notos”(또는 제공된 경우 “name” 값)를 집합적으로 할당합니다. 연결된 글꼴 버퍼는 제공된 아카이브에 배치/추가됩니다.

Story 의 Python API에서 글꼴을 사용하려면 .set_font(fontcode) (또는 주어진 경우 “name”)를 실행하세요. 올바른 글꼴 두께 또는 스타일이 필요에 따라 자동으로 선택됩니다.

예를 들어 위의 “notos”로 “sans-serif” HTML 표준(즉, Helvetica)을 대체하려면 다음을 실행하세요. “sans-serif”가 사용될 때마다(명시적으로든 암시적으로든) Noto Sans 글꼴이 선택됩니다.

CSS = pymupdf.css_for_pymupdf_font("notos", name="sans-serif", archive=...)

CSS 소스를 받아서 새로운 CSS 정의가 추가된 CSS 소스를 반환합니다.

매개변수:
  • fontcode (str) – 패키지 pymupdf-fonts 에 있는 글꼴 코드 중 하나(일반적으로 글꼴 패밀리의 일반 버전을 나타냄).

  • CSS (str) – 기존 CSS 소스 또는 None. 함수는 새로운 정의를 여기에 추가합니다. 이것은 Story 를 생성할 때 user_css사용해야 하는 문자열입니다.

  • archiveArchive (아카이브), 필수. “fontcode”에 대해 찾은 모든 글꼴 바이너리(최대 4개)가 아카이브에 추가됩니다. 이것은 Story 를 생성할 때 Archive (아카이브)사용해야 하는 아카이브입니다.

  • name (str) – “fontcode” 글꼴을 찾을 이름. 생략하면 “fontcode”가 사용됩니다.

반환 형식:

str

반환:

fontcode의 각 글꼴 변형에 대한 @font-face 문이 추가된 수정된 CSS. “fontcode”와 연결된 Fontbuffers가 ‘archive’에 추가됩니다. 함수는 자동으로 최대 4개의 글꼴 변형을 찾습니다. 모든 pymupdf-fonts(수학이나 음악 등 특수 목적이 아닌 것)는 일반, 굵게, 기울임꼴 및 굵은 기울임꼴 변형을 가지고 있습니다. 현재 사용 가능한 글꼴 코드를 확인하려면 pymupdf.fitz_fontdescriptors.keys() 를 확인하세요. 이것은 dict_keys(['cascadia', 'cascadiai', 'cascadiab', 'cascadiabi', 'figbo', 'figo', 'figbi', 'figit', 'fimbo', 'fimo', 'spacembo', 'spacembi', 'spacemit', 'spacemo', 'math', 'music', 'symbol1', 'symbol2', 'notosbo', 'notosbi', 'notosit', 'notos', 'ubuntu', 'ubuntubo', 'ubuntubi', 'ubuntuit', 'ubuntm', 'ubuntmbo', 'ubuntmbi', 'ubuntmit']) 와 같은 것을 보여줍니다.

“Helvetica” 대신 “Noto Sans” 글꼴을 사용하는 완전한 코드 조각입니다:

arch = pymupdf.Archive()
CSS = pymupdf.css_for_pymupdf_font("notos", name="sans-serif", archive=arch)
story = pymupdf.Story(user_css=CSS, archive=arch)

make_table(rect, cols=1, rows=1)

v1.17.4에서 새로 추가됨

사각형을 동일한 크기의 하위 사각형으로 분할하는 편의 함수. rows 리스트의 리스트를 반환하며, 각 리스트는 cols 개의 Rect 항목을 포함합니다. 각 하위 사각형은 행 및 열 인덱스로 주소를 지정할 수 있습니다.

매개변수:
  • rect (rect_like) – 분할할 사각형.

  • cols (int) – 원하는 열 수.

  • rows (int) – 원하는 행 수.

반환:

동일한 크기의 Rect 객체 리스트. 이들의 합집합은 rect 와 같습니다. cell = pymupdf.make_table(rect, cols=4, rows=3) 로 생성된 3x4 테이블의 레이아웃은 다음과 같습니다:

_images/img-make-table.jpg

planish_line(p1, p2)
  • 버전 1.16.2의 새로운 기능

p1에서 p2로의 선을 x축에 매핑하는 행렬을 반환합니다. p1은 (0,0)이 되고 p2는 (0,0)까지의 동일한 거리를 가진 점이 됩니다.

매개변수:
  • p1 (point_like) – 선의 시작점.

  • p2 (point_like) – 선의 끝점.

반환 형식:

Matrix

반환:

회전과 이동을 결합한 행렬:

>>> p1 = pymupdf.Point(1, 1)
>>> p2 = pymupdf.Point(4, 5)
>>> abs(p2 - p1)  # distance of points
5.0
>>> m = pymupdf.planish_line(p1, p2)
>>> p1 * m
Point(0.0, 0.0)
>>> p2 * m
Point(5.0, -5.960464477539063e-08)
>>> # distance of the resulting points
>>> abs(p2 * m - p1 * m)
5.0
_images/img-planish.png


paper_sizes()

사전 정의된 용지 형식의 딕셔너리. paper_size() 의 기반으로 사용됩니다.


fitz_fontdescriptors
  • v1.17.5의 새로운 기능

저장소 pymupdf-fonts 에서 사용 가능한 글꼴의 딕셔너리. 항목은 예약된 글꼴 이름으로 키가 지정되며 다음과 같은 정보를 제공합니다:

In [2]: pymupdf.fitz_fontdescriptors.keys()
Out[2]: dict_keys(['figbo', 'figo', 'figbi', 'figit', 'fimbo', 'fimo',
'spacembo', 'spacembi', 'spacemit', 'spacemo', 'math', 'music', 'symbol1',
'symbol2'])
In [3]: pymupdf.fitz_fontdescriptors["fimo"]
Out[3]:
{'name': 'Fira Mono Regular',
'size': 125712,
'mono': True,
'bold': False,
'italic': False,
'serif': True,
'glyphs': 1485}

pymupdf-fonts 가 설치되지 않은 경우 딕셔너리는 비어 있습니다.

딕셔너리 키는 예를 들어 font = pymupdf.Font("fimo") 를 통해 Font 를 정의하는 데 사용할 수 있습니다 – 내장 글꼴 “Helvetica” 등과 동일하게 사용할 수 있습니다.


PYMUPDF_MESSAGE

PyMuPDF 가 가져올 때 os.environ 에 있으면 PyMuPDF 메시지의 대상을 설정합니다. 그렇지 않으면 메시지는 sys.stdout 으로 전송됩니다.

  • 값이 fd: 로 시작하면 나머지 텍스트는 메시지가 기록되는 정수 파일 디스크립터여야 합니다.

    • 예를 들어 PYMUPDF_MESSAGE=fd:2 는 메시지를 stderr로 보냅니다.

  • 값이 path: 로 시작하면 나머지 텍스트는 메시지가 기록되는 파일의 경로입니다. 파일이 이미 존재하면 잘립니다.

  • 값이 path+: 로 시작하면 나머지 텍스트는 메시지가 기록되는 파일의 경로입니다. 파일이 이미 존재하면 출력을 추가합니다.

  • 값이 logging: 로 시작하면 메시지는 Python의 로깅 시스템 에 기록됩니다. 나머지 텍스트는 쉼표로 구분된 name=value 항목을 포함할 수 있습니다:

    • level= 는 로깅 레벨을 설정합니다.

    • name= 는 로거 이름을 설정합니다(기본값은 pymupdf).

    다른 항목은 무시됩니다.

  • 다른 접두사는 오류를 발생시킵니다.

set_messages() 도 참조하세요.


pdfcolor
  • v1.19.6의 새로운 기능

색상 이름을 키로 하는 PDF 형식의 약 500개의 RGB 색상을 포함합니다. 내용을 확인하려면 pymupdf.pdfcolor.keys() 를 확인할 수 있습니다.

예제:

  • pymupdf.pdfcolor["red"] = (1.0, 0.0, 0.0)

  • pymupdf.pdfcolor["skyblue"] = (0.5294117647058824, 0.807843137254902, 0.9215686274509803)

  • pymupdf.pdfcolor["wheat"] = (0.9607843137254902, 0.8705882352941177, 0.7019607843137254)


get_pdf_now()

현재 로컬 타임스탬프를 PDF 호환 형식으로 반환하는 편의 함수. 예: UTC 자오선에서 서쪽으로 4시간 떨어진 시간대의 2017년 5월 1일 12:15:25 로컬 날짜/시간에 대한 D:20170501121525-04’00’.

반환 형식:

str

반환:

현재 로컬 PDF 타임스탬프.


get_text_length(text, fontname='helv', fontsize=11, encoding=TEXT_ENCODING_LATIN)
  • 버전 1.14.7의 새로운 기능

주어진 내장 글꼴, fontsize 및 인코딩으로 출력 시 텍스트 길이를 계산합니다.

매개변수:
  • text (str) – 텍스트 문자열.

  • fontname (str) – 글꼴 이름. PDF Base 14 글꼴 또는 “예약된” 글꼴 이름으로 식별되는 CJK 글꼴 중 하나여야 합니다(Page.insert_font() 의 표 참조).

  • fontsize (float) – fontsize.

  • encoding (int) – 사용할 인코딩. 0 = Latin 외에 1 = Greek 및 2 = Cyrillic(러시아어)을 사용할 수 있습니다. Base-14 글꼴 “Helvetica”, “Courier” 및 “Times”와 그 변형에만 관련됩니다. 해당 텍스트 삽입에서와 동일한 값을 사용해야 합니다.

반환 형식:

float

반환:

문자열이 가질 포인트 단위의 길이(예: Page.insert_text() 에서 사용할 때).

참고

이 함수는 계산만 수행합니다 – 글꼴이나 텍스트를 삽입하지 않습니다.

참고

Font 클래스는 유사한 메서드 Font.text_length() 를 제공하며, Base-14 글꼴과 문자 맵(CMap, Type 0 글꼴)이 있는 모든 글꼴을 지원합니다.

경고

이 함수를 사용하여 (Page 또는 Shape) insert_textbox 메서드에 필요한 사각형 너비를 결정하는 경우, 이들은 문자 단위 로 계산한다는 점에 유의하세요. 반올림 효과로 인해 대부분 약간 더 큰 숫자가 됩니다: sum([pymupdf.get_text_length(c) for c in text]) > pymupdf.get_text_length(text). 따라서 (1) 동일하게 수행하거나 (2) 계산에 pymupdf.get_text_length(text + “’”) 와 같은 것을 사용하세요.


get_pdf_str(text)

PDF 호환 문자열 생성: 텍스트에 코드 포인트 ord(c) > 255 가 포함되어 있으면 BOM이 있는 UTF-16BE로 변환되어 <feff…> 와 같이 “<>” 괄호로 둘러싸인 16진수 문자 문자열이 됩니다. 그렇지 않으면 (둥근) 괄호로 둘러싸인 문자열을 반환하며, ASCII 범위 밖의 모든 문자를 특수 코드로 대체합니다. 또한 모든 “(”, “)” 또는 백슬래시는 백슬래시로 이스케이프됩니다.

매개변수:

text (str) – 변환할 객체

반환 형식:

str

반환:

() 또는 <> 로 둘러싸인 PDF 호환 문자열.


image_profile(stream)
  • v1.16.7의 새로운 기능

  • v1.19.5에서 변경됨: EXIF 데이터가 있으면 추출된 자연 이미지 방향도 반환합니다.

  • v1.22.5에서 변경됨: 오류 경우 빈 딕셔너리 대신 항상 None 을 반환합니다.

메모리 영역으로 제공된 이미지의 중요한 속성을 표시합니다. 주요 목적은 이를 결정하기 위해 다른 Python 패키지를 사용하는 것을 피하는 것입니다.

매개변수:

stream (bytes|bytearray|BytesIO|file) – 메모리의 이미지 또는 열린 파일. 메모리의 이미지는 bytes, bytearray 또는 io.BytesIO 형식 중 하나일 수 있습니다.

반환 형식:

dict

반환:

예외는 발생하지 않습니다. 오류가 발생하면 None 이 반환됩니다. 그렇지 않으면 다음 항목이 있습니다:

In [2]: pymupdf.image_profile(open("nur-ruhig.jpg", "rb").read())
Out[2]:
{'width': 439,
'height': 501,
'orientation': 0,  # natural orientation (from EXIF)
'transform': (1.0, 0.0, 0.0, 1.0, 0.0, 0.0),  # orientation matrix
'xres': 96,
'yres': 96,
'colorspace': 3,
'bpc': 8,
'ext': 'jpeg',
'cs-name': 'DeviceRGB'}

orientation 에 인코딩된 Exif 정보 및 이에 해당하는 transform 행렬과의 관계는 다음과 같습니다(MuPDF 문서에서 인용, ccw = 반시계 방향):

  1. 정의되지 않음

  2. 0도 반시계 방향 회전. (Exif = 1)

  3. 90도 반시계 방향 회전. (Exif = 8)

  4. 180도 반시계 방향 회전. (Exif = 3)

  5. 270도 반시계 방향 회전. (Exif = 6)

  6. X축으로 뒤집기. (Exif = 2)

  7. X축으로 뒤집은 후 90도 반시계 방향 회전. (Exif = 5)

  8. X축으로 뒤집은 후 180도 반시계 방향 회전. (Exif = 4)

  9. X축으로 뒤집은 후 270도 반시계 방향 회전. (Exif = 7)

참고

  • 일부 “특수” 이미지(FAX 인코딩, RAW 형식 등)의 경우 이 메서드는 작동하지 않습니다. 그러나 PyMuPDF에서 Document.extract_image() 를 사용하거나 Pixmap(doc, xref) 를 통해 픽스맵을 생성하는 등으로 이러한 이미지를 계속 작업할 수 있습니다. 이러한 메서드는 결과를 반환하기 전에 특수 이미지를 자동으로 PNG 형식으로 변환합니다.

  • PDF에 포함된 이미지의 속성은 xref 를 통해 가져올 수도 있습니다. 이 경우 원시 스트림을 추출해야 합니다: pymupdf.image_profile(doc.xref_stream_raw(xref)).

  • ”dict” 또는 “rawdict” 옵션을 사용하는 Page.get_text() 의 이미지 블록으로 반환된 이미지도 지원됩니다.


ConversionHeader("text", filename="UNKNOWN")

페이지 텍스트 출력으로 유효한 문서를 만들기 위해 필요한 헤더 문자열을 반환합니다.

매개변수:
  • output (str) – 문서 타입. get_text() 의 출력 매개변수와 동일하게 사용하세요.

  • filename (str) – 출력 타입 “json” 및 “xml”에서 사용할 선택적 임의 이름.

반환 형식:

str


ConversionTrailer(output)

페이지 텍스트 출력으로 유효한 문서를 만들기 위해 필요한 트레일러 문자열을 반환합니다. 예제는 Page.get_text() 를 참조하세요.

매개변수:

output (str) – 문서 타입. get_text() 의 출력 매개변수와 동일하게 사용하세요.

반환 형식:

str


Document.del_xml_metadata()

PDF에서 XML 기반 메타데이터를 포함하는 객체를 삭제합니다. (Py-) MuPDF는 XML 기반 메타데이터를 지원하지 않습니다. 기존 메타데이터 딕셔너리가 독점적으로 사용되도록 하려면 이것을 사용하세요. 많은 타사 PDF 프로그램이 자체 메타데이터를 XML 형식으로 삽입하므로 기존 딕셔너리에 저장한 내용을 덮어쓸 수 있습니다. 이 메서드는 이러한 참조를 삭제하며, 해당 PDF 객체는 다음 파일 가비지 수집 중에 삭제됩니다.


Document.xml_metadata_xref()

PDF의 XML 기반 메타데이터 xref 가 있으면 반환합니다 – Document.del_xml_metadata() 도 참조하세요. Document.xref_stream() 을 통해 콘텐츠를 검색한 다음 일부 XML 소프트웨어를 사용하여 작업할 수 있습니다.

반환 형식:

int

반환:

PDF 파일 레벨 XML 메타데이터의 xref – 없으면 0.


Page.run(dev, transform)

디바이스를 통해 페이지 실행.

매개변수:

Page.get_bboxlog(layers=False)
  • v1.19.0의 새로운 기능

  • v1.22.0에서 변경됨: 선택적으로 경계 상자에 적용 가능한 OCG 이름도 반환합니다.

반환:

텍스트, 이미지 또는 그리기 객체를 둘러싸는 사각형 목록. 각 항목은 (type, (x0, y0, x1, y1)) 튜플이며, 두 번째 튜플은 사각형 좌표로 구성되고 type 은 다음 값 중 하나입니다. layers=True 인 경우 OCG 이름 또는 None 을 포함하는 세 번째 항목이 있습니다: (type, (x0, y0, x1, y1), None).

  • "fill-text" – 일반 텍스트(문자 경계 없이 그려짐)

  • "stroke-text" – 문자 경계만 표시하는 텍스트

  • "ignore-text" – 표시되지 않아야 하는 텍스트(예: OCR 텍스트 레이어에서 사용)

  • "fill-path" – 채우기 색상으로 그리기(경계 없음)

  • "stroke-path" – 경계로 그리기(채우기 색상 없음)

  • "fill-image" – 이미지 표시

  • "fill-shade" – 음영 표시

항목 시퀀스는 페이지의 모양을 구축하기 위해 이러한 명령이 실행되는 순서 를 나타냅니다. 따라서 항목의 bbox가 이전 항목과 교차하거나 포함하는 경우 이전 항목이 (부분적으로) 덮이거나 숨겨질 수 있습니다.

따라서 이 목록을 사용하여 이러한 상황을 감지할 수 있습니다. 이 목록의 항목 인덱스는 Page.get_drawings()Page.get_texttrace() 에서 반환된 딕셔너리의 "seqno" 값과 같습니다.


Page.get_texttrace()
  • v1.18.16의 새로운 기능

  • v1.19.0에서 변경됨: 키 “seqno” 추가.

  • v1.19.1에서 변경됨: 스트로크 및 채우기 색상이 이제 항상 RGB 또는 GRAY입니다

  • v1.19.3에서 변경됨: dir != (1, 0) 인 경우에도 스팬 및 문자 bbox가 이제 올바릅니다.

  • v1.22.0에서 변경됨: 새로운 딕셔너리 키 “layer” 추가.

페이지의 저수준 텍스트 정보를 반환합니다. 이 메서드는 모든 문서 타입에서 사용할 수 있습니다. 결과는 다음 내용을 가진 Python 딕셔너리 목록입니다:

{
   'ascender': 0.83251953125,          # font ascender (1)
   'bbox': (458.14019775390625,        # span bbox x0 (7)
            749.4671630859375,         # span bbox y0
            467.76458740234375,        # span bbox x1
            757.5071411132812),        # span bbox y1
   'bidi': 0,                          # bidirectional level (1)
   'chars': (                          # char information, tuple[tuple]
               (45,                    # unicode (4)
               16,                     # glyph id (font dependent)
               (458.14019775390625,    # origin.x (1)
               755.3758544921875),     # origin.y (1)
               (458.14019775390625,    # char bbox x0 (6)
               749.4671630859375,      # char bbox y0
               462.9649963378906,      # char bbox x1
               757.5071411132812)),    # char bbox y1
               ( ... ),                # more characters
            ),
   'color': (0.0,),                    # text color, tuple[float] (1)
   'colorspace': 1,                    # number of colorspace components (1)
   'descender': -0.30029296875,        # font descender (1)
   'dir': (1.0, 0.0),                  # writing direction (1)
   'flags': 12,                        # font flags (1)
   'font': 'CourierNewPSMT',           # font name (1)
   'linewidth': 0.4019999980926514,    # current line width value (3)
   'opacity': 1.0,                     # alpha value of the text (5)
   'layer': None,                      # name of Optional Content Group (9)
   'seqno': 246,                       # sequence number (8)
   'size': 8.039999961853027,          # font size (1)
   'spacewidth': 4.824785133358091,    # width of space char
   'type': 0,                          # span type (2)
   'wmode': 0                          # writing mode (1)
}

세부사항:

  1. “(1)”로 태그된 위의 정보는 TextPage 에서 설명한 것과 동일한 의미와 값을 가집니다.

    • 글꼴 flags 값에는 위첨자 플래그 비트가 포함되지 않습니다: 위첨자 감지는 MuPDF TextPage 코드 내에서 수행됩니다 – 이것은 어떤 글꼴의 속성도 아닙니다.

    • 텍스트 color 는 일반적인 float 튜플 0 <= f <= 1로 인코딩됩니다 – sRGB 형식이 아닙니다. span["type"] 에 따라 이를 채우기 색상 또는 스트로크 색상으로 해석하세요.

  2. 3가지 텍스트 스팬 타입이 있습니다:

    • 0: 채워진 텍스트 – PDF 텍스트 렌더링 모드 0(0 Tr, PDF의 기본값)과 동일하며, 각 문자의 “내부”만 표시됩니다.

    • 1: 스트로크 텍스트 – 1 Tr 와 동일하며, 문자 경계만 표시됩니다.

    • 3: 무시된 텍스트 – 3 Tr (숨겨진 텍스트)와 동일합니다.

  3. 이 맥락에서 선 너비는 span["type"] != 0 처리에만 중요합니다: 문자 경계선의 두께를 결정합니다. 이 값은 텍스트 데이터와 함께 전혀 제공되지 않을 수 있습니다. 이 경우 fontsize 의 5% 값(span["size"] * 0,05)이 생성됩니다. 종종 PDF의 “인위적인” 굵은 텍스트는 2 Tr 로 생성됩니다. 이 경우에 해당하는 스팬 타입은 없습니다. 대신 해당 텍스트는 두 개의 연속된 스팬으로 표현됩니다 – 타입이 각각 0과 1인 것을 제외하고 모든 면에서 동일합니다. 이러한 상황을 처리하는 것은 사용자의 책임입니다 - Page.get_text() 에서는 MuPDF가 이를 수행합니다.

  4. 데이터 압축을 위해 여기에 문자의 유니코드가 제공됩니다. 문자 자체는 내장 함수 chr() 을 사용하세요.

  5. 스팬 텍스트의 알파/불투명도 값, 0 <= opacity <= 1, 0은 보이지 않는 텍스트, 1(100%)은 불투명합니다. span["type"] 에 따라 이 값을 fill 불투명도 또는 stroke 불투명도로 해석하세요.

  6. (v1.19.0에서 변경됨) 이 값은 “rawdict”의 char["bbox"] 와 같거나 가깝습니다. 특히 bbox height 값은 항상 “small glyph heights” 가 요청된 것처럼 계산됩니다.

  7. (v1.19.0의 새로운 기능) 이것은 모든 문자 bbox의 합집합입니다.

  8. (v1.19.0의 새로운 기능) 페이지의 모양을 구축하는 명령을 열거합니다. 텍스트가 “나중에” 그려지거나 어떤 객체 위에 그려진 객체에 의해 효과적으로 숨겨지는지 확인하는 데 사용할 수 있습니다. 따라서 더 높은 시퀀스 번호를 가진 그리기 또는 이미지가 있고, 그 bbox가 이 텍스트 스팬의 (일부)와 겹치는 경우, 그러한 객체가 해당 텍스트를 숨긴다고 가정할 수 있습니다. 다른 텍스트 스팬은 한 번에 생성된 경우 동일한 시퀀스 번호를 가집니다.

  9. (v1.22.0의 새로운 기능) 해당하는 경우 Optional Content Group (OCG)의 이름 또는 None.

page.get_text("rawdict") 와 비교한 page.get_texttrace() 의 유사점과 차이점 목록입니다:

  • 이 메서드는 “rawdict” 추출과 비교하여 최대 2배 빠릅니다. 텍스트 양에 따라 다릅니다.

  • 반환된 데이터는 크기가 훨씬 작습니다 – 더 많은 정보를 제공하지만.

  • 추가 유형의 텍스트 보이지 않음을 감지할 수 있습니다: opacity = 0 또는 type > 1 또는 더 높은 시퀀스 번호를 가진 객체의 겹치는 bbox.

  • MuPDF가 인식되지 않은 문자에 대해 유니코드 0xFFFD(65533)를 반환하는 경우, 글리프 id에서 원하는 정보를 추론할 수 있을 수 있습니다.

  • span["chars"]공백을 포함하지 않습니다, 문서 작성자가 명시적으로 코딩한 경우를 제외하고. Page.get_text() 메서드에서 발생하는 것처럼 절대 생성되지 않습니다. 여기서 자체 계산을 수행하는 데 도움이 되도록 공백 문자의 너비가 제공됩니다. 이 값은 가능한 경우 글꼴에서 파생됩니다. 그렇지 않으면 대체 글꼴의 값이 사용됩니다.

  • TextPage 에서 발생하는 것처럼 텍스트를 구성하려는 시도가 없습니다(블록, 라인, 스팬 및 문자의 계층 구조). 문자는 단순히 순차적으로 하나씩 추출되어 스팬에 배치됩니다. 스팬의 특성이 변경될 때마다 새로운 스팬이 시작됩니다. 따라서 동일한 스팬에서 다른 origin.y 값을 가진 문자를 찾을 수 있습니다(이는 다른 라인에 나타날 것임을 의미). 스팬 문자가 특정 순서로 정렬되어 있다고 가정할 수 없습니다 – span["dir"], span["wmode"] 등을 고려하여 정보를 직접 이해해야 합니다.

  • 합자는 다음과 같이 표현됩니다:
    • MuPDF는 다음 합자를 처리합니다: “fi”, “ff”, “fl”, “ft”, “st”, “ffi”, “ffl” (처음 3개만 주로 사용됨). 페이지에 예를 들어 합자 “fi”가 포함되어 있으면 다음 두 문자 항목이 서로 연속으로 나타납니다:

      (102, glyph, (x, y), (x0, y0, x1, y1))  # 102 = ord("f")
      (105, -1, (x, y), (x0, y0, x0, y1))     # 105 = ord("i"), empty bbox!
      
    • 이것은 첫 번째 합자 문자의 bbox가 완전한 복합 글리프를 포함하는 영역임을 의미합니다. 후속 합자 구성 요소는 글리프 값 -1과 너비가 0인 bbox로 인식할 수 있습니다.

    • 2개 또는 3개의 문자 튜플을 합자 자체를 나타내는 하나로 대체할 수 있습니다. 다음 합자-유니코드 매핑을 사용하세요:

      • "ff" -> 0xFB00

      • "fi" -> 0xFB01

      • "fl" -> 0xFB02

      • "ffi" -> 0xFB03

      • "ffl" -> 0xFB04

      • "ft" -> 0xFB05

      • "st" -> 0xFB06

      따라서 위의 두 예제 튜플을 다음 단일 튜플로 대체할 수 있습니다: (0xFB01, glyph, (x, y), (x0, y0, x1, y1)) (일반적으로 해당 글꼴에서 0xFB01에 대한 올바른 글리프 id를 조회할 필요는 없지만, font.has_glyph(0xFB01) 을 실행하고 반환 값을 사용할 수 있습니다).

  • v1.19.3에서 변경됨: 다른 텍스트 추출 메서드와 유사하게, 문자 및 스팬 bbox는 문자 쿼드를 둘러쌉니다. 쿼드를 복구하려면 딕셔너리 출력 구조 에서 설명한 것과 동일한 메서드 recover_quad(), recover_char_quad() 또는 recover_span_quad() 를 따르세요. 쓰기 방향에는 None 또는 span["dir"] 을 사용하세요.

  • v1.21.1에서 변경됨: 해당하는 경우 OCG의 이름이 "layer" 에 표시됩니다.


Page.wrap_contents()

페이지의 소위 그래픽 상태가 균형을 이루고 새 콘텐츠가 올바르게 삽입될 수 있도록 합니다.

PyMuPDF 버전 1.24.1+에서 이 메서드가 개선되어 필요에 따라 자동으로 실행되므로 더 이상 신경 쓸 필요가 없습니다.

이를 달성하기 위해 Page.clean_contents() 사용을 권장하지 않습니다.


Page.is_wrapped

페이지의 소위 그래픽 상태가 균형을 이루는지 나타냅니다. False 인 경우 새 콘텐츠가 삽입되면 Page.wrap_contents() 를 실행해야 합니다(overlay=True 모드에서만 관련됨). 최신 버전(1.24.1+)에서는 이 확인 및 해당 조정이 자동으로 실행됩니다 – 따라서 더 이상 신경 쓸 필요가 없습니다.

반환 형식:

bool


Page.get_text_blocks(flags=None)

TextPage.extractBLOCKS() 의 더 이상 사용되지 않는 래퍼. 대신 “blocks” 옵션을 사용하는 Page.get_text() 를 사용하세요.

반환 형식:

list[tuple]


Page.get_text_words(flags=None, delimiters=None)

TextPage.extractWORDS() 의 더 이상 사용되지 않는 래퍼. 대신 “words” 옵션을 사용하는 Page.get_text() 를 사용하세요.

반환 형식:

list[tuple]


Page.get_displaylist()

리스트 디바이스를 통해 페이지를 실행하고 디스플레이 리스트를 반환합니다.

반환 형식:

DisplayList (디스플레이 리스트)

반환:

페이지의 디스플레이 리스트.


Page.get_contents()

PDF 전용: 페이지의 contents 객체의 xref 목록을 검색합니다. 비어 있거나 여러 정수를 포함할 수 있습니다. 페이지가 정리된 경우(Page.clean_contents()) 항목은 하나 이하입니다. 각 /Contents 객체의 “source”는 이 목록의 항목을 사용하여 Document.xref_stream() 으로 개별적으로 읽을 수 있습니다. 반면 Page.read_contents() 메서드는 이 목록을 순회하고 해당 소스를 하나의 bytes 객체로 연결합니다.

반환 형식:

list[int]


Page.set_contents(xref)

PDF 전용: 페이지의 /Contents 키가 이 xref를 가리키도록 합니다. 이전에 사용된 모든 콘텐츠 객체는 무시되며 가비지 수집을 통해 제거할 수 있습니다.


Page.clean_contents(sanitize=True)
  • v1.17.6에서 변경됨

PDF 전용: 이 페이지와 연결된 모든 contents 객체를 정리하고 연결합니다. “정리”에는 구문 수정, 표준화 및 콘텐츠 스트림의 “예쁘게 인쇄”가 포함됩니다. sanitize가 true이면 contentsresources 객체 간의 불일치도 수정됩니다. 자세한 내용은 Page.get_contents() 를 참조하세요.

버전 1.16.0에서 변경됨: 주석은 이 메서드에 의해 더 이상 암시적으로 정리되지 않습니다. Annot.clean_contents() 를 별도로 사용하세요.

매개변수:

sanitize (bool) – (v1.17.6의 새로운 기능) true이면 리소스와 콘텐츠 객체에서의 실제 사용 간의 동기화가 이루어집니다. 예를 들어, 글꼴이 페이지의 어떤 텍스트에도 실제로 사용되지 않으면 /Resources/Font 객체에서 삭제됩니다.

경고

이것은 대량의 새 데이터를 생성하고 이전 데이터를 사용하지 않게 만들 수 있는 복잡한 함수입니다. 증분 저장 옵션과 함께 사용하는 것은 권장되지 않습니다. 또한 결과 단일 /Contents 객체는 압축되지 않습니다. 따라서 “deflate=True, garbage=3” 옵션을 사용하여 새 파일 에 저장해야 합니다.

PDF 페이지에 올바른 삽입을 보장하기 위해 이 메서드를 더 이상 사용하지 마세요. PyMuPDF 버전 1.24.2부터는 이것이 자동으로 처리됩니다.


Page.read_contents()

버전 1.17.0의 새로운 기능. 페이지와 연결된 모든 contents 객체의 연결을 반환합니다 – 정리하거나 수정하지 않고. 별도의 콘텐츠 객체가 몇 개나 있는지 신경 쓸 필요 없이 전체 소스를 구문 분석해야 할 때마다 이 메서드를 사용하세요.

반환 형식:

bytes


Annot.clean_contents(sanitize=True)

주석과 연결된 contents 스트림을 정리합니다. 이것은 Page.clean_contents() 가 수행하는 것과 동일한 작업입니다 – 단지 이 주석으로 제한됩니다.


Document.get_char_widths(xref=0, limit=256)

문서에 있는 글꼴에 대한 문자 글리프 및 너비 목록을 반환합니다. 글꼴은 PDF 교차 참조 번호 xref 로 지정해야 합니다. 이 함수는 Page.insert_text()Page.insert_textbox() 에서 자동으로 호출됩니다. 따라서 직접 수행할 필요는 거의 없습니다.

매개변수:
  • xref (int) – PDF에 포함된 글꼴의 교차 참조 번호. 글꼴 xref 를 찾으려면 예를 들어 페이지 번호 pnodoc.get_page_fonts(pno) 를 사용하고 반환된 목록 항목 중 하나의 첫 번째 항목을 가져옵니다.

  • limit (int) – 반환된 항목 수를 제한합니다. 256의 기본값은 1바이트 문자만 지원하는 소위 “simple fonts”(이 메서드로 확인됨)에 대해 적용됩니다. 모든 PDF Base 14 글꼴 는 simple fonts입니다.

반환 형식:

list

반환:

limit 튜플 목록. 각 문자 cord(c) 인덱스를 가진 이 목록에 (g, w) 항목을 가집니다. 튜플의 항목 g (정수)는 문자의 글리프 id이고, float w 는 정규화된 너비입니다. 일부 fontsize 에 대한 실제 너비는 w * fontsize 로 계산할 수 있습니다. simple fonts의 경우 g 항목은 항상 안전하게 무시할 수 있습니다. 다른 모든 경우 gc 를 그래픽으로 표현하는 기반입니다.

이 함수는 text 라는 문자열의 픽셀 너비를 계산합니다:

def pixlen(text, widthlist, fontsize):
    try:
        return sum([widthlist[ord(c)] for c in text]) * fontsize
    except IndexError:
        raise ValueError(f"max. code point found: {ord(max(text))}, increase limit")

Document.is_stream(xref)
  • 버전 1.14.14의 새로운 기능

PDF 전용: xref 로 표현된 객체가 stream 타입인지 확인합니다. PDF가 아니거나 숫자가 유효한 xref 범위를 벗어나면 False 를 반환합니다.

매개변수:

xref (int) – xref 번호.

반환:

객체 정의 뒤에 키워드 쌍 stream, endstream 으로 둘러싸인 데이터가 오면 True.


Document.get_new_xref()

xref 를 하나의 항목만큼 증가시키고 해당 번호를 반환합니다. 이것은 새 객체를 삽입하는 데 사용할 수 있습니다.

반환 형식:

int :returns: 새 xref 항목의 번호. PDF의 교차 참조 테이블에만 새 항목이 생성됩니다. 이 시점에는 아직 연결된 PDF 객체가 존재하지 않습니다. 이 번호로 (빈) 객체를 생성하려면 doc.update_xref(xref, "<<>>") 를 사용하세요.


Document.xref_length()

xref 테이블의 길이를 반환합니다.

반환 형식:

int

반환:

xref 테이블의 항목 수.


recover_quad(line_dir, span)

Page.get_text() 의 “dict” 또는 “rawdict” 옵션을 통해 추출된 텍스트 스팬의 사각형을 계산합니다.

매개변수:
  • line_dir (tuple) – 소유 라인의 line["dir"]. Page.get_texttrace() 에서 가져온 스팬의 경우 None 을 사용하세요.

  • span (dict) – 스팬.

반환:

스팬의 Quad, 텍스트 마커 주석(‘Highlight’ 등)에 사용 가능.


recover_char_quad(line_dir, span, char)

Page.get_text() 의 “rawdict” 옵션을 통해 추출된 텍스트 문자의 사각형을 계산합니다.

매개변수:
  • line_dir (tuple) – 소유 라인의 line["dir"]. Page.get_texttrace() 에서 가져온 스팬의 경우 None 을 사용하세요.

  • span (dict) – 스팬.

  • char (dict) – 문자.

반환:

문자의 Quad, 텍스트 마커 주석(‘Highlight’ 등)에 사용 가능.


recover_span_quad(line_dir, span, chars=None)

Page.get_text() 의 “rawdict” 옵션을 통해 추출된 스팬의 문자 하위 집합의 사각형을 계산합니다.

매개변수:
  • line_dir (tuple) – 소유 라인의 line["dir"]. Page.get_texttrace() 에서 가져온 스팬의 경우 None 을 사용하세요.

  • span (dict) – 스팬.

  • chars (list) – 고려할 문자. 주어진 경우 선택된 추출 옵션은 “rawdict”여야 합니다.

반환:

선택된 문자의 Quad, 텍스트 마커 주석(‘Highlight’ 등)에 사용 가능.


recover_line_quad(line, spans=None)

Page.get_text() 의 “dict” 또는 “rawdict” 옵션을 통해 추출된 텍스트 라인의 스팬 하위 집합의 사각형을 계산합니다.

매개변수:
  • line (dict) – 라인.

  • spans (list) – line["spans"] 의 하위 목록. 생략하면 전체 라인 쿼드가 반환됩니다.

반환:

선택된 라인 스팬의 Quad, 텍스트 마커 주석(‘Highlight’ 등)에 사용 가능.


get_tessdata(tessdata=None)

Tesseract 언어 지원 폴더 감지.

이 함수는 언어 지원 폴더가 직접 또는 환경 변수 TESSDATA_PREFIX에 지정되지 않은 경우에도 Tesseract를 통해 OCR을 활성화하는 데 사용됩니다.

  • <tessdata>가 설정되어 있으면 직접 반환합니다.

  • 그렇지 않으면 설정된 경우 os.environ['TESSDATA_PREFIX'] 를 반환합니다.

  • 그렇지 않으면 Tesseract 설치를 검색하고 언어 지원 폴더를 반환합니다.

  • 그렇지 않으면 예외를 발생시킵니다.


INFINITE_QUAD()
INFINITE_RECT()
INFINITE_IRECT()

(유일한) 무한 사각형 Rect(-2147483648.0, -2147483648.0, 2147483520.0, 2147483520.0) 또는 이에 해당하는 IRectQuad 를 반환합니다. 이것은 가능한 가장 큰 사각형입니다: 모든 유효한 사각형이 포함됩니다.


EMPTY_QUAD()
EMPTY_RECT()
EMPTY_IRECT()

“표준” 빈 및 유효하지 않은 사각형 Rect(2147483520.0, 2147483520.0, -2147483648.0, -2147483648.0) 또는 이에 해당하는 쿼드를 반환합니다. 왼쪽 위 및 오른쪽 아래 점 값이 무한 사각형과 비교하여 반대입니다. 예를 들어 page.get_text("dict") 딕셔너리에서 빈 bbox를 나타내는 데 사용됩니다. 그러나 무한히 많은 빈 또는 유효하지 않은 사각형이 있습니다.


colors_pdf_dict()

소문자 색상 이름을 (red, green, blue) 튜플에 매핑하는 딕셔너리를 반환하며, red, green, blue 는 0..1 범위의 float입니다.

colors_wx_list()

(colorname, red, green, blue) 튜플 목록을 반환하며, 여기서 colorname 은 대문자이고 red, green, blue 는 0..255 범위의 정수입니다.

This software is provided AS-IS with no warranty, either express or implied. This software is distributed under license and may not be copied, modified or distributed except as expressly authorized under the terms of that license. Refer to licensing information at artifex.com or contact Artifex Software Inc., 39 Mesa Street, Suite 108A, San Francisco CA 94129, United States for further information.