Xml¶
v1.21.0 에서 새로 추가됨
이것은 HTML 또는 XML 노드를 나타냅니다. Story 객체의 DOM(Document Object Model) 콘텐츠에 액세스하기 위한 헬퍼 클래스입니다.
Xml 객체를 직접 생성할 필요는 없습니다: Story 를 생성한 후 단순히 Story.body (Xml 노드)를 가져와 스토리의 DOM을 탐색하는 데 사용하세요.
메서드 / 속성 |
설명 |
|---|---|
ul 태그 추가 - 불릿 목록, 컨텍스트 매니저. |
|
pre 태그 추가, 컨텍스트 매니저. |
|
dl 태그 추가, 컨텍스트 매니저. |
|
div 태그 추가(“section”에서 이름 변경), 컨텍스트 매니저. |
|
헤더 태그 추가(h1 ~ h6 중 하나), 컨텍스트 매니저. |
|
hr 태그 추가. |
|
img 태그 추가. |
|
a 태그 추가. |
|
ol 태그 추가, 컨텍스트 매니저. |
|
p 태그 추가. |
|
span 태그 추가, 컨텍스트 매니저. |
|
아래첨자 텍스트 추가(sub 태그) - 인라인 요소, 텍스트처럼 처리됩니다. |
|
위첨자 텍스트 추가(sup 태그) - 인라인 요소, 텍스트처럼 처리됩니다. |
|
코드 텍스트 추가(code 태그) - 인라인 요소, 텍스트처럼 처리됩니다. |
|
코드 텍스트 추가(code 태그) - 인라인 요소, 텍스트처럼 처리됩니다. |
|
코드 텍스트 추가(code 태그) - 인라인 요소, 텍스트처럼 처리됩니다. |
|
코드 텍스트 추가(code 태그) - 인라인 요소, 텍스트처럼 처리됩니다. |
|
텍스트 문자열 추가. 줄바꿈 |
|
자식 노드를 추가합니다. |
|
이 노드의 복사본을 만듭니다. |
|
주어진 태그 이름으로 새 노드를 만듭니다. |
|
현재 노드에 대한 직접 텍스트를 생성합니다. |
|
주어진 속성을 가진 하위 노드를 찾습니다. |
|
동일한 기준으로 이전 “find” 를 반복합니다. |
|
현재 노드 뒤에 요소를 삽입합니다. |
|
현재 노드 앞에 요소를 삽입합니다. |
|
이 노드를 제거합니다. |
|
CSS 스타일 사양을 사용하여 정렬을 설정합니다. 블록 레벨 태그에만 작동합니다. |
|
임의의 키를 일부 값(비어 있을 수 있음)으로 설정합니다. |
|
배경색을 설정합니다. 블록 레벨 태그에만 작동합니다. |
|
굵게를 켜거나 끄거나 일부 문자열 값으로 설정합니다. |
|
텍스트 색상을 설정합니다. |
|
열 수를 설정합니다. 인수는 유효한 숫자 또는 문자열일 수 있습니다. |
|
글꼴 패밀리를 설정합니다. 예: “sans-serif”. |
|
글꼴 크기를 설정합니다. float 또는 유효한 HTML/CSS 문자열입니다. |
|
id 를 설정합니다. 고유성 검사가 수행됩니다. |
|
기울임꼴을 켜거나 끄거나 일부 문자열 값으로 설정합니다. |
|
블록 간 텍스트 거리( |
|
줄 높이를 설정합니다. 1.5와 같은 float는 |
|
여백을 설정합니다. 최대 4개의 값을 가진 float 또는 문자열입니다. |
|
이 노드 뒤에 페이지 나누기를 삽입합니다. |
|
이 노드 앞에 페이지 나누기를 삽입합니다. |
|
한 번의 호출로 원하는 모든 속성을 설정합니다. |
|
자체 |
|
“class” 속성을 설정(추가)합니다. |
|
첫 번째 텍스트 블록 줄의 들여쓰기를 설정합니다. 블록 레벨 노드에만 작동합니다. |
|
p 와 같은 HTML 태그 이름이거나 텍스트 노드인 경우 |
|
노드의 텍스트이거나 태그 노드인 경우 |
|
노드가 텍스트인지 확인합니다. |
|
이 노드보다 한 단계 아래의 첫 번째 노드를 포함합니다(또는 |
|
이 노드보다 한 단계 아래의 마지막 노드를 포함합니다(또는 |
|
같은 레벨의 다음 노드(또는 |
|
같은 레벨의 이전 노드. |
|
DOM의 최상위 노드로, 따라서 태그 이름이 html 입니다. |
클래스 API
- class Xml¶
-
- add_header(value)¶
헤더 태그 추가(h1 ~ h6 중 하나), 컨텍스트 매니저. headings 를 참조하세요.
- 매개변수:
value (int) – 1 - 6 사이의 값.
- add_image(name, width=None, height=None)¶
img 태그 추가. 이것은 DOM에 명명된 이미지를 포함시킵니다.
- 매개변수:
name (str) – 이미지의 파일명. 이것은 Story 생성자의 Archive (아카이브) 매개변수 항목의 멤버 이름 이어야 합니다.
width – 제공된 경우 절대(int) 값 또는 “30%” 와 같은 백분율 문자열입니다. 백분율 값은
Story.place()의 지정된where사각형의 너비를 나타냅니다. 이 값이 제공되고height가 생략되면 이미지는 종횡비를 유지하면서 포함됩니다.height – 제공된 경우 절대(int) 값 또는 “30%” 와 같은 백분율 문자열입니다. 백분율 값은
Story.place()의 지정된where사각형의 높이를 나타냅니다. 이 값이 제공되고width가 생략되면 이미지의 종횡비가 유지됩니다.
- add_link(href, text=None)¶
a 태그 추가 - 인라인 요소, 텍스트처럼 처리됩니다.
- 매개변수:
href (str) – URL 대상.
text (str) – 표시할 텍스트. 생략하면
href텍스트가 대신 표시됩니다.
- add_number_list()¶
ol 태그 추가, 컨텍스트 매니저.
- add_paragraph()¶
p 태그 추가, 컨텍스트 매니저.
- add_subscript(text)¶
“아래첨자” 텍스트 추가(sub 태그) - 인라인 요소, 텍스트처럼 처리됩니다.
- add_superscript(text)¶
“위첨자” 텍스트 추가(sup 태그) - 인라인 요소, 텍스트처럼 처리됩니다.
- add_code(text)¶
“코드” 텍스트 추가(code 태그) - 인라인 요소, 텍스트처럼 처리됩니다.
- add_var(text)¶
“변수” 텍스트 추가(var 태그) - 인라인 요소, 텍스트처럼 처리됩니다.
- add_samp(text)¶
“샘플 출력” 텍스트 추가(samp 태그) - 인라인 요소, 텍스트처럼 처리됩니다.
- add_kbd(text)¶
“키보드 입력” 텍스트 추가(kbd 태그) - 인라인 요소, 텍스트처럼 처리됩니다.
- add_text(text)¶
텍스트 문자열 추가. 줄바꿈
\n은 br 태그로 처리됩니다.
- set_align(value)¶
텍스트 정렬을 설정합니다. 블록 레벨 태그에만 작동합니다.
- 매개변수:
value – 텍스트 정렬 중 하나 또는 text-align 값.
- set_attribute(key, value=None)¶
임의의 키를 일부 값(비어 있을 수 있음)으로 설정합니다.
- 매개변수:
key (str) – 속성의 이름.
value (str) – 속성의 (선택적) 값.
- get_attributes()¶
현재 노드의 모든 속성을 딕셔너리로 검색합니다.
- 반환:
노드의 속성과 값이 있는 딕셔너리.
- get_attribute_value(key)¶
key의 속성 값을 가져옵니다.- 매개변수:
key (str) – 속성의 이름.
- 반환:
key의 값을 가진 문자열.
- remove_attribute(key)¶
노드에서 속성
key를 제거합니다.- 매개변수:
key (str) – 속성의 이름.
- set_bgcolor(value)¶
배경색을 설정합니다. 블록 레벨 태그에만 작동합니다.
- 매개변수:
value – (255, 0, 0)(“red”의 경우)와 같은 RGB 값 또는 유효한 background-color 값.
- set_bold(value)¶
굵게를 켜거나 끄거나 일부 문자열 값으로 설정합니다.
- 매개변수:
value –
True,False또는 유효한 font-weight 값.
- set_font(value)¶
글꼴 패밀리를 설정합니다.
- 매개변수:
value (str) – 예: “sans-serif”.
- set_id(unqid)¶
id 를 설정합니다. 이것은 DOM 내에서 노드의 고유 식별자 역할을 합니다. 노드를 쉽게 찾아 검사하거나 수정하는 데 사용하세요. 고유성 검사가 수행됩니다.
- 매개변수:
unqid (str) – 노드의 id 문자열.
- set_italic(value)¶
다음 텍스트에 대해 기울임꼴을 켜거나 끄거나 일부 문자열 값으로 설정합니다.
- 매개변수:
value –
True,False또는 유효한 font-style 값.
- set_leading(value)¶
블록 간 텍스트 거리(
-mupdf-leading)를 설정합니다. 블록 레벨 노드에만 작동합니다.- 매개변수:
value (float) – 이전 블록까지의 거리(포인트 단위).
- set_lineheight(value)¶
줄 높이를 설정합니다.
- 매개변수:
value – 1.5와 같은 float(
1.5 * fontsize로 설정됨) 또는 유효한 line-height 값.
- set_margins(value)¶
여백을 설정합니다.
- 매개변수:
value – 최대 4개의 값을 가진 float 또는 문자열. CSS documentation 를 참조하세요.
- set_pagebreak_after()¶
이 노드 뒤에 페이지 나누기를 삽입합니다.
- set_pagebreak_before()¶
이 노드 앞에 페이지 나누기를 삽입합니다.
- set_properties(align=None, bgcolor=None, bold=None, color=None, columns=None, font=None, fontsize=None, indent=None, italic=None, leading=None, lineheight=None, margins=None, pagebreak_after=False, pagebreak_before=False, unqid=None, cls=None)¶
한 번의 호출로 원하는 모든 속성을 설정합니다. 인수 값의 의미는 해당
set_메서드의 값과 같습니다.참고
이 메서드로 설정된 속성은 노드에 직접 연결되지만, 모든
set_메서드는 해당 속성을 가진 새 span 을 현재 노드 아래에 생성합니다. 따라서 예를 들어 body 에 대해 일부 속성을 “전역적으로” 설정하려면 이 메서드를 사용해야 합니다.
- add_style(value)¶
자체
set_메서드로 지원되지 않는 일부 스타일 속성을 설정(추가)합니다.- 매개변수:
value (str) – 유효한 CSS 스타일 값.
- add_class(value)¶
“class” 속성을 설정(추가)합니다.
- 매개변수:
value (str) – 클래스의 이름. DOM의 HTML 또는 CSS 소스에 정의되어 있어야 합니다.
- set_text_indent(value)¶
첫 번째 텍스트 블록 줄의 들여쓰기를 설정합니다. 블록 레벨 노드에만 작동합니다.
- 매개변수:
value – 유효한 text-indent 값. 음수 값은 작동하지 않습니다.
- append_child(node)¶
자식 노드를 추가합니다. 이것은
Xml.add_paragraph()와 같은 다른 메서드에서 사용하는 저수준 메서드입니다.- 매개변수:
node – 추가할 Xml 노드.
- create_element(tag)¶
주어진 태그로 새 노드를 생성합니다. 이것은
Xml.add_paragraph()와 같은 다른 메서드에서 사용하는 저수준 메서드입니다.- 매개변수:
tag (str) – 요소 태그.
- 반환 형식:
- 반환:
생성된 요소. 실제로 DOM에 바인딩하려면
Xml.append_child()를 사용하세요.
- clone()¶
이 노드의 복사본을 만듭니다. 그런 다음 이 DOM에 추가(
Xml.append_child()사용)하거나 삽입(Xml.insert_before(),Xml.insert_after()중 하나 사용)할 수 있습니다.- 반환:
현재 노드의 복제본(Xml).
- remove()¶
이 노드를 DOM에서 제거합니다.
- debug()¶
디버깅 목적으로 이 노드의 구조를 간소화된 형태로 출력합니다.
- find(tag, att, match)¶
현재 노드 아래에서 주어진
tag, 속성att및 값match를 가진 첫 번째 노드를 찾습니다.- 매개변수:
tag (str) – 이 태그로 검색을 제한합니다. 제한 없는 검색의 경우
None일 수 있습니다.att (str) – 이 속성을 확인합니다.
None일 수 있습니다.match (str) – 일치시킬 원하는 속성 값.
None일 수 있습니다.
- 반환 형식:
Xml.
- 반환:
찾은 것이 없으면
None, 그렇지 않으면 첫 번째 일치하는 노드.
- find_next(tag, att, match)¶
동일한 값으로 이전
Xml.find()(또는find_next()) 를 계속합니다.- 반환 형식:
Xml.
- 반환:
더 이상 찾은 것이 없으면
None, 그렇지 않으면 다음 일치하는 노드.
- tagname¶
p 와 같은 HTML 태그 이름이거나 텍스트 노드인 경우
None입니다.
- text¶
노드의 텍스트이거나 태그 노드인 경우
None입니다.
- is_text¶
텍스트 노드인지 확인합니다.
- first_child¶
이 노드보다 한 단계 아래의 첫 번째 노드를 포함합니다(또는
None).
- last_child¶
이 노드보다 한 단계 아래의 마지막 노드를 포함합니다(또는
None).
- next¶
같은 레벨의 다음 노드(또는
None).
- previous¶
같은 레벨의 이전 노드.
- root¶
DOM의 최상위 노드로, 따라서 태그 이름이 html 입니다.
텍스트 속성 설정¶
HTML에서 태그는 가장 안쪽 텍스트가 부모 태그를 감싸는 태그로부터 속성을 상속 하도록 중첩될 수 있습니다. 예: <p>.
동일한 효과를 얻기 위해 Xml.set_bold() 및 Xml.set_italic() 와 같은 메서드는 각각 현재 노드 아래에 원하는 속성을 가진 임시 span 을 엽니다.
또한 이러한 메서드는 부모 노드를 반환하므로 서로 연결할 수 있습니다.
컨텍스트 매니저 지원¶
DOM에 노드를 추가하는 표준 방법은 다음과 같습니다:
body = story.body
para = body.add_paragraph() # add a paragraph
para.set_bold() # text that follows will be bold
para.add_text("some bold text")
para.set_italic() # text that follows will additionally be italic
para.add_txt("this is bold and italic")
para.set_italic(False).set_bold(False) # all following text will be regular
para.add_text("regular text")
“컨텍스트 매니저” 로 표시된 메서드는 다음과 같이 편리하게 사용할 수 있습니다:
body = story.body
with body.add_paragraph() as para:
para.set_bold().add_text("some bold text")
para.set_italic().add_text("this is bold and italic")
para.set_italic(False).set_bold(False).add_text("regular text")
para.add_text("more regular text")
