Tools

이 클래스는 주로 메모리 관리와 관련된 유틸리티 메서드 및 속성의 모음입니다. 사용을 단순화하고 속도를 높이기 위해 PyMuPDF가 가져올 때 TOOLS 라는 이름으로 자동 인스턴스화됩니다.

메서드 / 속성

설명

Tools.gen_id()

고유 식별자 생성

Tools.store_shrink()

저장 가능한 캐시 축소 [1]

Tools.mupdf_warnings()

누적된 MuPDF 경고 반환

Tools.mupdf_display_errors()

MuPDF 오류를 메시지로 표시할지 제어합니다.

Tools.mupdf_display_warnings()

MuPDF 경고를 메시지로 표시할지 제어합니다.

Tools.reset_mupdf_warnings()

MuPDF 경고/오류 메시지 버퍼 비우기.

Tools.set_aa_level()

안티앨리어싱 값 설정

Tools.set_annot_stem()

새 주석/링크 ID의 접두사 설정

Tools.set_small_glyph_heights()

작은 bbox 높이를 사용하여 검색 및 추출

Tools.set_subset_fontnames()

서브셋 글꼴 이름 태그 억제 제어

Tools.show_aa_level()

안티앨리어싱 값 반환

Tools.unset_quad_corrections()

PyMuPDF 전용 코드 비활성화

Tools.fitz_config

PyMuPDF의 구성 설정

Tools.store_maxsize

최대 저장 가능한 캐시 크기

Tools.store_size

현재 저장 가능한 캐시 크기

클래스 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.8descender=-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
>>>

각주

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.