Конвертировать презентации PowerPoint в Markdown с помощью Python
Обзор
Aspose.Slides for Python via .NET может конвертировать презентации PPT и PPTX в Markdown для документации, статических сайтов, миграции контента и рабочих процессов контроля версий. Вы можете выбрать вариант Markdown, управлять тем, как отображается содержимое слайдов, и решить, где хранить экспортированные изображения и как сгенерированный Markdown будет ссылаться на них.
По умолчанию экспорт в Markdown использует только текстовый вывод. Чтобы экспортировать визуальное содержимое, установите свойство MarkdownSaveOptions.export_type в значение SEQUENTIAL или VISUAL из перечисления MarkdownExportType. SEQUENTIAL рендерит элементы слайда отдельно и по порядку, тогда как VISUAL сохраняет сгруппированные элементы вместе, чтобы сохранить их визуальное отношение. Значение TEXT_ONLY не создает ресурсы изображений.
Преобразовать презентацию в Markdown
Загрузите исходный файл с помощью класса Presentation, а затем вызовите метод Presentation.save с значением MD из перечисления SaveFormat.
import aspose.slides as slides
with slides.Presentation("presentation.pptx") as presentation:
presentation.save("presentation.md", slides.export.SaveFormat.MD)
Выбрать вариант Markdown
Свойство MarkdownSaveOptions.flavor контролирует спецификацию Markdown, используемую для вывода. Перечисление Flavor включает CommonMark, GitHub Flavored Markdown и другие поддерживаемые варианты.
Следующий пример экспортирует презентацию как CommonMark:
import aspose.slides as slides
options = slides.export.MarkdownSaveOptions()
options.flavor = slides.export.Flavor.COMMON_MARK
with slides.Presentation("presentation.pptx") as presentation:
presentation.save("presentation.md", slides.export.SaveFormat.MD, options)
Экспорт изображений с использованием поведения сохранения по умолчанию
Класс MarkdownSaveOptions предоставляет два свойства для локально сохраняемых изображений:
- base_path указывает базовый каталог для документа Markdown и его ресурсов.
- images_save_folder_name указывает подпапку изображений. Значение по умолчанию
Images.
Следующий пример рендерит визуальное содержимое, записывает изображения в output/assets и создаёт относительные ссылки на изображения в документе Markdown:
import os
import aspose.slides as slides
output_directory = "output"
os.makedirs(output_directory, exist_ok=True)
options = slides.export.MarkdownSaveOptions()
options.export_type = slides.export.MarkdownExportType.VISUAL
options.base_path = output_directory
options.images_save_folder_name = "assets"
markdown_path = os.path.join(output_directory, "presentation.md")
with slides.Presentation("presentation.pptx") as presentation:
presentation.save(markdown_path, slides.export.SaveFormat.MD, options)
Aspose.Slides создаёт подпапку изображений, когда экспорт создаёт ресурсы изображений, но приложение должно создать base_path перед сохранением файла Markdown.
Подготовить Markdown и изображения к публикации
Aspose.Slides for Python via .NET не предоставляет .NET обратные вызовы сохранения изображений для замены каждой сгенерированной ссылки на изображение во время экспорта. Вместо этого экспортируйте документ Markdown и его папку с изображениями в каталог публикации, а затем публикуйте этот каталог, не меняя его относительную структуру.
Следующий пример готовит cdn-origin/presentations/quarterly-report как смонтированный или синхронизированный каталог публикации. Сам пример не выполняет сетевую загрузку: сгенерированные ссылки станут действительными после публикации каталога в целевом сайте или CDN.
import os
import aspose.slides as slides
publication_directory = os.path.join(
"cdn-origin",
"presentations",
"quarterly-report")
os.makedirs(publication_directory, exist_ok=True)
options = slides.export.MarkdownSaveOptions()
options.export_type = slides.export.MarkdownExportType.VISUAL
options.base_path = publication_directory
options.images_save_folder_name = "assets"
markdown_path = os.path.join(publication_directory, "presentation.md")
with slides.Presentation("presentation.pptx") as presentation:
presentation.save(markdown_path, slides.export.SaveFormat.MD, options)
Опубликуйте presentation.md вместе с каталогом assets. Документ Markdown использует относительные ссылки на изображения, поэтому оба элемента должны сохранять одинаковое отношение в месте назначения. Если система публикации требует абсолютных внешних URL, преобразуйте сгенерированные ссылки в отдельном постобработочном этапе после публикации всех файлов изображений.
FAQ
Можно ли с помощью обратных вызовов Python настроить отдельные файлы изображений и ссылки при экспорте в Markdown?
Нет. Aspose.Slides for Python via .NET не предоставляет .NET ImageSaving и SvgImageSaving обратные вызовы. Настройте локальный вывод с помощью MarkdownSaveOptions.base_path и MarkdownSaveOptions.images_save_folder_name, затем публикуйте или постобрабатывайте сгенерированные ресурсы.
Где сохраняются экспортированные изображения?
Расположение изображения контролируется MarkdownSaveOptions.base_path и MarkdownSaveOptions.images_save_folder_name. Документ Markdown ссылается на эти изображения через относительные пути.
Какой разделитель пути следует использовать в ссылках на изображения?
Используйте прямые слеши в ссылках Markdown и URL. os.path.join используйте только для путей файловой системы и нормализуйте любые ссылки, созданные во время постобработки, отдельно.
Сохраняются ли гиперссылки при экспорте в Markdown?
Да. Текстовые hyperlinks сохраняются как стандартные ссылки Markdown. Переходы слайдов transitions и animations не конвертируются.
Можно ли преобразовывать несколько презентаций в Markdown параллельно?
Вы можете обрабатывать разные файлы презентаций параллельно, но не разделяйте один экземпляр Presentation между потоками. Следуйте multithreading guidelines и используйте отдельный экземпляр для каждого файла.