DisplayList (디스플레이 리스트)

DisplayList는 그리기 명령(텍스트, 이미지 등)을 포함하는 리스트입니다. 목적은 두 가지입니다:

  1. 페이지 파싱을 줄이기 위한 캐싱 메커니즘으로

  2. 멀티스레딩 설정에서 데이터 구조로, 한 스레드는 페이지를 파싱하고 다른 스레드는 페이지를 렌더링합니다. 이 측면은 현재 PyMuPDF에서 지원되지 않습니다.

디스플레이 리스트는 일반적으로 Page.get_displaylist() 를 실행하여 페이지의 객체로 채워집니다. 독립적인 생성자도 존재합니다.

리스트를 “재생”하려면(한 번 또는 여러 번) 메서드 중 하나인 run(), get_pixmap() 또는 get_textpage() 를 호출하세요.

메서드

간략 설명

run()

디스플레이 리스트를 디바이스를 통해 실행합니다.

get_pixmap()

픽스맵 생성

get_textpage()

텍스트 페이지 생성

rect

디스플레이 리스트의 mediabox

클래스 API

class DisplayList
__init__(self, mediabox)

새 디스플레이 리스트를 생성합니다.

매개변수:

mediabox (Rect) – 페이지의 사각형.

반환 형식:

DisplayList

run(device, matrix, area)

디스플레이 리스트를 디바이스를 통해 실행합니다. 디바이스는 디스플레이 리스트를 “명령”(즉, 텍스트 추출 또는 이미지 생성)으로 채웁니다. 디스플레이 리스트는 나중에 문서 파일에서 다시 해석할 필요 없이 페이지를 여러 번 “읽는” 데 사용할 수 있습니다.

아래의 특수화된 실행 메서드 중 하나를 사용하는 것이 좋습니다 – get_pixmap() 또는 get_textpage().

매개변수:
  • device (Device (디바이스)) – Device

  • matrix (Matrix) – 디스플레이 리스트 콘텐츠에 적용할 변환 행렬.

  • area (Rect) – 리스트가 디바이스를 통해 실행될 때 이 영역 내에서 보이는 부분만 고려됩니다.

get_pixmap(matrix=pymupdf.Identity, colorspace=pymupdf.csRGB, alpha=0, clip=None)

디스플레이 리스트를 그리기 디바이스를 통해 실행하고 픽스맵을 반환합니다.

매개변수:
  • matrix (Matrix) – 사용할 행렬. 기본값은 항등 행렬입니다.

  • colorspace (Colorspace (색 공간)) – 원하는 색 공간. 기본값은 RGB입니다.

  • alpha (int) – 투명도 채널을 포함할지 여부를 결정합니다(0, 기본값은 포함하지 않음).

  • clip (irect_like) – DisplayList.rect 와 이 영역의 교집합으로 렌더링을 제한합니다.

반환 형식:

Pixmap

반환:

디스플레이 리스트의 픽스맵.

get_textpage(flags)

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

매개변수:

flags (int) – 텍스트 페이지로 파싱되는 정보를 제어하는 플래그입니다. PyMuPDF의 기본값은 3 = TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE 입니다. 즉, ligatures그대로 전달 되고, 공백은 그대로 전달 되며(공백으로 변환되지 않음), 이미지는 포함되지 않습니다. 글꼴 속성 를 참조하세요.

반환 형식:

TextPage

반환:

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

rect

디스플레이 리스트의 mediabox를 포함합니다. Page.get_displaylist() 를 통해 생성된 경우 페이지의 사각형과 같습니다.

유형:

Rect

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.