Konwertuj prezentacje PowerPoint do Markdown w Pythonie

Przegląd

Aspose.Slides for Python via .NET może konwertować prezentacje PPT i PPTX do formatu Markdown przeznaczonego do dokumentacji, stron statycznych, migracji treści i przepływów pracy z kontrolą wersji. Możesz wybrać wariant Markdown, kontrolować sposób renderowania zawartości slajdów oraz zdecydować, gdzie będą przechowywane wyeksportowane obrazy i jak generowany Markdown będzie je odwoływał.

Domyślnie eksport Markdown używa wyjścia tylko tekstowego. Aby wyeksportować zawartość wizualną, ustaw właściwość MarkdownSaveOptions.export_type na wartość SEQUENTIAL lub VISUAL z wyliczenia MarkdownExportType. SEQUENTIAL renderuje elementy slajdu osobno i kolejno, natomiast VISUAL utrzymuje grupowane elementy razem, aby zachować ich relację wizualną. Wartość TEXT_ONLY nie generuje zasobów obrazów.

Konwertowanie prezentacji do Markdown

Wczytaj plik źródłowy przy użyciu klasy Presentation, a następnie wywołaj metodę Presentation.save z wartością MD z wyliczenia SaveFormat.

import aspose.slides as slides

with slides.Presentation("presentation.pptx") as presentation:
    presentation.save("presentation.md", slides.export.SaveFormat.MD)

Wybierz wariant Markdown

Właściwość MarkdownSaveOptions.flavor kontroluje specyfikację Markdown używaną w wyniku. Wyliczenie Flavor zawiera CommonMark, GitHub Flavored Markdown oraz inne obsługiwane warianty.

Poniższy przykład eksportuje prezentację jako 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)

Eksportowanie obrazów przy użyciu domyślnego zachowania zapisu lokalnego

Klasa MarkdownSaveOptions udostępnia dwie właściwości dla lokalnie zapisywanych obrazów:

  • base_path określa podstawowy katalog dla dokumentu Markdown i jego zasobów.
  • images_save_folder_name określa podkatalog obrazów. Jego domyślną wartością jest Images.

Poniższy przykład renderuje zawartość wizualną, zapisuje obrazy w output/assets i tworzy względne odwołania do obrazów w dokumencie 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 tworzy podkatalog obrazów, gdy eksport generuje zasoby obrazów, ale aplikacja musi utworzyć base_path przed zapisaniem pliku Markdown.

Przygotowanie Markdown i obrazów do publikacji

Aspose.Slides for Python via .NET nie udostępnia wywołań zwrotnych .NET zapisywania obrazu do zastępowania każdego wygenerowanego odnośnika obrazu w trakcie eksportu. Zamiast tego wyeksportuj dokument Markdown i jego folder z obrazami do katalogu publikacji, a następnie opublikuj ten katalog nie zmieniając jego względnej struktury.

Poniższy przykład przygotowuje cdn-origin/presentations/quarterly-report jako zamontowany lub zsynchronizowany katalog publikacji. Sam przykład nie wykonuje żadnego przesyłania sieciowego: wygenerowane odnośniki stają się ważne po opublikowaniu katalogu w docelowej witrynie lub lokalizacji 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)

Opublikuj presentation.md razem z katalogiem assets. Dokument Markdown używa względnych odwołań do obrazów, więc oba elementy muszą zachować tę samą relację w miejscu docelowym. Jeśli system publikacji wymaga bezwzględnych zewnętrznych adresów URL, przepisz wygenerowane odnośniki w osobnym kroku post‑processingu po opublikowaniu wszystkich plików obrazu.

FAQ

Czy wywołania zwrotne Pythona mogą dostosowywać pojedyncze pliki obrazów i odnośniki podczas eksportu do Markdown?

Nie. Aspose.Slides for Python via .NET nie udostępnia wywołań zwrotnych .NET ImageSaving i SvgImageSaving. Skonfiguruj lokalny wynik przy użyciu MarkdownSaveOptions.base_path i MarkdownSaveOptions.images_save_folder_name, a następnie opublikuj lub poddaj generowane zasoby post‑processingu.

Gdzie są zapisywane wyeksportowane obrazy?

Lokalizacją obrazów sterują MarkdownSaveOptions.base_path i MarkdownSaveOptions.images_save_folder_name. Dokument Markdown odwołuje się do tych obrazów za pomocą względnych ścieżek.

Jaki separator ścieżek powinny używać odnośniki do obrazów?

Używaj ukośników (/) w odnośnikach Markdown i adresach URL. os.path.join stosuj wyłącznie do ścieżek systemu plików, a wszelkie odnośniki tworzone w trakcie post‑processingu normalizuj oddzielnie.

Czy odnośniki hipertekstowe są zachowywane podczas eksportu do Markdown?

Tak. Tekstowe hiperłącza są zachowywane jako standardowe odnośniki Markdown. Przejścia i animacje slajdów nie są konwertowane.

Czy prezentacje mogą być konwertowane do Markdown równolegle?

Możesz przetwarzać różne pliki prezentacji równolegle, ale nie udostępniaj tej samej instancji Presentation między wątkami. Postępuj zgodnie z multithreading guidelines i używaj osobnej instancji dla każdego pliku.