Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
Чтобы программно считывать содержимое и форматирование документа, манипулировать им и изменять их, вам необходимо преобразовать его в объектную модель документа Aspose.Words (DOM).
В отличие от документов Word, Markdown не соответствует DOM, описанному в объектной модели документа Aspose.Words (DOM). статья. Однако Aspose.Words предоставляет свой собственный механизм для перевода документов Markdown в документы DOM и обратно, так что мы можем успешно работать с их элементами, такими как форматирование текста, таблицы, заголовки и другие.
В этой статье объясняется, как различные функции markdown могут быть переведены в формат Aspose.Words DOM и обратно в формат Markdown.
Основная сложность этого механизма заключается не только в преобразовании Markdown в DOM, но и в выполнении обратного преобразования – сохранении документа обратно в формат Markdown с минимальными потерями. Существуют элементы, такие как многоуровневые кавычки, для которых обратное преобразование нетривиально.
Наш механизм перевода позволяет пользователям не только работать со сложными элементами в существующем документе Markdown, но и создавать свой собственный документ в формате Markdown с оригинальной структурой с нуля. Для создания различных элементов вам необходимо использовать стили с определенными названиями в соответствии с определенными правилами, описанными далее в этой статье. Такие стили могут быть созданы программно.
Мы используем форматирование Font для встроенных блоков. Когда нет прямого соответствия для элемента Markdown в Aspose.Words DOM, мы используем стиль символов с названием, которое начинается с некоторых специальных слов.
Для контейнерных блоков мы используем наследование стилей для обозначения вложенных объектов Markdown. В этом случае, даже если вложенных объектов нет, мы также используем стили абзацев с именами, которые начинаются с некоторых специальных слов.
Маркированные и упорядоченные списки также являются контейнерными блоками в Markdown. Их вложенность в DOM представлена таким же образом, как и для всех других контейнерных блоков, с использованием наследования стиля. Однако, кроме того, списки в DOM имеют соответствующее числовое оформление либо в виде списка, либо в виде абзаца.
Мы используем форматирование Font при переводе Bold, Italic или Strikethrough встроенных функций markdown.
| Markdown особенность | Aspose.Words |
|---|---|
Bold**bold text** |
Font.bold = True |
|
|
Italic*italic text* |
Font.italic = True |
|
|
Strikethrough~Strikethrough text~ |
Font.strike_through = True |
|
Мы используем стиль символов с именем, которое начинается со слова InlineCode, за которым следует необязательная точка (.) и несколько обратных меток (`) для элемента InlineCode. Если пропущено несколько обратных меток, то по умолчанию будет использоваться одна обратная метка.
| Markdown особенность | Aspose.Words |
|---|---|
InlineCode**inline code** |
Font.style_name = "InlineCode[.][N]" |
|
|
Autolink<scheme://domain.com><email@domain.com> |
Класс FieldHyperlink. |
|
|
Link[link text](url)[link text](<url>"title")[link text](url 'title')[link text](url (title)) |
Тот самый FieldHyperlink |
|
|
Image) |
Класс Shape. |
|
Документ представляет собой последовательность блоков-контейнеров, таких как заголовки, абзацы, списки, цитаты и другие. Блоки-контейнеры можно разделить на 2 класса: конечные блоки и сложные контейнеры. Конечные блоки могут содержать только встроенное содержимое. Сложные контейнеры, в свою очередь, могут содержать другие блоки контейнеров, включая конечные блоки.
В таблице ниже приведены примеры использования конечных блоков Markdown в Aspose.Words:
| Markdown особенность | Aspose.Words |
|---|---|
HorizontalRule----- |
Это простой абзац с соответствующей формой HorizontalRule: DocumentBuilder.insert_horizontal_rule() |
ATX Heading# H1, ## H2, ### H3… |
ParagraphFormat.style_name = "Heading N", где (1<= N <= 9).Это переводится во встроенный стиль и должно точно соответствовать указанному шаблону (суффиксы и префиксы не допускаются). В противном случае это будет просто обычный абзац с соответствующим стилем. |
Setext Heading=== (if Heading level 1),--- (if Heading level 2) |
ParagraphFormat.style_name = "SetextHeading[some suffix]", основанный на стиле "Heading N".Если (N >= 2), то будет использоваться "Heading 2", в противном случае "Heading 1".Допускается использование любого суффикса, но импортер Aspose.Words использует цифры “1” и “2” соответственно. |
|
|
| Indented Code | ParagraphFormat.style_name = "IndentedCode[some suffix]" |
|
|
Fenced Code |
ParagraphFormat.style_name = "FencedCode[.][info string]"Значения [.] и [info string] являются необязательными. |
|
В таблице ниже приведены примеры использования Markdown сложных контейнеров в Aspose.Words:
| Markdown особенность | Aspose.Words |
|---|---|
Quote> quote,>> nested quote |
ParagraphFormat.style_name = "Quote[some suffix]"Суффикс в названии стиля необязателен, но Aspose.Words импортер использует упорядоченные номера 1, 2, 3, …. в случае вложенных кавычек. Вложенность определяется с помощью унаследованных стилей. |
|
|
BulletedList- Item 1- Item 2 - Item 2a - Item 2b |
Маркированные списки представлены с использованием нумерации абзацев: ListFormat.apply_bullet_default() Маркированные списки могут быть трех типов. Они различаются только в формате нумерации самого первого уровня. Это: '-', '+' или '*' соответственно. |
|
|
OrderedList1. Item 12. Item 21) Item 2a2) Item 2b |
Упорядоченные списки представлены с использованием нумерации абзацев: ListFormat.apply_number_default() Может быть 2 маркера числового формата: '.' и ')'. По умолчанию используется маркер '.'. |
|
Aspose.Words также позволяет преобразовать таблицы в DOM, как показано ниже:
| Markdown особенность | Aspose.Words |
|---|---|
Table `а\ |
b<br />-\ |
|
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.