ドキュメントをMarkdownに変換する

Markdown は、テキストをマークアップし、さらに HTML、PDF、DOCX、またはその他の形式に変換するために使用される一般的な形式です。多くの開発者は、ドキュメントの作成、ブログで公開する記事の準備、プロジェクトの説明などにこの形式を選択します。

Markdown が非常に人気があるのは、この形式での作業が簡単であり、他の形式に非常に簡単に変換できるためです。このため、Aspose.Words は サポートされているロード形式 のドキュメントを Markdown に、またはその逆に変換する機能を提供します。Aspose.Words は最も一般的な 保存形式 もサポートしています。

現在、ドキュメントを便利かつ快適に操作できる機会をさらに提供するために、Markdown 形式を操作するための機能が積極的に開発されています。

ドキュメントを変換する

ドキュメントを Markdown に変換するには、サポートされている形式でドキュメントをロードするか、プログラムで新しいドキュメントを作成するだけです。次に、ドキュメントを Markdown 形式で保存する必要があります。

次のコード例は、DOCX を Markdown に変換する方法を示しています。

# 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.writeln("Some text!")
doc.save(docs_base.artifacts_dir + "BaseConversions.docx_to_markdown.md")

ドキュメントを Markdown 形式にエクスポートするときに、画像を保存する物理フォルダーを指定することもできます。デフォルトでは、Aspose.Words はドキュメント ファイルが保存されているのと同じフォルダーに画像を保存しますが、images_folder プロパティを使用してこの動作をオーバーライドできます。

ドキュメントをストリームに保存するときに、Aspose.Words に画像を保存するためのフォルダーがない場合にも、images_folder 経由でフォルダーを指定すると便利です。

指定した images_folder が存在しない場合は、自動的に作成されます。

次のコード例は、ドキュメントをストリームに保存するときに画像のフォルダーを指定する方法を示しています。

# 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 + "Image bullet points.docx")
saveOptions = aw.saving.MarkdownSaveOptions()
saveOptions.images_folder = docs_base.artifacts_dir + "Images"
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdownSaveOptions.set_images_folder.md", saveOptions)

Markdown への変換時に保存オプションを指定する

Aspose.Words は、ドキュメントを Markdown 形式で保存するときに MarkdownSaveOptions クラスを使用して高度なオプションを操作する機能を提供します。ほとんどのプロパティは、他の aspose.words.saving クラス内にすでに存在するプロパティを継承またはオーバーロードしています。これらに加えて、Markdown 形式に固有の多数のプロパティも追加されました。たとえば、表内のコンテンツの配置を制御する table_content_alignment プロパティや、ドキュメントを Markdown 形式に変換する際の画像の保存場所を制御する images_folder などです。

サポートされているMarkdown機能

Aspose.Words は現在、次の Markdown 機能をサポートしています。これらの機能は主に Aspose.Words API の CommonMark 仕様に従っており、適切なスタイルまたは直接フォーマットとして表されます。

  • 見出しは、見出し 1 ~ 見出し 6 のスタイルを持つ段落です。 ※ブロッククオートとは、スタイル名に「Quote」が含まれる段落のことです ※ IndentedCode はスタイル名に「IndentedCode」が含まれる段落です ※FencedCodeはスタイル名に「FencedCode」が含まれる段落です
  • InlineCode は Font スタイル名に「InlineCode」を付けて実行されます ※横罫とはHorizontalRule形状の段落です。
  • 太字で強調
  • 斜体強調
  • 取り消し線の書式設定
  • リストは番号付きまたは箇条書きの段落です
  • テーブルは Table クラスで表現されます
  • リンクは FieldHyperlink クラスとして表現されます

次の例は、いくつかのスタイルを含むドキュメントを作成し、Markdown に保存する方法を示しています。

# 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)
# Specify the "Heading 1" style for the paragraph.
builder.paragraph_format.style_name = "Heading 1"
builder.writeln("Heading 1")
# Reset styles from the previous paragraph to not combine styles between paragraphs.
builder.paragraph_format.style_name = "Normal"
# Insert horizontal rule.
builder.insert_horizontal_rule()
# Specify the ordered list.
builder.insert_paragraph()
builder.list_format.apply_number_default()
# Specify the Italic emphasis for the text.
builder.font.italic = True
builder.writeln("Italic Text")
builder.font.italic = False
# Specify the Bold emphasis for the text.
builder.font.bold = True
builder.writeln("Bold Text")
builder.font.bold = False
# Specify the StrikeThrough emphasis for the text.
builder.font.strike_through = True
builder.writeln("StrikeThrough Text")
builder.font.strike_through = False
# Stop paragraphs numbering.
builder.list_format.remove_numbers()
# Specify the "Quote" style for the paragraph.
builder.paragraph_format.style_name = "Quote"
builder.writeln("A Quote block")
# Specify nesting Quote.
nestedQuote = doc.styles.add(aw.StyleType.PARAGRAPH, "Quote1")
nestedQuote.base_style_name = "Quote"
builder.paragraph_format.style_name = "Quote1"
builder.writeln("A nested Quote block")
# Reset paragraph style to Normal to stop Quote blocks.
builder.paragraph_format.style_name = "Normal"
# Specify a Hyperlink for the desired text.
builder.font.bold = True
# Note, the text of hyperlink can be emphasized.
builder.insert_hyperlink("Aspose", "https:#www.aspose.com", False)
builder.font.bold = False
# Insert a simple table.
builder.start_table()
builder.insert_cell()
builder.write("Cell1")
builder.insert_cell()
builder.write("Cell2")
builder.end_table()
# Save your document as a Markdown file.
doc.save(docs_base.artifacts_dir + "WorkingWithMarkdown.create_markdown_document.md")

このコード例の結果を以下に示します。

markdown-example-aspose-words-net

役立つヒント

Markdownファイルをより柔軟かつ便利に操作できることを学んだので、いくつかのニュアンスと興味深いケースがあります。たとえば、次のような機能があります。

  • SettextHeading を使用すると、Markdown で複数行の見出しを作成できますが、Markdown の通常の見出しは 1 行のみです。 SettextHeading は「見出し N」スタイルに基づいており、そのレベルは 1 または 2 のみです。「見出し N」の N が 2 以上の場合、対応する SettextHeading は「見出し 2」に基づき、それ以外の場合は 2 に基づきます。 「見出し1」。
  • 箇条書きリストの最初のレベルの異なるマーカー (「-」、「+」、または「*」、デフォルトのマーカーは「-」です。) および順序付きリストの異なるタイプの番号付け (「.」または「)」、デフォルトのマーカーは「.」です)。