Converter um documento em Markdown
Markdown é um formato popular usado para marcar texto e sua posterior conversão para HTML, PDF, DOCX, ou outros formatos. Muitos desenvolvedores escolhem esse formato para escrever documentação, preparar artigos para publicação em blogs, descrever projetos e assim por diante.
Markdown é tão popular porque é fácil trabalhar com este formato, assim como pode ser simplesmente convertido para outros formatos. Por esta razão, Aspose.Words fornece a capacidade de converter um documento em any supported load format para Markdown e vice – versa - Aspose.Words também suporta o mais popular save formats.
Agora, a funcionalidade para trabalhar com o formato Markdown está sendo ativamente desenvolvida para fornecer mais oportunidades de trabalho conveniente e confortável com documentos.
Converter um documento
Para converter um documento em Markdown, basta carregar um documento em qualquer formato suportado ou criar um novo programaticamente. Em seguida, você precisa salvar o documento no formato Markdown.
O exemplo de código a seguir mostra como converter DOCX em 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"); |
Você também pode especificar a pasta física na qual deseja salvar as imagens ao exportar um documento para o formato Markdown. Por padrão, Aspose.Words salva imagens na mesma pasta onde o arquivo de documento é salvo, mas você pode substituir esse comportamento usando a propriedade ImagesFolder.
Especificar uma pasta via ImagesFolder também é útil se você salvar um documento em um fluxo e Aspose.Words não tiver uma pasta para salvar imagens.
Se o ImagesFolder especificado não existir, ele será criado automaticamente.
O exemplo de código a seguir mostra como especificar uma pasta para imagens ao salvar um documento em um fluxo:
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); |
Especifique as opções de salvamento ao converter para Markdown
Aspose.Words fornece a capacidade de usar a classe MarkdownSaveOptions para trabalhar com opções avançadas ao salvar um documento no formato Markdown. A maioria das propriedades está herdando ou sobrecarregando propriedades que já existem em outras classes de Namespace Aspose.Words.Saving. Além deles, também foram adicionadas várias propriedades específicas para o formato Markdown. Por exemplo, a propriedade TableContentAlignment para controlar o alinhamento do conteúdo em tabelas ou ImageSavingCallback e ImagesFolder para controlar como as imagens são salvas ao converter um documento para o formato Markdown.
Recursos Markdown Suportados
Aspose.Words Atualmente suporta os seguintes recursos Markdown, que seguem principalmente a especificação CommonMark
no Aspose.Words API e são representados como estilos apropriados ou formatação direta:
- Os títulos são parágrafos com estilos de Título 1 - Título 6
- Blockquotes são parágrafos com “aspas” no nome do estilo
- IndentedCode são parágrafos com “IndentedCode " no nome do estilo
- FencedCode são parágrafos com “FencedCode " no nome do estilo
- InlineCode são executadas com “InlineCode " no nome do estilo
Font
- Regras horizontais são parágrafos com a forma
HorizontalRule
- Ênfase ousada
- Ênfase em itálico
- StrikeThrough formatação
- As listas são parágrafos numerados ou com marcadores
- As tabelas são representadas com a classe
Table
- Os Links são representados como a classe
FieldHyperlink
O exemplo a seguir mostra como criar um documento com alguns estilos e salvá-lo em 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"); |
O resultado deste exemplo de código é mostrado abaixo.
Dicas Úteis
Existem várias nuances e casos interessantes, tendo aprendido que você pode trabalhar com Markdown arquivos de forma mais flexível e conveniente. Por exemplo, existe a capacidade de usar:
- SetextHeading que permite criar títulos de várias linhas em Markdown, enquanto os títulos regulares em Markdown só podem ser de uma única linha. SetextHeading é baseado em um estilo “título N”, e seu nível só pode ser 1 ou 2. Se N na " rubrica N “for maior ou igual a 2, então o SetextHeading correspondente baseia-se na” rubrica 2”, caso contrário, na"rubrica 1”.
- Marcadores diferentes para o primeiro nível de listas com marcadores ("-”, “+” ou “*”, o marcador predefinido é “-”.) e diferentes tipos de numeração para listas ordenadas ("." ou “)”, o marcador predefinido é “.").