段落の操作

段落は、論理ブロックに結合された一連の文字であり、特殊文字 (段落区切り) で終わります。 Aspose.Words では、段落は Paragraph クラスによって表されます。

段落を挿入する

実際、文書に新しい段落を挿入するには、段落区切り文字を挿入する必要があります。 DocumentBuilder.writeln はテキスト文字列も文書に挿入しますが、さらに段落区切りも追加します。

現在のフォントの書式設定は font プロパティによっても指定され、現在の段落の書式設定は paragraph_format プロパティによって決定されます。

次のコード例は、ドキュメントに段落を挿入する方法を示しています。

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
font = builder.font
font.size = 16
font.bold = True
font.color = drawing.Color.blue
font.name = "Arial"
font.underline = aw.Underline.DASH
paragraphFormat = builder.paragraph_format
paragraphFormat.first_line_indent = 8
paragraphFormat.alignment = aw.ParagraphAlignment.JUSTIFY
paragraphFormat.keep_together = True
builder.writeln("A whole paragraph.")
doc.save(docs_base.artifacts_dir + "AddContentUsingDocumentBuilder.insert_paragraph.docx")

段落の書式設定

現在の段落書式設定は、paragraph_format プロパティによって返される ParagraphFormat オブジェクトによって表されます。このオブジェクトは、Microsoft Word で使用できるさまざまな段落書式設定プロパティをカプセル化します。 clear_formatting を呼び出すことで、段落の書式設定をデフォルトの標準スタイル、左揃え、インデントなし、スペースなし、境界線なし、シェーディングなしに簡単にリセットできます。

次のコード例は、段落の書式設定を設定する方法を示しています。

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
paragraphFormat = builder.paragraph_format
paragraphFormat.alignment = aw.ParagraphAlignment.CENTER
paragraphFormat.left_indent = 50
paragraphFormat.right_indent = 50
paragraphFormat.space_after = 25
builder.writeln(
"I'm a very nice formatted paragraph. I'm intended to demonstrate how the left and right indents affect word wrapping.")
builder.writeln(
"I'm another nice formatted paragraph. I'm intended to demonstrate how the space after paragraph looks like.")
doc.save(docs_base.artifacts_dir + "DocumentFormatting.paragraph_formatting.docx")

段落スタイルを適用する

FontParagraphFormat などの一部の書式設定オブジェクトはスタイルをサポートしています。単一の組み込みスタイルまたはユーザー定義スタイルは、名前、基本スタイル、スタイルのフォントおよび段落書式設定などの対応するスタイル プロパティを含む Style オブジェクトによって表されます。

さらに、Style オブジェクトは、StyleIdentifier 列挙値で表されるロケールに依存しないスタイル識別子を返す Style.style_identifier プロパティを提供します。重要なのは、Microsoft Word の組み込みスタイルの名前がさまざまな言語にローカライズされていることです。スタイル識別子を使用すると、ドキュメントの言語に関係なく正しいスタイルを見つけることができます。列挙値は、 Normal 、 Heading 1 、 Heading 2 などの Microsoft Word 組み込みスタイルに対応します。すべてのユーザー定義スタイルには、StyleIdentifier.USER 値が割り当てられます。

次のコード例は、段落スタイルを適用する方法を示しています。

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.paragraph_format.style_identifier = aw.StyleIdentifier.TITLE
builder.write("Hello")
doc.save(docs_base.artifacts_dir + "DocumentFormatting.apply_paragraph_style.docx")

スタイル区切り文字を挿入して異なる段落スタイルを配置する

MS Word の Ctrl + Alt + Enter キーボード ショートカットを使用して、段落の末尾にスタイル区切り文字を追加できます。この機能により、1 つの論理印刷段落で 2 つの異なる段落スタイルを使用できるようになります。特定の見出しの先頭の一部のテキストを目次に表示したいが、見出し全体を目次に表示したくない場合は、この機能を使用できます。

次のコード例は、さまざまな段落スタイルに対応するためにスタイル区切り文字を挿入する方法を示しています。

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
paraStyle = builder.document.styles.add(aw.StyleType.PARAGRAPH, "MyParaStyle")
paraStyle.font.bold = False
paraStyle.font.size = 8
paraStyle.font.name = "Arial"
# Append text with "Heading 1" style.
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.write("Heading 1")
builder.insert_style_separator()
# Append text with another style.
builder.paragraph_format.style_name = paraStyle.name
builder.write("This is text with some other formatting ")
doc.save(docs_base.artifacts_dir + "WorkingWithStylesAndThemes.insert_style_separator.docx")

段落スタイル区切り文字の識別

Aspose.Words は、以下の例に示すように、スタイル区切り段落を識別できるパブリック プロパティ break_is_style_separatorParagraph クラスに提供します。

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Document.docx")
for paragraph in doc.get_child_nodes(aw.NodeType.PARAGRAPH, True) :
paragraph = paragraph.as_paragraph()
if (paragraph.break_is_style_separator) :
print("Separator Found!")

段落に枠線と網掛けを適用する

境界線は BorderCollection によって表されます。これは、インデックスまたはボーダー タイプによってアクセスされる Border オブジェクトのコレクションです。境界線の種類は BorderType 列挙によって表されます。列挙の一部の値は、複数または 1 つの文書要素にのみ適用できます。たとえば、BorderType.BOTTOM は段落または表のセルに適用できますが、BorderType.DIAGONALDOWN は表のセルの対角線の境界線のみを指定します。

境界線コレクションと個別の境界線はどちらも、色、線のスタイル、線の幅、テキストからの距離、オプションの影などの同様の属性を持っています。それらは同じ名前のプロパティによって表されます。プロパティ値を組み合わせることで、さまざまな境界線タイプを実現できます。さらに、BorderCollection オブジェクトと Border オブジェクトの両方で、Border.clear_formatting メソッドを呼び出すことでこれらの値をデフォルトにリセットできます。

Aspose.Words には、ドキュメント要素のシェーディング属性を含む Shading クラスもあります。希望のシェーディング テクスチャと、要素の背景と前景に適用される色を設定できます。

シェーディング テクスチャは、Shading オブジェクトにさまざまなパターンを適用できるようにする TextureIndex 列挙値で設定されます。たとえば、ドキュメント要素の背景色を設定するには、TextureIndex.TEXTURE_SOLID 値を使用し、前景色のシェーディング色を適切に設定します。以下の例は、段落に境界線と網掛けを適用する方法を示しています。

次のコード例は、段落に境界線と網掛けを適用する方法を示しています。

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
borders = builder.paragraph_format.borders
borders.distance_from_text = 20
borders.get_by_border_type(aw.BorderType.LEFT).line_style = aw.LineStyle.DOUBLE
borders.get_by_border_type(aw.BorderType.RIGHT).line_style = aw.LineStyle.DOUBLE
borders.get_by_border_type(aw.BorderType.TOP).line_style = aw.LineStyle.DOUBLE
borders.get_by_border_type(aw.BorderType.BOTTOM).line_style = aw.LineStyle.DOUBLE
shading = builder.paragraph_format.shading
shading.texture = aw.TextureIndex.TEXTURE_DIAGONAL_CROSS
shading.background_pattern_color = drawing.Color.light_coral
shading.foreground_pattern_color = drawing.Color.light_salmon
builder.write("I'm a formatted paragraph with double border and nice shading.")
doc.save(docs_base.artifacts_dir + "DocumentFormatting.apply_borders_and_shading_to_paragraph.doc")