Hiển thị bản trình chiếu với phông chữ dự phòng trong C++
Contents
[
Hide
]
Tổng quan
Aspose.Slides cho phép bạn hiển thị bản trình chiếu bằng cách sử dụng các quy tắc phông chữ dự phòng. Bài viết này trình bày cách tạo bộ sưu tập quy tắc phông chữ dự phòng, chỉnh sửa các quy tắc bằng cách xóa hoặc thêm phông chữ dự phòng, và gán bộ sưu tập này bằng phương thức FontsManager::set_FontFallBackRulesCollection.
Khi bộ sưu tập quy tắc phông chữ dự phòng được gán cho FontsManager của bản trình chiếu, các quy tắc sẽ được áp dụng trong các thao tác như lưu, hiển thị và chuyển đổi bản trình chiếu. Ví dụ minh họa cách sử dụng các quy tắc đã cấu hình khi hiển thị ảnh thu nhỏ của slide và lưu nó dưới dạng ảnh PNG.
Hiển thị Slide bằng Quy tắc Phông chữ Dự phòng
Ví dụ dưới đây bao gồm các bước sau:
- Chúng tôi tạo bộ sưu tập quy tắc phông chữ dự phản.
- Remove() một quy tắc phông chữ dự phòng và AddFallBackFonts() vào một quy tắc khác.
- Gửi bộ sưu tập quy tắc tới phương thức FontsManager::set_FontFallBackRulesCollection().
- Với phương thức Presentation::Save() chúng ta có thể lưu bản trình chiếu ở cùng định dạng, hoặc lưu ở định dạng khác. Sau khi bộ sưu tập quy tắc phông chữ dự phòng được đặt cho FontsManager, các quy tắc này sẽ được áp dụng trong mọi thao tác trên bản trình chiếu: lưu, hiển thị, chuyển đổi, v.v.
// Tạo một thể hiện mới của bộ sưu tập quy tắc
auto rulesList = MakeObject<FontFallBackRulesCollection>();
// Tạo một số quy tắc
rulesList->Add(MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x400), static_cast<uint32_t>(0x4FF), u"Times New Roman"));
//rulesList.Add(new FontFallBackRule(...));
for (const auto& fallBackRule : rulesList)
{
// Đang cố gắng xóa phông chữ FallBack "Tahoma" khỏi các quy tắc đã tải
fallBackRule->Remove(u"Tahoma");
// Và cập nhật các quy tắc cho phạm vi được chỉ định
if ((fallBackRule->get_RangeEndIndex() >= static_cast<uint32_t>(0x4000)) &&
(fallBackRule->get_RangeStartIndex() < static_cast<uint32_t>(0x5000)))
{
fallBackRule->AddFallBackFonts(u"Verdana");
}
}
// Ngoài ra chúng ta có thể xóa bất kỳ quy tắc nào hiện có trong danh sách
if (rulesList->get_Count() > 0)
{
rulesList->Remove(rulesList->idx_get(0));
}
auto pres = System::MakeObject<Presentation>(u"input.pptx");
// Gán danh sách quy tắc đã chuẩn bị để sử dụng
pres->get_FontsManager()->set_FontFallBackRulesCollection(rulesList);
// Kết xuất ảnh thu nhỏ bằng cách sử dụng bộ sưu tập quy tắc đã khởi tạo và lưu dưới dạng PNG
auto image = pres->get_Slide(0)->GetImage(1.f, 1.f);
image->Save(u"Slide_0.png", ImageFormat::Png);
image->Dispose();
pres->Dispose();
Đọc thêm về cách Chuyển đổi các slide PowerPoint sang PNG trong C++.