Annot (주석)¶
PDF 전용 클래스.
Adobe PDF 참조 에서 인용:
“주석은 노트, 사운드 또는 동영상과 같은 객체를 PDF 문서 페이지의 위치와 연결하거나 마우스와 키보드를 통해 사용자와 상호 작용하는 방법을 제공합니다.”
주석과 페이지 사이에는 부모-자식 관계가 있습니다. 페이지 객체가 사용할 수 없게 되면(문서 닫기, 문서 구조 변경 등), 기존의 모든 주석 객체도 사용할 수 없게 됩니다 – 주석 속성 또는 메서드에 액세스할 때마다 객체가 “고아”라는 예외가 발생합니다.
속성 |
간단한 설명 |
|---|---|
모든 응답 주석 삭제 |
|
첨부 파일 내용 가져오기 |
|
주석의 이미지를 pixmap으로 가져오기 |
|
오디오 주석의 사운드 가져오기 |
|
주석 텍스트 추출 |
|
주석 텍스트 추출 |
|
주석에 대한 TextPage 생성 |
|
주석의 테두리 속성 설정 |
|
주석의 블렌드 모드 설정 |
|
주석의 색상 설정 |
|
주석의 플래그 필드 설정 |
|
주석을 “답변 대상”으로 정의 |
|
주석의 이름 필드 설정 |
|
투명도 변경 |
|
주석 또는 팝업 열기 / 닫기 |
|
주석에 대한 팝업 생성 |
|
주석 사각형 변경 |
|
회전 변경 |
|
첨부 파일 내용 업데이트 |
|
누적된 주석 변경 사항 적용 |
|
주석 BlendMode |
|
테두리 세부 사항 |
|
테두리 / 배경 및 채우기 색상 |
|
첨부 파일 정보 가져오기 |
|
주석 플래그 |
|
주석에 팝업이 있는지 여부 |
|
이 주석이 응답하는 주석 |
|
다양한 정보 |
|
주석 또는 팝업이 열려 있는지 여부 |
|
라인 타입 주석의 시작 / 끝 모양 |
|
다음 주석에 대한 링크 |
|
주석의 투명도 |
|
주석의 페이지 객체 |
|
주석 팝업의 사각형 |
|
주석 팝업의 PDF |
|
주석을 포함하는 사각형 |
|
주석 타입 |
|
폴리곤, 폴리라인 등의 포인트 좌표 |
|
PDF |
클래스 API
- class Annot¶
- get_pixmap(matrix=pymupdf.Identity, dpi=None, colorspace=pymupdf.csRGB, alpha=False)¶
v1.19.2에서 변경됨: dpi 매개변수 지원 추가.
변환되지 않은 좌표에서 페이지에 표시되는 대로 주석에서 pixmap을 생성합니다. pixmap의 IRect 는 Annot.rect.irect 와 같습니다(아래 참조). 모든 매개변수는 키워드 전용입니다.
- 매개변수:
matrix (matrix_like) – 이미지 생성에 사용할 행렬. 기본값은 Identity 입니다.
dpi (int) – (v1.19.2의 새로운 기능) 인치당 도트 단위의 원하는 해상도.
None이 아니면 matrix 매개변수는 무시됩니다.colorspace (Colorspace (색 공간)) – 이미지 생성에 사용할 색상 공간. 기본값은
pymupdf.csRGB입니다.alpha (bool) – 투명도 정보를 포함할지 여부. 기본값은
False입니다.
- 반환 형식:
참고
주석이 방금 생성되었거나 수정된 경우
page = doc.reload_page(page)를 통해 먼저Document.reload_page()를 사용해야 합니다.alpha=True인 경우 픽스맵은 “premultiplied” 픽셀을 가집니다. 배경에 대해 알아보려면 예를 들어 이 온라인 용어집 에서 “Premultiplied alpha”를 찾아보세요.
- get_text(opt, clip=None, flags=None)¶
1.18.0의 새로운 기능
다양한 형식으로 주석의 콘텐츠를 검색합니다 – Page 의 동일한 메서드와 매우 유사합니다. 현재는 주석 타입 ‘FreeText’ 및 ‘Stamp’에 대해서만 관련 데이터를 제공합니다. 다른 타입은 빈 문자열(또는 해당 객체)을 반환합니다.
- 매개변수:
opt (str) –
(위치 전용) 원하는 형식 - 다음 값 중 하나. 이 메서드는 Page 의 동일한 이름의 메서드와 정확히 동일하게 작동합니다.
”text” –
TextPage.extractTEXT(), 기본값”blocks” –
TextPage.extractBLOCKS()”words” –
TextPage.extractWORDS()”html” –
TextPage.extractHTML()”xhtml” –
TextPage.extractXHTML()”xml” –
TextPage.extractXML()”dict” –
TextPage.extractDICT()”json” –
TextPage.extractJSON()”rawdict” –
TextPage.extractRAWDICT()
clip (rect-like) – (키워드 전용) 추출을 이 영역으로 제한합니다. 거의 필요하지 않으며, 기본값은
Annot.rect입니다.flags (int) – (키워드 전용) 반환되는 데이터 양을 제어합니다. 기본값은 간단한 텍스트 추출입니다.
- get_textbox(rect)¶
1.18.0의 새로운 기능
주석 텍스트를 반환합니다. 대부분(줄바꿈 제외) “text” 옵션을 사용하는
Annot.get_text()와 동일합니다.- 매개변수:
rect (rect-like) – 고려할 영역, 기본값은
Annot.rect입니다.
- get_textpage(clip=None, flags=3)¶
주석에 대한 TextPage 생성.
- 매개변수:
flags (int) – 후속 텍스트 추출 및 검색에 사용 가능한 콘텐츠를 제어하는 표시기 비트 –
Annot.get_text()의 매개변수 참조.clip (rect-like) – 추출된 텍스트를 이 영역으로 제한합니다.
- 반환:
Show/hide history
v1.25.5:
clip인수 수정.
- set_info(info=None, content=None, title=None, creationDate=None, modDate=None, subject=None)¶
버전 1.16.10에서 변경됨
주석 속성을 변경합니다. 날짜, 내용, 제목 및 작성자(제목)가 포함됩니다. name 및 id 에 대한 변경은 무시됩니다. 업데이트는 선택적으로 수행됩니다: 속성을 변경하지 않으려면
None으로 설정하세요. 기존 데이터를 삭제하려면 빈 문자열을 사용하세요.- 매개변수:
info (dict) – info 속성과 호환되는 딕셔너리(아래 참조). 모든 항목은 문자열이어야 합니다. 이 인수가 딕셔너리가 아니면 다른 인수가 대신 사용됩니다 – 그렇지 않으면 무시됩니다.
content (str) – (v1.16.10의 새로운 기능)
info의 설명을 참조하세요.title (str) – (v1.16.10의 새로운 기능)
info의 설명을 참조하세요.creationDate (str) – (v1.16.10의 새로운 기능) 주석 생성 날짜. 주어진 경우 PDF 날짜/시간 형식이어야 합니다.
modDate (str) – (v1.16.10의 새로운 기능) 마지막 수정 날짜. 주어진 경우 PDF 날짜/시간 형식이어야 합니다.
subject (str) – (v1.16.10의 새로운 기능)
info의 설명을 참조하세요.
- set_line_ends(start, end)¶
주석의 라인 끝 스타일을 설정합니다. 이러한 주석 타입 각각은 라인으로 연결된 포인트 목록으로 정의됩니다. start 로 식별된 심볼은 첫 번째 포인트에 첨부되고, end 는 이 목록의 마지막 포인트에 첨부됩니다. 지원되지 않는 주석 타입의 경우 경고 메시지와 함께 작업이 수행되지 않습니다.
참고
일부 심볼에는 내부 영역(다이아몬드, 원, 사각형 등)이 있습니다. 이러한 영역은 주석 타입에 따라 채우기 색상 또는 스트로크 색상으로 채워집니다.
- 매개변수:
start (int) – 첫 번째 포인트의 심볼 번호.
end (int) – 마지막 포인트의 심볼 번호.
- set_oc(xref)¶
PDF 선택적 콘텐츠 메커니즘을 사용하여 주석의 가시성을 설정합니다. 이 가시성은 지원하는 PDF 뷰어의 사용자 인터페이스에 의해 제어됩니다.
Annot.flags와 같은 다른 속성과는 독립적입니다.- 매개변수:
xref (int) – 선택적 콘텐츠 그룹(OCG 또는 OCMD)의
xref. 이전 xref는 덮어씌워집니다. 0이면 이전 항목이 제거됩니다. xref가 0이 아니고 유효한 PDF 객체를 가리키지 않으면 예외가 발생합니다.
참고
이것은 효과를 적용하기 위해
Annot.update()실행이 필요하지 않습니다.
- set_irt_xref(xref)¶
v1.19.3의 새로운 기능
주석을 다른 주석에 대한 “답변 대상”으로 설정합니다.
- set_open(value)¶
v1.18.4의 새로운 기능
주석의 Popup 주석을 열거나 닫도록 설정합니다 – 또는 타입이 ‘Text’(“sticky note”)인 경우 주석 자체를 설정합니다.
- 매개변수:
value (bool) – 원하는 열림 상태.
- set_popup(rect)¶
v1.18.4의 새로운 기능
주석에 대한 Popup 주석을 생성하고 사각형을 지정합니다. Popup이 이미 존재하면 사각형만 업데이트됩니다.
- 매개변수:
rect (rect_like) – 원하는 사각형.
- set_opacity(value)¶
주석의 투명도를 설정합니다. 불투명도는
Annot.update()에서도 설정할 수 있습니다.- 매개변수:
value (float) – [0, 1] 범위의 float. 범위 밖의 값은 1로 간주됩니다. 예를 들어 0.5 값은 투명도를 50%로 설정합니다.
각 불투명도가 0.5로 설정된 세 개의 겹치는 ‘Circle’ 주석:
- blendmode¶
v1.18.4의 새로운 기능
주석의 블렌드 모드. 설명은 Adobe PDF 참조, 324페이지를 참조하세요.
- 반환 형식:
str
- 반환:
블렌드 모드 또는
None.
- set_blendmode(blendmode)¶
v1.16.14의 새로운 기능
주석의 블렌드 모드를 설정합니다. 설명은 Adobe PDF 참조, 324페이지를 참조하세요. 블렌드 모드는
Annot.update()에서도 설정할 수 있습니다.- 매개변수:
blendmode (str) – 블렌드 모드를 설정합니다. 시각적 모양에 반영하려면
Annot.update()를 사용하세요. 미리 정의된 값은 PDF 표준 블렌드 모드 를 참조하세요. 블렌드 모드를 제거 하려면PDF_BM_Normal을 사용하세요.
- set_name(name)¶
버전 1.16.0의 새로운 기능
모든 주석 타입의 이름 필드를 변경합니다. ‘FileAttachment’ 및 ‘Text’ 주석의 경우 이것은 아이콘 이름이고, ‘Stamp’ 주석의 경우 스탬프의 텍스트입니다. 시각적 결과(있는 경우)는 PDF 뷰어에 따라 다릅니다. MuPDF의 주석 아이콘 도 참조하세요.
- 매개변수:
name (str) – 새 이름.
조심
‘Stamp’ 주석의 이름을 설정하면 사각형이 변경되지 않으며, 텍스트도 어떤 방식으로도 레이아웃되지 않습니다. 스탬프 주석 아이콘 에서 표준 텍스트를 선택하는 경우(
"STAMP_"뒤의 정확한 이름 부분), 원래 레이아웃을 받아야 합니다. 임의의 텍스트 는 대문자로 변경되지 않지만, 그대로 “Times-Bold” 글꼴로 작성되며 한 줄 에 가로로 중앙 정렬되고 맞추기 위해 단축됩니다. 텍스트가 완전히 표시되도록 하려면fontsize20을 사용한 길이가 190포인트를 초과하지 않아야 합니다. 따라서 다음 부등식이 참인지 확인하세요:pymupdf.get_text_length(text, fontname="tibo", fontsize=20) <= 190.
- set_rect(rect)¶
주석의 사각형을 변경합니다. 주석을 이동할 수 있고 사각형의 양쪽을 독립적으로 확장할 수 있습니다. 그러나 주석 모양은 회전, 뒤집기 또는 기울임이 되지 않습니다. 이 메서드는 특정 주석 타입 [#f2]_에만 영향을 미치며 다른 경우에는 Python의
sys.stderr에 메시지가 표시됩니다. 예외는 발생하지 않지만False가 반환됩니다.- 매개변수:
rect (rect_like) – 주석의 새 사각형(유한하고 비어 있지 않음). 예를 들어 annot.rect + (5, 5, 5, 5) 값을 사용하면 주석 위치가 오른쪽과 아래로 5픽셀 이동합니다.
참고
효과를 활성화하기 위해
Annot.update()를 호출할 필요가 없습니다.
- set_rotation(angle)¶
주석의 회전을 설정합니다. 이것은 중심점을 중심으로 주석 사각형을 회전시킵니다. 그런 다음 결과 쿼드에서 새 주석 사각형 이 계산됩니다.
- 매개변수:
angle (int) – 도 단위의 회전 각도. 임의의 값이 가능하지만
[0, 360)구간으로 제한됩니다.
참고
효과를 활성화하려면
Annot.update()를 호출해야 합니다.PDF_ANNOT_FREE_TEXT의 경우 0, 90, 180, 270 값 중 하나만 가능하며 현재 사각형 내에서 텍스트를 회전 시킵니다(사각형은 변경되지 않음). 다른 값은 조용히 무시되고 0으로 대체됩니다.
그렇지 않으면 다음 주석 유형 만 회전할 수 있습니다: ‘Square’, ‘Circle’, ‘Caret’, ‘Text’, ‘FileAttachment’, ‘Ink’, ‘Line’, ‘Polyline’, ‘Polygon’, ‘Stamp’. 다른 모든 경우 메서드는 작업을 수행하지 않습니다.
- set_border(border=None, width=None, style=None, dashes=None, clouds=None)¶
버전 1.16.9에서 변경됨: 딕셔너리를 사용하지 않고 지정할 수 있습니다. border 가 딕셔너리가 아니면 직접 매개변수가 사용됩니다.
버전 1.22.5에서 변경됨: “cloudy” 테두리 효과 지원.
PDF 전용: 테두리 너비, 파선, 스타일 및 클라우드 효과를 변경합니다. 자세한 내용은
Annot.border속성을 참조하세요.- 매개변수:
border (dict) –
border속성에서 반환된 딕셔너리, 키는 “width” (float), “style” (str), “dashes” (sequence), clouds (int). 생략된 키는 해당 속성을 변경하지 않습니다. 다른 인수를 사용하려면 border 인수를None(기본값)으로 설정하세요.width (float) – 음수가 아닌 값은 테두리 선 너비를 변경합니다.
style (str) –
None이 아닌 값은 이 테두리 속성을 변경합니다.dashes (sequence) – 시퀀스의 모든 항목은 정수여야 하며, 그렇지 않으면 매개변수가 무시됩니다. 파선을 제거하려면
dashes=[]를 사용하세요. dashes가 비어 있지 않은 시퀀스인 경우 “style”이 자동으로 “D”(파선)로 설정됩니다.clouds (int) – >= 0 값은 이 속성을 변경합니다. 클라우드 모양을 완전히 제거하려면
clouds=0을 사용하세요. 이 속성은 주석 타입 ‘Square’, ‘Circle’, ‘Polygon’에서만 지원됩니다.
- set_flags(flags)¶
주석 플래그를 변경합니다. 여러 개를 결합하려면
|연산자를 사용하세요.- 매개변수:
flags (int) – 필요한 플래그를 지정하는 정수.
- set_colors(colors=None, stroke=None, fill=None)¶
지원되는 주석 타입에 대한 “stroke” 및 “fill” 색상을 변경합니다 – 모든 주석 타입이 둘 다 허용하는 것은 아닙니다. FreeText 주석에는 이 메서드를 전혀 사용하지 마세요 최대 3개의 색상(테두리, 채우기, 텍스트)을 처리하는 특별한 규칙이 있기 때문입니다.
- 매개변수:
colors (dict) – 색상 지정을 포함하는 딕셔너리. 허용되는 딕셔너리 키와 값은 아래를 참조하세요. 가장 실용적인 방법은 먼저 colors 속성의 복사본을 만든 다음 필요에 따라 이 딕셔너리를 수정하는 것입니다.
stroke (sequence) – 위를 참조하세요.
fill (sequence) – 위를 참조하세요.
색상 지정을 완전히 제거하려면
[]와 같은 빈 시퀀스를 사용하세요.None을 지정하면 기존 지정이 변경되지 않습니다.
- delete_responses()¶
버전 1.16.12의 새로운 기능
이 주석을 참조하는 주석을 삭제합니다. 여기에는 모든 ‘Popup’ 주석과 이에 응답하는 모든 주석이 포함됩니다.
- update(opacity=None, blend_mode=None, fontsize=0, text_color=None, border_color=None, fill_color=None, cross_out=True, rotate=-1)¶
관련 변경 후 주석의 모양을 속성과 동기화합니다.
다음 변경 사항에 대해서만 이 메서드를 안전하게 생략 할 수 있습니다:
Annot.set_info()(“content” 에 대한 변경 제외)
모든 인수는 선택 사항입니다. (v1.16.14에서 변경됨) 블렌드 모드와 불투명도는 모든 주석 타입 에 적용됩니다. 다른 인수는 아래에 설명된 대로 대부분 특수 용도입니다.
색상 지정은 PyMuPDF에서 사용하는 일반 형식으로 0.0부터 1.0까지(둘 다 포함)의 float 시퀀스로 만들 수 있습니다. 시퀀스 길이는 1, 3 또는 4여야 합니다(각각 GRAY, RGB 및 CMYK 색상 공간 지원). GRAY의 경우 단일 float도 허용됩니다.
- 매개변수:
opacity (float) – (v1.16.14의 새로운 기능) 모든 주석 타입에 유효: 주석의 투명도를 변경하거나 설정합니다. 유효한 값은 0 <= opacity < 1 입니다.
blend_mode (str) – (v1.16.14의 새로운 기능) 모든 주석 타입에 유효: 주석의 블렌드 모드를 변경하거나 설정합니다. 유효한 값은 PDF 표준 블렌드 모드 를 참조하세요.
fontsize (float) – 텍스트의
fontsize변경. ‘FreeText’ 주석만 해당.text_color (sequence,float) – 텍스트 색상 변경. ‘FreeText’ 주석만 해당. 이것은
border_color와 동일한 효과를 가집니다. 리치 텍스트 주석의 텍스트 색상은 HTML / CSS 구문에 의해 설정되고 텍스트 자체의 일부이기 때문에 전혀 변경할 수 없습니다.border_color (sequence,float) – 테두리 색상 변경. ‘FreeText’ 주석만 해당. 이것은
text_color와 동일한 효과를 가집니다.fill_color (sequence,float) – 채우기 색상.
cross_out (bool) – (v1.17.2의 새로운 기능) 주석 사각형에 두 개의 대각선을 추가합니다. ‘Redact’ 주석만 해당. 원하지 않는 경우 주석이
False로 생성되었더라도False를 지정해야 합니다.rotate (int) – 새 회전 값. 기본값(-1)은 변경 없음을 의미합니다. ‘FreeText’ 및 여러 다른 주석 타입을 지원합니다(
Annot.set_rotation()참조), [1]. ‘FreeText’의 경우 0, 90, 180 또는 270도만 선택하세요. 그렇지 않으면 모든 정수가 허용됩니다.
- 반환 형식:
bool
이 메서드는 FreeText 주석의 색상을 변경하는 유일한 방법입니다. 이 목적을 위해
Annot.set_colors()를 사용할 수 없습니다. 그러나 리치 텍스트 주석의 경우 텍스트 색상은 절대 변경되지 않습니다. 텍스트 색상은info딕셔너리의text_color항목에 의해 설정됩니다. 이것은 MuPDF 의 제한 사항이며 버그가 아닙니다.조심
Page.annots()루프 내에서 이 메서드를 사용하는 것은 권장되지 않습니다! 대부분의 주석 업데이트는 소유 페이지를 다시 로드해야 하기 때문입니다 – 이 루프 내에서는 수행할 수 없습니다. 이 생성자의 문서에 제공된 예제 코딩 패턴을 사용하세요.
- file_info¶
주석의 첨부 파일에 대한 기본 정보.
- 반환 형식:
dict
- 반환:
FileAttachment 주석 타입의 경우 filename, ufilename, desc (설명), size (압축되지 않은 파일 크기), length (압축된 길이) 키를 가진 딕셔너리, 그렇지 않으면
None.
- get_file()¶
첨부 파일 내용을 반환합니다.
- 반환 형식:
bytes
- 반환:
첨부 파일의 내용.
- update_file(buffer=None, filename=None, ufilename=None, desc=None)¶
첨부 파일의 내용을 업데이트합니다. 모든 인수는 선택 사항입니다. 인수가 없으면 작업이 수행되지 않습니다.
- 매개변수:
buffer (bytes|bytearray|BytesIO) –
새 파일 내용. 메타 정보만 변경하려면 생략하세요.
(버전 1.14.13에서 변경됨) io.BytesIO 도 이제 지원됩니다.
filename (str) – 파일과 연결할 새 파일 이름.
ufilename (str) – 파일과 연결할 새 유니코드 파일 이름.
desc (str) – 파일 내용에 대한 새 설명.
- get_sound()¶
오디오 주석의 포함된 사운드를 반환합니다.
- 반환 형식:
dict
- 반환:
사운드 오디오 파일 및 관련 속성. 가능한 딕셔너리 키는 다음과 같으며, “rate”와 “stream”만 항상 존재합니다.
키
설명
rate
(float, 필수) 초당 샘플 수
channels
(int, 선택) 사운드 채널 수
bps
(int, 선택) 채널당 샘플 값당 비트 수
encoding
(str, 선택) 인코딩 형식: Raw, Signed, muLaw, ALaw
compression
(str, 선택) 압축 필터 이름
stream
(bytes, 필수) 사운드 파일 내용
- opacity¶
주석의 투명도. 설정된 경우 [0, 1] 범위의 값입니다. PDF 기본값은 1입니다. 그러나 차이를 구분하기 위해 설정되지 않은 경우 -1.0 을 반환합니다.
- 반환 형식:
float
- rotation¶
주석 회전.
- 반환 형식:
int
- 반환:
[-1, 359] 값. 회전이 전혀 없는 경우 -1이 반환됩니다(회전 각도 0을 의미). 다른 가능한 값은 0 <= angle < 360 값으로 정규화됩니다.
- next¶
이 페이지의 다음 주석 또는 None.
- 반환 형식:
Annot
- type¶
주석 타입을 설명하는 숫자와 하나 또는 두 개의 문자열, 예: [2, ‘FreeText’, ‘FreeTextCallout’]. 두 번째 문자열 항목은 선택 사항이며 비어 있을 수 있습니다. 가능한 값과 의미 목록은 부록 주석 유형 를 참조하세요.
- 반환 형식:
list
- info¶
다양한 정보를 포함하는 딕셔너리. 모든 필드는 선택적 문자열입니다. 제공되지 않은 정보 항목의 경우 빈 문자열이 반환됩니다.
name – 예를 들어 ‘Stamp’ 주석의 경우 “Sold” 또는 “Experimental”와 같은 스탬프 텍스트를 포함하고, 다른 주석 타입의 경우 여기에서 주석 아이콘의 이름을 볼 수 있습니다(FileAttachment의 경우 “PushPin”).
content – Text 및 FreeText 주석에 대한 텍스트를 포함하는 문자열. 주석 팝업 창의 텍스트 필드를 채우는 데 일반적으로 사용됩니다.
title – 주석 팝업 창의 제목을 포함하는 문자열. 규칙에 따라 이것은 주석 작성자 에 사용됩니다.
creationDate – 생성 타임스탬프.
modDate – 마지막 수정 타임스탬프.
subject – 제목.
id – (버전 1.16.10의 새로운 기능) 주석의 고유 식별자. 이것은 PDF 키 /NM 에서 가져옵니다. PyMuPDF로 추가된 주석은 여기에 나타나는 고유한 이름을 가집니다.
- 반환 형식:
dict
- flags¶
하위 비트에 주석을 표시하는 방법에 대한 플래그를 포함하는 정수.
- 반환 형식:
int
- line_ends¶
‘FreeText’, ‘Line’, ‘PolyLine’, ‘Polygon’ 주석 타입의 시작 및 끝 심볼을 지정하는 정수 쌍. 적용되지 않는 경우
None. 이 목록의 가능한 값과 설명은 Adobe PDF 참조, 400페이지의 표 1.76을 참조하세요.- 반환 형식:
tuple
- vertices¶
다양한 타입의 주석에 대한 가변 개수의 포인트(“vertices”) 좌표(각각 float 쌍으로 제공)를 포함하는 목록:
‘Line’ – 시작 및 종료 좌표(2개의 float 쌍).
‘FreeText’ – 시작, (선택적) 무릎 포인트, 종료 좌표를 지정하는 2개 또는 3개의 float 쌍.
‘PolyLine’ / ‘Polygon’ – 라인 조각으로 연결된 가장자리의 좌표(n개 포인트에 대해 n개의 float 쌍).
텍스트 마크업 주석 – 표시된 텍스트 스팬의 QuadPoints 를 지정하는 4개의 float 쌍(Adobe PDF 참조, 403페이지 참조).
‘Ink’ – 하나에서 많은 개수의 정점 좌표 하위 목록 목록. 각 하위 목록은 그리기의 별도 라인을 나타냅니다.
- 반환 형식:
list
- colors¶
0 <= float <= 1 범위의 float 두 목록으로 “stroke” 및 내부(“fill”) 색상을 지정하는 딕셔너리. 스트로크 색상은 테두리와 활성적으로 그려지거나 작성된 모든 것(“stroked”)에 사용됩니다. 채우기 색상은 라인 끝, 원 및 사각형과 같은 객체의 내부에 사용됩니다. 이러한 목록의 길이는 암묵적으로 사용되는 색상 공간을 결정합니다: 1 = GRAY, 3 = RGB, 4 = CMYK. 따라서 “[1.0, 0.0, 0.0]”은 RGB 색상 빨강을 나타냅니다. 색상이 지정되지 않은 경우 두 목록 모두 비어 있을 수 있습니다. 잠재적으로 예상치 못한 경우에 유의하세요:
Highlight 주석의 색상은 직관과 반대로 stroke 색상입니다.
FreeText 주석의 색상은 stroke 색상이지만, 사각형과 모든 적용 가능한 라인 끝 심볼을 채우는 색상으로 나타납니다. 텍스트 색상과 테두리 색상은 전혀 액세스할 수 없습니다.
- 반환 형식:
dict
- has_popup¶
주석에 Popup 주석이 있는지 여부.
- 반환 형식:
bool
- is_open¶
주석의 Popup이 열려 있는지 여부 – 또는 주석 자체(‘Text’ 주석만 해당).
- 반환 형식:
bool
- rect_delta¶
주석의
/RD항목을 나타내는 4개의 float 튜플. 네 숫자는 두 사각형(주석의rect와 그 사각형 내에 포함된 사각형) 사이의 수치 차이(왼쪽, 위쪽, -오른쪽, -아래쪽)를 설명합니다. 항목이 없으면 이 속성은(0, 0, 0, 0)입니다. 주석 테두리가 일반적인 직선인 경우, 이러한 숫자는 일반적으로 테두리 너비를 2로 나눈 값입니다. 주석에 “cloudy” 테두리가 있으면 여기에서 클라우드 반원의 폭을 볼 수 있습니다. 일반적으로 숫자가 동일할 필요는 없습니다. 내부 사각형을 계산하려면a.rect + a.rect_delta를 수행하세요.
- border¶
테두리 특성을 포함하는 딕셔너리. 테두리 정보가 없으면 비어 있습니다. 다음 키가 있을 수 있습니다:
width – 포인트 단위의 테두리 두께를 나타내는 float. 너비가 지정되지 않으면 값은 -1.0입니다.
dashes – 라인 파선 패턴을 지정하는 정수 시퀀스. [] 는 파선 없음을 의미하고, [n] 는 n 포인트의 동일한 on-off 길이를 의미하며, 더 긴 목록은 교대 on-off 길이 값을 지정하는 것으로 해석됩니다. 자세한 내용은 Adobe PDF 참조 126페이지를 참조하세요.
style – 1바이트 테두리 스타일: “S” (Solid) = 주석을 둘러싸는 실선, “D” (Dashed) = 주석을 둘러싸는 파선, 파선 패턴은 dashes 항목으로 지정됨, “B” (Beveled) = 페이지 표면 위에 올라간 것처럼 보이는 시뮬레이션된 볼록 사각형, “I” (Inset) = 페이지 표면 아래로 움푹 들어간 것처럼 보이는 시뮬레이션된 조각 사각형, “U” (Underline) = 주석 사각형의 하단을 따른 단일 라인.
clouds – “cloudy” 테두리를 나타내는 정수, 여기서
n은 정수-1 <= n <= 2. 값n = 0은 직선(클라우드 없음)을 나타내고, 1은 작은 반원을, 2는 큰 반원을 의미하여 클라우드 모양을 모방합니다. -1이면 지정이 없습니다.
- 반환 형식:
dict
MuPDF의 주석 아이콘¶
이것은 ‘Text’ 및 ‘FileAttachment’ 주석 타입에 대해 이름으로 참조할 수 있는 아이콘 목록입니다. 주석을 추가할 때 icon 매개변수를 통해 사용하거나 Annot.set_name() 의 인수로 사용할 수 있습니다. 어떤 항목을 선택할지는 사용자의 재량에 맡겨집니다 – 예를 들어 ‘FileAttachment’에 “Speaker” 아이콘을 사용하는 것을 막는 메커니즘은 없습니다.
예제¶
주석의 그래픽 이미지를 변경합니다. 또한 팝업 창에 표시될 “author” 및 텍스트를 업데이트합니다:
doc = pymupdf.open("circle-in.pdf")
page = doc[0] # page 0
annot = page.first_annot # get the annotation
annot.set_border(dashes=[3]) # set dashes to "3 on, 3 off ..."
# set stroke and fill color to some blue
annot.set_colors({"stroke":(0, 0, 1), "fill":(0.75, 0.8, 0.95)})
info = annot.info # get info dict
info["title"] = "Jorj X. McKie" # set author
# text in popup window ...
info["content"] = "I changed border and colors and enlarged the image by 20%."
info["subject"] = "Demonstration of PyMuPDF" # some PDF viewers also show this
annot.set_info(info) # update info dict
r = annot.rect # take annot rect
r.x1 = r.x0 + r.width * 1.2 # new location has same top-left
r.y1 = r.y0 + r.height * 1.2 # but 20% longer sides
annot.set_rect(r) # update rectangle
annot.update() # update the annot's appearance
doc.save("circle-out.pdf") # save
변경 전후의 원 주석 모습입니다(Nitro PDF 뷰어를 사용하여 표시된 팝업 창):

각주
