Преобразовать презентации PowerPoint в Markdown на C++

Преобразование PowerPoint в Markdown

  1. Создайте экземпляр класса Presentation, представляющего объект презентации.
  2. Используйте метод Save для сохранения объекта в markdown‑файл.

Этот код C++ показывает, как преобразовать PowerPoint в markdown:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");
pres->Save(u"pres.md", SaveFormat::Md);

Преобразование PowerPoint в варианты Markdown

Aspose.Slides позволяет конвертировать PowerPoint в markdown (с базовым синтаксисом), CommonMark, GitHub flavored markdown, Trello, XWiki, GitLab и еще 17 вариантов markdown.

Этот код C++ показывает, как преобразовать PowerPoint в CommonMark:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
auto opt = System::MakeObject<MarkdownSaveOptions>();
opt->set_Flavor(Aspose::Slides::DOM::Export::Markdown::SaveOptions::Flavor::CommonMark);
pres->Save(u"pres.md", Aspose::Slides::Export::SaveFormat::Md, opt);

23 поддерживаемых варианта markdown перечислены в Flavor enumeration класса MarkdownSaveOptions.

Преобразование презентации с изображениями в Markdown

Класс MarkdownSaveOptions предоставляет свойства и перечисления, позволяющие задавать различные параметры для получаемого markdown‑файла. Перечисление MarkdownExportType можно, например, установить в значения, определяющие способ отображения или обработки изображений: Sequential, TextOnly, Visual.

Преобразование изображений последовательно

Если вы хотите, чтобы изображения появлялись по отдельности одно за другим в получаемом markdown, нужно выбрать опцию последовательного экспорта. Этот код C++ показывает, как преобразовать презентацию с изображениями в markdown:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"pres.pptx");

System::SharedPtr<MarkdownSaveOptions> markdownSaveOptions = System::MakeObject<MarkdownSaveOptions>();

markdownSaveOptions->set_ShowHiddenSlides(true);
markdownSaveOptions->set_ShowSlideNumber(true);
markdownSaveOptions->set_Flavor(Flavor::Github);
markdownSaveOptions->set_ExportType(MarkdownExportType::Sequential);
markdownSaveOptions->set_NewLineType(NewLineType::Windows);

pres->Save(u"doc.md", System::MakeArray<int32_t>({1, 2, 3, 4, 5, 6, 7, 8, 9}), SaveFormat::Md, markdownSaveOptions);

Преобразование изображений визуально

Если вы хотите, чтобы изображения отображались вместе в получаемом markdown, нужно выбрать визуальную опцию. В этом случае изображения будут сохранены в текущий каталог приложения (и в markdown‑документе будет построен относительный путь к ним), либо вы можете указать собственный путь и имя папки.

Этот код C++ демонстрирует операцию:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
const System::String outPath = u"x:\\documents";
auto opt = System::MakeObject<MarkdownSaveOptions>();
opt->set_ExportType(Aspose::Slides::DOM::Export::Markdown::SaveOptions::MarkdownExportType::Visual);
opt->set_ImagesSaveFolderName(u"md-images");
opt->set_BasePath(outPath);
pres->Save(System::IO::Path::Combine(outPath, u"pres.md"), Aspose::Slides::Export::SaveFormat::Md, opt);

Часто задаваемые вопросы

Сохраняются ли гиперссылки при экспорте в Markdown?

Да. Текстовые гиперссылка сохраняются как стандартные ссылки Markdown. Переходы слайдов transitions и animations не конвертируются.

Могу ли я ускорить конвертацию, запустив её в нескольких потоках?

Вы можете выполнять параллельную обработку файлов, но не следует делить один и тот же объект Presentation между потоками. Используйте отдельные экземпляры/процессы для каждого файла, чтобы избежать конфликтов.

Что происходит с изображениями — где они сохраняются и являются ли пути относительными?

Images экспортируются в отдельную папку, а Markdown‑файл по умолчанию ссылается на них относительными путями. Вы можете настроить базовый путь вывода и имя папки ресурсов, чтобы поддерживать предсказуемую структуру репозитория.