C++'ta Sunumları Nasıl Yüklenir

C++'ta Sunumları Nasıl Yüklenir

Aspose.Slides FOSS for C++ lets you open any .pptx dosyayı, içeriğini inceleyin ve ya PPTX olarak geri kaydedin ya da verileri ondan çıkarın. Bu kılavuz, bir dosyanın açılmasını, slaytların döngüyle gezilmesini, şekil metninin okunmasını ve kaydetmenin geri dönüşümünü kapsar.

Adım Adım Kılavuz

Adım 1: Kütüphaneyi Derleyin ve Bağlayın

git clone https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
cd Aspose.Slides-FOSS-for-Cpp && mkdir build && cd build
cmake .. && cmake --build .

Adım 2: Mevcut Bir Sunumu Aç

Dosya yolunu şuna aktarın Presentation yapıcı. Yıkıcı temizlik işlemlerini gerçekleştirir.

#include <Aspose/Slides/Foss/presentation.h>
#include <iostream>

int main() {
    namespace asf = Aspose::Slides::Foss;

    asf::Presentation prs("input.pptx");
    std::cout << "Slide count: " << prs.slides().size() << "\n";
    prs.save("output.pptx", asf::SaveFormat::PPTX);
    return 0;
}

Kaynak dosyadaki bilinmeyen XML bölümleri olduğu gibi korunur: kütüphane henüz anlamadığı içeriği asla kaldırmaz.


Adım 3: Slaytları İncele

Tüm slaytlar üzerinde döngü yapın ve şekil sayılarını yazdırın:

#include <Aspose/Slides/Foss/presentation.h>
#include <iostream>

int main() {
    namespace asf = Aspose::Slides::Foss;

    asf::Presentation prs("deck.pptx");
    for (size_t i = 0; i < prs.slides().size(); ++i) {
        auto& slide = prs.slides()[i];
        std::cout << "Slide " << i << ": "
                  << slide.shapes().size() << " shapes\n";
    }
    return 0;
}

Adım 4: Şekil Metnini Oku

Şekiller üzerinde döngü yapın ve bir text frame sahip olan şekillerden metni okuyun. TextFrame:

#include <Aspose/Slides/Foss/presentation.h>
#include <iostream>

int main() {
    namespace asf = Aspose::Slides::Foss;

    asf::Presentation prs("deck.pptx");
    for (size_t i = 0; i < prs.slides().size(); ++i) {
        auto& slide = prs.slides()[i];
        for (size_t j = 0; j < slide.shapes().size(); ++j) {
            auto& shape = slide.shapes()[j];
            if (shape.has_text_frame()) {
                auto text = shape.text_frame()->text();
                if (!text.empty()) {
                    std::cout << "  Shape text: " << text << "\n";
                }
            }
        }
    }
    return 0;
}

Adım 5: Belge Özelliklerini Oku

Temel belge özelliklerine şuradan erişin prs.document_properties():

#include <Aspose/Slides/Foss/presentation.h>
#include <iostream>

int main() {
    namespace asf = Aspose::Slides::Foss;

    asf::Presentation prs("deck.pptx");
    auto& props = prs.document_properties();
    std::cout << "Title:   " << props.title() << "\n";
    std::cout << "Author:  " << props.author() << "\n";
    std::cout << "Subject: " << props.subject() << "\n";
    return 0;
}

Adım 6: Döngüsel Kaydetme

Sunumu inceledikten veya değiştirdikten sonra, PPTX olarak geri kaydedin:

prs.save("output.pptx", asf::SaveFormat::PPTX);

Farklı bir yola kaydetmek yeni bir dosya oluşturur. Aynı yola kaydetmek orijinali üzerine yazar.


Yaygın Sorunlar ve Çözümler

Dosya bulunamadı veya açılamıyor

Yolun … olduğundan emin olun .pptx dosyanın çalışma dizinine göre doğru olduğundan emin olun. Kullan std::filesystem::path sağlam yol oluşturma için:

#include <filesystem>
auto path = std::filesystem::path(__FILE__).parent_path() / "assets" / "deck.pptx";
asf::Presentation prs(path.string());

İstisna: Dosya formatı desteklenmiyor

Kütüphane şunları destekler: .pptx (Office Open XML) yalnızca. Eski .ppt (binary PowerPoint 97-2003) dosyaları desteklenmez.

Şeklin text_frame’i yok

Bazı şekiller (Connectors, PictureFrames, GroupShapes) bir metin çerçevesine sahip değildir. Şununla koruyun shape.has_text_frame() metne erişmeden önce.


Sık Sorulan Sorular

Yükleme tüm orijinal içeriği koruyor mu?

Evet. Bilinmeyen XML bölümleri, çift yönlü kaydetmede olduğu gibi olduğu gibi korunur. Kütüphane yalnızca anladığı belge modeli bölümlerini serileştirir ve tanımadığı XML’i olduğu gibi geçirir.

Şifre korumalı bir PPTX dosyasını yükleyebilir miyim?

Şifre korumalı (şifreli) sunumlar bu sürümde desteklenmez.

Gömülü görüntüleri çıkarabilir miyim?

Görseller koleksiyonuna erişin: prs.images() şunu döndürür: ImageCollection. Her görsel bir … içerir. width(), height(), ve binary_data() ham görüntü verisini okuma yöntemi.

Bellek içi bir tampondan yükleme destekleniyor mu?

bir kaynaktan yükleme std::vector<uint8_t> veya std::istream mevcut API’de ortaya çıkarılmamış. Baytları önce geçici bir dosyaya yazın, ardından yolu Presentation yapıcıya.


Ayrıca Bakınız

 Türkçe