Перетворити документ на Markdown
Markdown - популярний формат, який використовується для розмітки тексту і його подальшого перетворення в HTML, PDF, DOCX, або інші формати. Багато розробників вибирають цей формат для написання документації, підготовки статей для публікації в блогах, опису проектів і так далі.
Markdown настільки популярний, оскільки з цим форматом легко працювати, а також його можна досить просто перетворити в інші формати. З цієї причини Aspose.Words надає можливість конвертувати документ з any supported load format в Markdown і навпаки – Aspose.Words також підтримує найбільш популярний save formats.
Зараз активно розвивається функціонал для роботи з форматом Markdown, щоб надати вам більше можливостей для зручної і комфортної роботи з документами.
Перетворення документа
Щоб перетворити документ у формат Markdown, вам просто потрібно завантажити документ у будь-якому підтримуваному форматі або Створити новий програмно. Потім потрібно зберегти документ у форматі Markdown.
Наступний приклад коду показує, як перетворити DOCX на Markdown:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Load the document from disk. | |
auto doc = System::MakeObject<Document>(inputDataDir + u"Test.docx"); | |
// Save the document to Markdown format. | |
doc->Save(outputDataDir + u"SpecifyMarkdownSaveOptions.SaveAsMD.md"); |
Ви також можете вказати фізичну папку, куди потрібно зберегти зображення, експортуючи документ у формат Markdown. За замовчуванням Aspose.Words зберігає зображення в тій самій папці, де збережено файл документа, але ви можете змінити цю поведінку, використовуючи властивість ImagesFolder.
Вказівка папки за допомогою ImagesFolder також корисна, якщо ви зберігаєте документ у потоці, а в Aspose.Words немає папки для збереження зображень.
Якщо вказаний параметр ImagesFolder не існує, він буде створений автоматично.
Наступний приклад коду показує, як вказати папку для зображень під час збереження документа в потоці:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
// Load the document from disk. | |
auto doc = System::MakeObject<Document>(inputDataDir + u"Test.docx"); | |
auto so = System::MakeObject<MarkdownSaveOptions>(); | |
so->set_ImagesFolder(outputDataDir + u"\\Images"); | |
auto stream = System::MakeObject<System::IO::MemoryStream>(); | |
doc->Save(stream, so); |
Вкажіть параметри збереження при перетворенні в Markdown
Aspose.Words надає можливість використовувати клас MarkdownSaveOptions для роботи з розширеними параметрами при збереженні документа у форматі Markdown. Більшість властивостей успадковують або перевантажують властивості, які вже існують в інших класах простору імен Aspose.Words.Saving. На додаток до них також був доданий ряд властивостей, специфічних для формату Markdown. Наприклад, властивість TableContentAlignment для управління вирівнюванням вмісту в таблицях або ImageSavingCallback і ImagesFolder для управління збереженням зображень при перетворенні документа в формат Markdown.
Підтримувані функції Markdown
Aspose.Words в даний час підтримує наступні Markdown функції, які в основному відповідають специфікації CommonMark
в Aspose.Words API і представлені у вигляді відповідних стилів або прямого форматування:
- Заголовки-це абзаци зі стилями Heading 1 - Heading 6
- Блок-лапки - це абзаци з написом “Quote” у назві стилю
- IndentedCode - це абзаци з “IndentedCode " у назві стилю
- FencedCode - це абзаци з “FencedCode " у назві стилю
- InlineCode - це запуски з “InlineCode " у назві стилю
Font
- Горизонтальні правила-це абзаци з формою
HorizontalRule
- Жирний акцент
- Виділено курсивом
- StrikeThrough форматування
- Списки являють собою пронумеровані або марковані абзаци
- Таблиці представлені за допомогою класу
Table
- Посилання представлені у вигляді класу
FieldHyperlink
Наступний приклад показує, як створити документ з деякими стилями та зберегти його в Markdown:
For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C | |
auto doc = System::MakeObject<Document>(); | |
auto builder = System::MakeObject<DocumentBuilder>(doc); | |
// Specify the "Heading 1" style for the paragraph. | |
builder->InsertParagraph(); | |
builder->get_ParagraphFormat()->set_StyleName(u"Heading 1"); | |
builder->Write(u"Heading 1"); | |
// Specify the Italic emphasis for the paragraph. | |
builder->InsertParagraph(); | |
// Reset styles from the previous paragraph to not combine styles between paragraphs. | |
builder->get_ParagraphFormat()->set_StyleName(u"Normal"); | |
builder->get_Font()->set_Italic(true); | |
builder->Write(u"Italic Text"); | |
// Reset styles from the previous paragraph to not combine styles between paragraphs. | |
builder->set_Italic(false); | |
// Specify a Hyperlink for the desired text. | |
builder->InsertParagraph(); | |
builder->InsertHyperlink(u"Aspose", u"https://www.aspose.com", false); | |
builder->Write(u"Aspose"); | |
// Save your document as a Markdown file. | |
doc->Save(outputDataDir + u"SpecifyMarkdownSaveOptions.SupportedMarkdownFeatures.md"); |
Результат виконання цього прикладу коду показаний нижче.
Корисна порада
Є кілька нюансів і цікавих кейсів, дізнавшись які, ви зможете працювати з файлами Markdown більш гнучко і зручно. Наприклад, є можливість використовувати:
- SetextHeading це дозволяє створювати багаторядкові заголовки в Markdown, тоді як звичайні заголовки в Markdown можуть бути лише однорядковими. SetextHeading заснований на стилі “Заголовок N”, і його рівень може бути лише 1 або 2. Якщо N в " товарній позиції N “більше або дорівнює 2, то відповідний SetextHeading заснований на” Heading 2”, в іншому випадку - на"Heading 1”.
- Різні маркери для першого рівня маркованих списків ("-”, “+” або “*”, маркер за замовчуванням “-”.) та різні типи нумерації для упорядкованих списків ("." або “)”, маркер за замовчуванням “.").