Chuyển đổi các slide PowerPoint sang PNG trong C++

Tổng quan

Bài viết này giải thích cách chuyển đổi bản trình bày PowerPoint sang hình ảnh PNG bằng Aspose.Slides. Nó cho thấy cách tải các tệp bản trình bày ở các định dạng như PPT, PPTX và ODP, hiển thị các slide dưới dạng hình ảnh và lưu kết quả ở định dạng PNG.

Bài viết cũng trình bày cách tùy chỉnh các hình ảnh PNG được tạo bằng cách đặt giá trị tỉ lệ hoặc chỉ định chiều rộng và chiều cao mong muốn.

Chuyển đổi PowerPoint sang PNG

Thực hiện các bước sau:

  1. Khởi tạo lớp Presentation.
  2. Lấy đối tượng slide từ bộ sưu tập Presentation::get_Slides() dưới giao diện ISlide.
  3. Sử dụng phương thức ISlide::GetImage() để lấy hình thu nhỏ cho mỗi slide.
  4. Dùng phương thức IImage::Save(String, ImageFormatPtr để lưu hình thu nhỏ của slide sang định dạng PNG.

Đoạn mã C++ sau cho thấy cách chuyển đổi bản trình bày PowerPoint sang PNG:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
    
for (int32_t index = 0; index < pres->get_Slides()->get_Count(); index++)
{
    auto slide = pres->get_Slides()->idx_get(index);
    auto fileName = String::Format(u"slide_{0}.png", index);
    slide->GetImage()->Save(fileName, ImageFormat::Png);
}

Chuyển đổi PowerPoint sang PNG với Kích thước Tùy chỉnh

Nếu bạn muốn tạo các tệp PNG với một tỉ lệ nhất định, bạn có thể đặt các giá trị cho desiredXdesiredY, những giá trị này xác định kích thước của hình thu nhỏ kết quả.

Đoạn mã C++ dưới đây minh họa thao tác đã mô tả:

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

float scaleX = 2.f;
float scaleY = 2.f;
for (int32_t index = 0; index < pres->get_Slides()->get_Count(); index++)
{
    auto slide = pres->get_Slides()->idx_get(index);
    auto fileName = String::Format(u"slide_{0}.png", index);
    slide->GetImage(scaleX, scaleY)->Save(fileName, ImageFormat::Png);
}

Chuyển đổi PowerPoint sang PNG với Kích thước Tuỳ ý

Nếu bạn muốn tạo các tệp PNG với một kích thước cụ thể, bạn có thể truyền các đối số widthheight mong muốn cho ImageSize.

Đoạn mã này cho thấy cách chuyển đổi PowerPoint sang PNG trong khi chỉ định kích thước cho các hình ảnh:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
    
Size size(960, 720);
for (int32_t index = 0; index < pres->get_Slides()->get_Count(); index++)
{
    auto slide = pres->get_Slides()->idx_get(index);
    auto fileName = String::Format(u"slide_{0}.png", index);
    slide->GetImage(size)->Save(fileName, ImageFormat::Png);
}

Câu hỏi thường gặp

Làm sao tôi có thể xuất chỉ một hình dạng cụ thể (ví dụ: biểu đồ hoặc ảnh) thay vì toàn bộ slide?

Aspose.Slides hỗ trợ tạo hình thu nhỏ cho các hình dạng riêng lẻ; bạn có thể hiển thị một hình dạng dưới dạng hình ảnh PNG.

Có hỗ trợ chuyển đổi song song trên máy chủ không?

Có, nhưng không chia sẻ một thể hiện bản trình bày duy nhất giữa các luồng. Sử dụng một thể hiện riêng cho mỗi luồng hoặc tiến trình.

Các hạn chế của phiên bản dùng thử khi xuất sang PNG là gì?

Chế độ đánh giá sẽ thêm một watermark vào các hình ảnh đầu ra và áp dụng các hạn chế khác cho đến khi có giấy phép.