Markdown기능 사용

이 항목에서는Aspose.Words을 사용하여Markdown기능을 구현하는 방법에 대해 설명합니다. Markdown는HTML로 쉽게 변환할 수 있는 일반 텍스트의 서식을 지정하는 간단한 방법입니다. Aspose.Words은 다음Markdown기능을 지원합니다:

  • 제목
  • 인용구
  • 수평 규칙
  • 대담한 강조
  • 기울임 꼴 강조

Markdown기능 구현은 대부분Aspose.WordsAPI의CommonMark사양을 따르며 모든 기능은 해당 스타일 또는 직접 포맷으로 표시됩니다. 즉,

  • 굵게 및 기울임 꼴은Font.BoldFont.Italic으로 표시됩니다.
  • 제목은Heading 1-Heading 6스타일의 단락입니다.
  • 따옴표는 스타일 이름에"따옴표"가 있는 단락입니다.
  • HorizontalRule은HorizontalRule모양의 단락입니다.

Markdown강조 표시가 있는 문서

이 섹션에서는 다음과 같이 강조된markdown문서를 생성하는 방법을 보여 줍니다:

Markdown treats asterisks (*) and underscores (_) as indicators of emphasis.
You can write **bold** or *italic* text. 
You can also write ***BoldItalic***text.

다음 코드 조각은 위에 주어진markdown문서를 생성하는 데 사용할 수 있습니다.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.writeln("Markdown treats asterisks (*) and underscores (_) as indicators of emphasis.");
builder.write("You can write ");
builder.getFont().setBold(true);
builder.write("bold");
builder.getFont().setBold(false);
builder.write(" or ");
builder.getFont().setItalic(true);
builder.write("italic");
builder.getFont().setItalic(false);
builder.writeln(" text. ");
builder.write("You can also write ");
builder.getFont().setBold(true);
builder.getFont().setItalic(true);
builder.write("BoldItalic");
builder.getFont().setBold(false);
builder.getFont().setItalic(false);
builder.write("text.");
builder.getDocument().save("EmphasesExample.md");

Markdown제목이 있는 문서

이 섹션에서는 아래와 같이 제목이 있는markdown문서를 생성하는 방법을 보여 줍니다:

The following produces headings:
# Heading1
## Heading2
### Heading3
#### Heading4
##### Heading5
###### Heading6
# **Bold Heading1**

다음 코드 조각은 위의markdown문서를 생성하는 데 사용할 수 있습니다.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// By default Heading styles in Word may have bold and italic formatting.
// If we do not want text to be emphasized, set these properties explicitly to
// false.
builder.getFont().setBold(false);
builder.getFont().setItalic(false);
builder.writeln("The following produces headings:");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 1"));
builder.writeln("Heading1");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 2"));
builder.writeln("Heading2");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 3"));
builder.writeln("Heading3");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 4"));
builder.writeln("Heading4");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 5"));
builder.writeln("Heading5");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 6"));
builder.writeln("Heading6");
// Note, emphases are also allowed inside Headings:
builder.getFont().setBold(true);
builder.getParagraphFormat().setStyle(doc.getStyles().get("Heading 1"));
builder.writeln("Bold Heading1");
doc.save(dataDir + "HeadingsExample.md");

Markdown블록 따옴표가 있는 문서

이 섹션에서는 아래와 같이 블록 따옴표가 있는markdown문서를 생성하는 방법을 보여 줍니다:

We support blockquotes in Markdown:
>*Lorem*
>*ipsum*
>The quotes can be of any level and can be nested:
>>>Quote level 3
>>>
>>>>Nested quote level 4
>
>*Back to first level*
>### Headings are allowed inside Quotes
>

다음 코드 조각은 위의markdown문서를 생성하는 데 사용할 수 있습니다.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.writeln("We support blockquotes in Markdown:");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Quote"));
builder.writeln("Lorem");
builder.writeln("ipsum");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Normal"));
builder.writeln("The quotes can be of any level and can be nested:");
Style quoteLevel3 = doc.getStyles().add(StyleType.PARAGRAPH, "Quote2");
builder.getParagraphFormat().setStyle(quoteLevel3);
builder.writeln("Quote level 3");
Style quoteLevel4 = doc.getStyles().add(StyleType.PARAGRAPH, "Quote3");
builder.getParagraphFormat().setStyle(quoteLevel4);
builder.writeln("Nested quote level 4");
builder.getParagraphFormat().setStyle(doc.getStyles().get("Quote"));
builder.writeln();
builder.writeln("Back to first level");
Style quoteLevel1WithHeading = doc.getStyles().add(StyleType.PARAGRAPH, "Quote Heading 3");
builder.getParagraphFormat().setStyle(quoteLevel1WithHeading);
builder.write("Headings are allowed inside Quotes");
doc.save(dataDir + "QuotesExample.md");

Markdown수평 규칙이 있는 문서

이 섹션에서는 아래와 같이 수평 규칙이 있는markdown문서를 생성하는 방법을 보여 줍니다:

We support Horizontal rules (Thematic breaks) in Markdown:
-----

다음 코드 조각은 위에 주어진markdown문서를 생성하는 데 사용할 수 있습니다.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
DocumentBuilder builder = new DocumentBuilder(new Document());
builder.writeln("We support Horizontal rules (Thematic breaks) in Markdown:");
builder.insertHorizontalRule();
builder.getDocument().save(dataDir + "HorizontalRuleExample.md");

Markdown문서 읽기

다음 코드 조각은markdown문서를 읽는 방법을 보여 줍니다.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
// This is Markdown document that was produced in example of
// MarkdownDocumentWithBlockQuotes.
Document doc = new Document(dataDir + "QuotesExample.md");
// Let's remove Heading formatting from a Quote in the very last paragraph.
Paragraph paragraph = doc.getFirstSection().getBody().getLastParagraph();
paragraph.getParagraphFormat().setStyle(doc.getStyles().get("Quote"));
doc.save(dataDir + "QuotesModifiedExample.md");

Markdown저장 옵션 지정

Aspose.WordsAPIMarkdownSaveOptions클래스를 제공하여 문서를Markdown형식으로 저장하는 동안 추가 옵션을 지정합니다.

다음 코드 예제에서는 다양한Markdown저장 옵션을 지정하는 방법을 보여 주었습니다.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
DocumentBuilder builder = new DocumentBuilder();
builder.writeln("Some text!");
// specify MarkDownSaveOptions
MarkdownSaveOptions saveOptions = (MarkdownSaveOptions) SaveOptions.createSaveOptions(SaveFormat.MARKDOWN);
builder.getDocument().save(dataDir + "TestDocument.md", saveOptions);

Markdown으로 내보내는 동안 테이블 내부의 콘텐츠를 정렬하는 방법

Aspose.WordsAPIMarkdown문서로 내보내는 동안 테이블의 내용을 정렬하는 정렬 방향을 정의하는TableContentAlignment열거를 제공합니다. 다음 코드 예제에서는 테이블 내에서 콘텐츠를 정렬하는 방법을 보여 줍니다.

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Java
DocumentBuilder builder = new DocumentBuilder();
// Create a new table with two cells.
builder.insertCell();
builder.getParagraphFormat().setAlignment(ParagraphAlignment.RIGHT);
builder.write("Cell1");
builder.insertCell();
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
builder.write("Cell2");
MarkdownSaveOptions saveOptions = new MarkdownSaveOptions();
// Makes all paragraphs inside table to be aligned to Left.
saveOptions.setTableContentAlignment(TableContentAlignment.LEFT);
builder.getDocument().save(dataDir + "left.md", saveOptions);
// Makes all paragraphs inside table to be aligned to Right.
saveOptions.setTableContentAlignment(TableContentAlignment.RIGHT);
builder.getDocument().save(dataDir + "right.md", saveOptions);
// Makes all paragraphs inside table to be aligned to Center.
saveOptions.setTableContentAlignment(TableContentAlignment.CENTER);
builder.getDocument().save(dataDir + "center.md", saveOptions);
// Makes all paragraphs inside table to be aligned automatically.
// The alignment in this case will be taken from the first paragraph in
// corresponding table column.
saveOptions.setTableContentAlignment(TableContentAlignment.AUTO);
builder.getDocument().save(dataDir + "auto.md", saveOptions);