Xml#

  • v1.21.0で新たに追加

Xmlクラスは、HTMLまたはXMLノードを表します。これは、Story (ストーリー) オブジェクトのDOM(Document Object Model)コンテンツにアクセスするためのヘルパークラスです。

Xml オブジェクトを直接構築する必要はありません。Story (ストーリー) を作成した後、単に Story.body を取得し(これはXmlノードです)、それを使用してストーリーのDOMを操作できます。

メソッド/属性

説明

add_bullet_list()

ul タグを追加します - 箇条書きリスト、コンテキストマネージャ。

add_codeblock()

pre タグを追加します、コンテキストマネージャ。

add_description_list()

dl タグを追加します、コンテキストマネージャ。

add_division()

div タグを追加します(「section」と名前変更)、コンテキストマネージャ。

add_header()

headerタグ(h1 から h6 のいずれか)を追加します、コンテキストマネージャ。

add_horizontal_line()

hr タグを追加します。

add_image()

img タグを追加します。

add_link()

a タグを追加します。

add_number_list()

ol タグを追加します、コンテキストマネージャ。

add_paragraph()

p タグを追加します。

add_span()

span タグを追加します。コンテキストマネージャーです。

add_subscript()

添字テキスト(sub タグ)を追加します。行内要素で、テキストのように扱われます。

add_superscript()

上付きテキスト(sup タグ)を追加します。行内要素で、テキストのように扱われます。

add_code()

コードテキスト(code タグ)を追加します。行内要素で、テキストのように扱われます。

add_var()

コードテキスト(code タグ)を追加します。行内要素で、テキストのように扱われます。

add_samp()

コードテキスト(code タグ)を追加します。行内要素で、テキストのように扱われます。

add_kbd()

コードテキスト(code タグ)を追加します。行内要素で、テキストのように扱われます。

add_text()

テキスト文字列を追加します。改行 \nbr タグとして認識されます。

append_child()

子ノードを追加します。

clone()

このノードのコピーを作成します。

create_element()

指定されたタグ名で新しいノードを作成します。

create_text_node()

現在のノードに直接テキストを作成します。

find()

指定されたプロパティを持つサブノードを検索します。

find_next()

前回の「find」と同じ条件で繰り返します。

insert_after()

現在のノードの後に要素を挿入します。

insert_before()

現在のノードの前に要素を挿入します。

remove()

このノードを削除します。

set_align()

CSS スタイル仕様を使用して配置を設定します。ブロックレベルのタグにのみ適用されます。

set_attribute()

任意のキーに値(空である可能性があります)を設定します。

set_bgcolor()

背景色を設定します。ブロックレベルのタグにのみ適用されます。

set_bold()

太字をオンまたはオフに設定するか、ある文字列の値に設定します。

set_color()

テキストの色を設定します。

set_columns()

列数を設定します。引数は任意の有効な数値または文字列である必要があります。

set_font()

フォントファミリーを設定します。例: "sans-serif"。

set_fontsize()

フォントサイズを設定します。浮動小数点数または有効なHTML/CSS文字列のいずれかです。

set_id()

id を設定します。一意性のチェックが実行されます。

set_italic()

イタリック体をオンまたはオフ、または一部の文字列値に設定します。

set_leading()

インターブロックテキスト間の距離(-mupdf-leading)を設定します。ブロックレベルのノードでのみ機能します。

set_lineheight()

行の高さを設定します。1.5のような浮動小数点数は、1.5 * fontsize に設定します。

set_margins()

マージンを設定します。浮動小数点数または最大4つの値を持つ文字列です。

set_pagebreak_after()

このノードの後に改ページを挿入します。

set_pagebreak_before()

このノードの前に改ページを挿入します。

set_properties()

1つの呼び出しで任意またはすべての所望のプロパティを設定します。

add_style()

独自の set_ メソッドでサポートされていない "スタイル" を設定(追加)します。

add_class()

"クラス" 属性を設定(追加)します。

set_text_indent()

最初のテキストブロック行のインデントを設定します。ブロックレベルのノードでのみ機能します。

tagname

HTMLタグ名(例: p)またはテキストノードの場合は None

text

ノードのテキストまたはテキストノードの場合は None

is_text

ノードがテキストかどうかを確認します。

first_child

このノードの1レベル下の最初のノードを含みます(または None)。

last_child

このノードの1レベル下の最後のノードを含みます(または None)。

next

同じレベルの次のノード(または None)。

previous

同じレベルの前のノード。

root

DOMのトップノードで、したがって html というタグ名を持っています。

クラスAPI

class Xml#
add_bullet_list()#

ul タグ(箇条書きリスト)を追加します。コンテキスト マネージャーです。詳細は ul を参照してください。

add_codeblock()#

pre タグ(コードブロック)を追加します。コンテキスト マネージャーです。詳細は pre を参照してください。

add_description_list()#

dl タグ(説明リスト)を追加します。コンテキスト マネージャーです。詳細は dl を参照してください。

add_division()#

div タグを追加します。コンテキスト マネージャーです。詳細は div を参照してください。

add_header(value)#

ヘッダータグ(h1 から h6 のいずれか)を追加します。コンテキスト マネージャーです。詳細は 見出し を参照してください。

パラメータ:

value (int) -- 値(1 - 6)。

add_horizontal_line()#

hr タグを追加します。詳細は hr を参照してください。

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 が省略された場合、画像のアスペクト比が維持されます。

a タグを追加します - インライン要素で、テキストのように扱われます。

パラメータ:
  • href (str) -- URL の対象。

  • text (str) -- 表示するテキスト。省略した場合、href のテキストが代わりに表示されます。

add_number_list()#

ol タグを追加します。コンテキストマネージャーです。

add_paragraph()#

p タグを追加します。コンテキストマネージャーです。

add_span()#

span タグを追加します。コンテキストマネージャーです。span タグについては span を参照してください。

add_subscript(text)#

"subscript" テキスト(sub タグ)を追加します。テキストと同様に扱われるインライン要素です。

add_superscript(text)#

"superscript" テキスト(sup タグ)を追加します。テキストと同様に扱われるインライン要素です。

add_code(text)#

"code" テキスト(code タグ)を追加します。テキストと同様に扱われるインライン要素です。

add_var(text)#

"variable" テキスト(var タグ)を追加します。テキストと同様に扱われるインライン要素です。

add_samp(text)#

"sample output" テキスト(samp タグ)を追加します。テキストと同様に扱われるインライン要素です。

add_kbd(text)#

"keyboard input" テキスト(kbd タグ)を追加します。テキストと同様に扱われるインライン要素です。

add_text(text)#

テキスト文字列を追加します。改行 \nbr タグとして認識されます。

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 -- RGB値(例:(255, 0, 0)、"red"の場合)または有効な background-color 値。

set_bold(value)#

太字をオンまたはオフに設定するか、ある文字列の値に設定します。

パラメータ:

value -- TrueFalse、または有効な font-weight 値。

set_color(value)#

後続するテキストの色を設定します。

パラメータ:

value -- RGB値(例:(255, 0, 0)、"red"の場合)または有効な カラー 値。

set_columns(value)#

列の数を設定します。

パラメータ:

value -- 有効な columns 値。

注釈

現在は無視されており、将来のMuPDFバージョンでサポートされます。

set_font(value)#

フォントファミリーを設定します。

パラメータ:

value (str) -- 例:"sans-serif"など。

set_fontsize(value)#

後続するテキストのフォントサイズを設定します。

パラメータ:

value -- floatまたは有効な font-size 値。

set_id(unqid)#

id を設定します。これはDOM内でノードを一意に識別するためのもので、ノードを簡単に見つけて調査または変更するために使用します。一意性のチェックが実行されます。

パラメータ:

unqid (str) -- ノードのID文字列。

set_italic(value)#

後続するテキストのイタリックをオンまたはオフ、または一部の有効なフォントスタイル値に設定します。

パラメータ:

value -- TrueFalse、または有効な font-style 値。

set_leading(value)#

インターブロックテキスト間の距離(-mupdf-leading)を設定します。ブロックレベルのノードでのみ機能します。

パラメータ:

value (float) -- 前のブロックからの距離(ポイント単位)。

set_lineheight(value)#

行の高さを設定します。

パラメータ:

value -- value – 1.5のような浮動小数点数(これは `1.5 * fontsize`に設定されます)または有効な行の高さの値。

set_margins(value)#

マージン(マージン)を設定します。

パラメータ:

value -- floatまたは最大4つの値を含む文字列。CSSのドキュメンテーション を参照してください。

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 が生成されます。したがって、本文のいくつかのプロパティを「グローバルに」設定するには、このメソッドを使用する必要があります。

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_text_node(text)#

現在のノードに直接テキストを作成します。

パラメータ:

text (str) -- 追加するテキスト。

戻り値の型:

Xml

戻り値:

作成された要素。

create_element(tag)#

指定されたタグで新しいノードを作成します。これは、Xml.add_paragraph() などの他のメソッドで使用される低レベルなメソッドです。

パラメータ:

tag (str) -- 要素のタグ。

戻り値の型:

Xml

戻り値:

作成された要素。実際にDOMにバインドするには、Xml.append_child() を使用します。

insert_before(elem)#

指定された要素 elem をこのノードの前に挿入します。

パラメータ:

elem -- いくつかの Xml 要素。

insert_after(elem)#

指定された要素 elem をこのノードの後に挿入します。

パラメータ:

elem -- いくつかの Xml 要素。

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)#

Continue a previous Xml.find() (or find_next()) with the same values.

戻り値の型:

Xml.

戻り値:

それ以上見つからない場合は None、それ以外の場合は次の一致するノード。

tagname#

HTMLタグ名(例: p)またはテキストノードの場合は None

text#

ノードのテキストまたはテキストノードの場合は None

is_text#

テキストノードであるかどうかを確認します。

first_child#

このノードの1レベル下の最初のノードを含みます(または None)。

last_child#

このノードの1レベル下の最後のノードを含みます(または 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")

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.

Discord logo