Tools¶
이 클래스는 주로 메모리 관리와 관련된 유틸리티 메서드 및 속성의 모음입니다. 사용을 단순화하고 속도를 높이기 위해 PyMuPDF가 가져올 때 TOOLS 라는 이름으로 자동 인스턴스화됩니다.
메서드 / 속성 |
설명 |
|---|---|
고유 식별자 생성 |
|
저장 가능한 캐시 축소 [1] |
|
누적된 MuPDF 경고 반환 |
|
MuPDF 오류를 메시지로 표시할지 제어합니다. |
|
MuPDF 경고를 메시지로 표시할지 제어합니다. |
|
MuPDF 경고/오류 메시지 버퍼 비우기. |
|
안티앨리어싱 값 설정 |
|
새 주석/링크 ID의 접두사 설정 |
|
작은 bbox 높이를 사용하여 검색 및 추출 |
|
서브셋 글꼴 이름 태그 억제 제어 |
|
안티앨리어싱 값 반환 |
|
PyMuPDF 전용 코드 비활성화 |
|
PyMuPDF의 구성 설정 |
|
최대 저장 가능한 캐시 크기 |
|
현재 저장 가능한 캐시 크기 |
클래스 API
- class Tools¶
- gen_id()¶
호출할 때마다 1씩 증가하는 고유한 양의 정수를 반환하는 편의 메서드입니다. 사용 예에는 데이터베이스에서 고유 키 생성이 포함됩니다. 생성은 타임스탬프 사용보다 한 자릿수 빠를 수 있습니다.
참고
MuPDF는 v1.14.0에서 이것에 대한 지원을 중단했으므로 다음과 같은 차이점이 있는 유사한 함수를 다시 구현했습니다:
MuPDF의 전역 컨텍스트의 일부가 아니며 스레드 안전하지 않습니다(PyMuPDF에서 어쨌든 스레드를 지원하지 않으므로 문제가 되지 않습니다).
int 로 구현됩니다. 즉, 최대 숫자는 sys.maxsize 입니다. 이 숫자가 초과되면 카운터가 1부터 다시 시작합니다.
- 반환 형식:
int
- 반환:
고유한 양의 정수.
- set_annot_stem(stem=None)¶
v1.18.6에서 새로 추가됨
새 주석, 필드 또는 링크의 ID 접두사를 설정하거나 조회합니다.
- 매개변수:
stem (str) – 생략하면 현재 값이 반환되며, 기본값은 “fitz”입니다. 주석, 필드/위젯 및 링크는 기술적으로 PDF 문서에서 동일한 객체 유형(
/Annot)의 하위 유형입니다./Annot객체는 페이지 내에서 고유 식별자를 가질 수 있습니다. 각 적용 가능한 하위 유형에 대해 PyMuPDF는 각각 “stem-Annn”, “stem-Wnnn” 또는 “stem-Lnnn” 식별자를 생성합니다. 숫자 “nnn”은 필요한 고유성을 강제하는 데 사용됩니다.- 반환 형식:
str
- 반환:
현재 값.
- set_small_glyph_heights(on=None)¶
v1.18.5에서 새로 추가됨
텍스트 추출 및 텍스트 검색 메서드에서 축소된 bbox 높이를 설정하거나 조회합니다.
- 매개변수:
on (bool) – 생략하거나
None이면 현재 설정이 반환됩니다. 다른 값의 경우 bool() 함수가 적용되어 전역 변수가 설정됩니다.True인 경우Page.search_for()및Page.get_text()메서드는 글꼴 크기 의 높이를 가진 문자, 스팬, 줄 또는 블록 bbox를 반환합니다.False인 경우(PyMuPDF를 가져올 때의 표준 설정) bbox 높이는 글꼴 속성을 기반으로 하며 일반적으로 줄 높이 와 같습니다.- 반환 형식:
bool
- 반환:
True또는False.
참고
MuPDF 코드를 직접 래핑하는 텍스트 추출 옵션 “xml”, “xhtml” 및 “html”은 이것의 영향을 받지 않습니다.
- set_subset_fontnames(on=None)¶
v1.18.9에서 새로 추가됨
텍스트 추출에서 서브셋 글꼴 이름 태그 억제를 제어합니다.
- 매개변수:
on (bool) – 생략/
None이면 현재 설정이 반환됩니다.True또는False로 평가되는 인수는 전역 변수를 설정합니다.True인 경우 옵션 “dict”, “json”, “rawdict” 및 “rawjson”은 예를 들어"NOHSJV+Calibri-Light"를 반환하고, 그렇지 않으면"Calibri-Light"만 반환합니다(기본값). 설정은 다시 변경될 때까지 유효합니다.- 반환 형식:
bool
- 반환:
True또는False.
참고
위에서 언급한 것 외에는 다른 텍스트 추출 변형은 이것의 영향을 받지 않습니다. 이것은 특히 MuPDF 코드를 기반으로 하는 옵션 “xml”, “xhtml” 및 “html”에 해당합니다. 이들은 글꼴 이름
"Calibri-Light"또는 패밀리 이름만 추출합니다 – 이 예에서는Calibri입니다.
- unset_quad_corrections(on=None)¶
v1.18.10에서 새로 추가됨
PyMuPDF 전용 코드를 활성화/비활성화합니다. 이 코드는
Page.get_text()텍스트 추출에서 의미 없는 내용을 만날 때 유효한 문자 quad를 재구성하려고 시도합니다. 이 코드는 특정 글꼴 속성(ascender 및 descender)에 의존하며, 이는 드문 상황에서 존재하지 않으며 접근하려고 할 때 세그멘테이션 오류를 일으킵니다. 이 메서드는 PyMuPDF에서 전역 매개변수를 설정하여 이 코드의 실행을 억제합니다.- 매개변수:
on (bool) – 생략하거나
None이면 현재 설정이 반환됩니다. 다른 값의 경우 bool() 함수가 적용되어 전역 변수가 설정됩니다.True인 경우 PyMuPDF는 해당 글꼴 속성에 접근하려고 시도하지 않고 대신ascender=0.8및descender=-0.2값을 사용합니다.- 반환 형식:
bool
- 반환:
True또는False.
- store_shrink(percent)¶
저장 가능한 캐시를 현재 크기의 백분율로 줄입니다.
- 매개변수:
percent (int) – 해제할 현재 크기의 백분율. 100 이상이면 저장소가 비워지고, 0이면 아무 일도 일어나지 않습니다. MuPDF의 캐싱 전략은 “최근에 사용되지 않은 것”이므로 사용 빈도가 낮은 요소가 먼저 삭제됩니다.
- 반환 형식:
int
- 반환:
새로운 현재 저장소 크기. 상황에 따라 크기 감소가 요청된 백분율보다 클 수 있습니다.
- show_aa_level()¶
버전 1.16.14에서 새로 추가됨
현재 안티앨리어싱 값을 반환합니다. 이 값들은 그래픽 및 텍스트 요소의 렌더링 품질을 제어합니다.
- 반환 형식:
dict
- 반환:
다음 초기 내용을 가진 딕셔너리:
{'graphics': 8, 'text': 8, 'graphics_min_line_width': 0.0}.
- set_aa_level(level)¶
버전 1.16.14에서 새로 추가됨
안티앨리어싱에 사용할 새로운 비트 수를 설정합니다. 현재 그래픽 및 텍스트 렌더링에 동일한 값이 사용됩니다. 이것은 향후 MuPDF 릴리스에서 변경될 수 있습니다.
- 매개변수:
level (int) – 0과 8 사이의 정수. 이 범위를 벗어난 값은 자동으로 유효한 값으로 변경됩니다. 값은 현재 세션 동안 또는 다시 변경될 때까지 유효합니다.
- reset_mupdf_warnings()¶
버전 1.16.0에서 새로 추가됨
MuPDF 경고 메시지 버퍼 비우기.
- mupdf_display_errors(value=None)¶
MuPDF 오류를 PyMuPDF 메시지로 표시할지 제어합니다.
- 매개변수:
value
None이면 현재 설정이 변경되지 않습니다.그렇지 않으면 현재 설정을
bool(value)로 변경합니다.True인 경우 향후 MuPDF 오류가 메시지 로 표시됩니다.이 설정과 관계없이 MuPDF 오류는 항상 경고 저장소에 저장됩니다.
PyMuPDF 를 가져올 때 이 값은
True입니다.
- 반환:
True또는False로 표시된 현재 설정.
버전 1.16.8에서 새로 추가됨
- mupdf_display_warnings(value=None)¶
MuPDF 경고를 PyMuPDF 메시지로 표시할지 제어합니다.
- 매개변수:
value
None이면 현재 설정이 변경되지 않습니다.그렇지 않으면 현재 설정을
bool(value)로 변경합니다.True인 경우 향후 MuPDF 경고가 메시지 로 표시됩니다.이 설정과 관계없이 MuPDF 경고는 항상 경고 저장소에 저장됩니다.
PyMuPDF 를 가져올 때 이 값은
True입니다.
- 반환:
True또는False로 표시된 현재 설정.
버전 1.16.8에서 새로 추가됨
- mupdf_warnings(reset=True)¶
버전 1.16.0에서 새로 추가됨
줄바꿈이 섞인 문자열로 저장된 모든 MuPDF 메시지를 반환합니다.
- 매개변수:
reset (bool) – (버전 1.16.7에서 새로 추가됨) 저장소를 자동으로 비울지 여부.
- fitz_config¶
PyMuPDF 및 MuPDF 구성에 사용되는 실제 값을 포함하는 딕셔너리. 설치 장도 참조하세요. 이것은 각 키가 지원 측면의 상태를 설명하는 키의 개요입니다.
키
다음에 대한 지원 포함 …
plotter-g
회색 색 공간 렌더링
plotter-rgb
RGB 색 공간 렌더링
plotter-cmyk
CMYK 색 공간 렌더링
plotter-n
오버프린트 렌더링
pdf
PDF 문서
xps
XPS 문서
svg
SVG 문서
cbz
CBZ 문서
img
IMG 문서
html
HTML 문서
epub
EPUB 문서
jpx
JPEG2000 이미지
js
JavaScript
tofu
모든 TOFU 글꼴
tofu-cjk
CJK 글꼴 서브셋 (중국, 일본, 한국)
tofu-cjk-ext
CJK 글꼴 확장
tofu-cjk-lang
CJK 글꼴 언어 확장
tofu-emoji
TOFU 이모지 글꼴
tofu-historic
TOFU 역사적 글꼴
tofu-symbol
TOFU 기호 글꼴
tofu-sil
TOFU SIL 글꼴
icc
ICC 프로필
py-memory
Python 메모리 관리 사용 [2]
base14
Base-14 글꼴 (항상 true여야 함)
“TOFU” 용어에 대한 설명은 이 위키피디아 기사 를 참조하세요:
In [1]: import pymupdf In [2]: TOOLS.fitz_config Out[2]: {'plotter-g': True, 'plotter-rgb': True, 'plotter-cmyk': True, 'plotter-n': True, 'pdf': True, 'xps': True, 'svg': True, 'cbz': True, 'img': True, 'html': True, 'epub': True, 'jpx': True, 'js': True, 'tofu': False, 'tofu-cjk': True, 'tofu-cjk-ext': False, 'tofu-cjk-lang': False, 'tofu-emoji': False, 'tofu-historic': False, 'tofu-symbol': False, 'tofu-sil': False, 'icc': True, 'py-memory': False, 'base14': True}
- 반환 형식:
dict
- store_maxsize¶
최대 저장 가능한 캐시 크기(바이트). PyMuPDF 는 268’435’456(256 MB, 기본값) 값으로 생성되므로 여기서 항상 이 값을 볼 수 있습니다. 이 값이 0이면 “무제한” 증가가 허용됩니다.
- 반환 형식:
int
- store_size¶
현재 저장 가능한 캐시 크기(바이트). 이 값은 PyMuPDF 함수를 사용할 때마다 변경될 수 있으며(일반적으로 증가)
Tools.store_maxsize가 초과될 때만 (자동으로) 감소합니다. 이 경우 MuPDF 는 값이 다시 범위 내에 있을 때까지 사용 빈도가 낮은 객체를 제거합니다.- 반환 형식:
int
예제 세션¶
>>> import pymupdf
# print the maximum and current cache sizes
>>> pymupdf.TOOLS.store_maxsize
268435456
>>> pymupdf.TOOLS.store_size
0
>>> doc = pymupdf.open("demo1.pdf")
# pixmap creation puts lots of object in cache (text, images, fonts),
# apart from the pixmap itself
>>> pix = doc[0].get_pixmap(alpha=False)
>>> pymupdf.TOOLS.store_size
454519
# release (at least) 50% of the storage
>>> pymupdf.TOOLS.store_shrink(50)
13471
>>> pymupdf.TOOLS.store_size
13471
# get a few unique numbers
>>> pymupdf.TOOLS.gen_id()
1
>>> pymupdf.TOOLS.gen_id()
2
>>> pymupdf.TOOLS.gen_id()
3
# close document and see how much cache is still in use
>>> doc.close()
>>> pymupdf.TOOLS.store_size
0
>>>
각주
