Introduction
Aspose.Slides FOSS for C++ (aspose_slides_foss) ücretsiz, açık kaynaklı bir C++20 kütüphanesi oluşturmak ve PowerPoint sunumları programlama ile manipüle etmek için. tamamen yerli C ++ içinde inşa edilmiş dış çalışma süresi bağımlılık CMake 3.20+, geliştiriciler için herhangi bir Microsoft Office veya özel yazılım gerektirmeden PPTX dosyaları üzerinde tam kontrol sağlar.
Kütüphane MIT lisansı altında yayınlanmaktadır, hem ticari hem de ticarsız projeler için uygundur. Aspose::Slides::Foss Namespace ve sunuyor zengin bir nesne modeli sunumları, slaytlar, şekiller, tablolar, metin çerçeveleri, belge özellikleri, yorumlar ve PPTX ihracat kapsamaktadır.
Bu yazı temel API yüzeyinden geçer: sunumları oluştururken, biçimlendirirken ve kaydetmek için en sık kullanacağınız sınıflar ve yöntemler.
Ne içeriyor
Slide ve Slid Management
O zamanlar Presentation sınıf giriş noktasıdır. yeni bir örnek oluşturmak size içeriğe hemen hazır olan varsayılan bir slayt verir. SlideCollection Geri döndü slides(), indekslenmiş erişim, iterasyon, kaldırma ve yeniden sıralamayı destekleyen.
#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;
Presentation pres;
auto& slide = pres.slides()[0]; // first slide
// Work with the slide...
pres.save("output.pptx", SaveFormat::PPTX);
Şekilleri ve AutoShapes
Her slayt bir ShapeCollection Onun aracılığıyla shapes() Koleksiyon farklı şekil türleri eklemek için fabrika yöntemleri sağlar: add_auto_shape standart geometrik şekiller için (doğruluklar, elipsler, üçgenler), add_connector Line konektörler için, add_table Tablolar için ve add_picture_frame resim için.
auto& slide = pres.slides()[0];
// Add a rectangle
auto& rect = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 300, 100);
// Add an ellipse
auto& ellipse = slide.shapes().add_auto_shape(
ShapeType::ELLIPSE, 400, 50, 150, 150);
// Add a connector between shapes
auto& conn = slide.shapes().add_connector(
ShapeType::BENT_CONNECTOR3, 0, 0, 1, 1);
O zamanlar ShapeCollection Ayrıca destekler size(), remove(), remove_at(), reorder(), index_of(),ve clear() Yaratılıştan sonra şekillendirme.
Yazı ve Paragraf Formatı
Yazılar yazılı olarak yapabilir TextFrame.Kullanım add_text_frame() Birinde bir AutoShape Yazı içeriğini eklemek veya mevcut çerçeveye erişmek için text_frame().1. Yazı, bir veya daha fazla bölüm içeren paragraflara ayrılır. BasePortionFormat Sınıf, cesur, italik, alt çizgi tipi, kapitalizasyon, sıkı ve yazı tipi renkleri dahil olmak üzere yazı tipleri özelliklerini ortaya çıkarır.
auto& shape = pres.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 300, 100, false);
shape.add_text_frame("Hello, world!");
auto text = shape.text_frame()->text(); // "Hello, world!"
Fill, Gradient ve Visual Effects
Her şekil bir FillFormat erişilebilir yolda fill_format().• Sabit doldurma, gradient dolduranlar veya model doldurunlar ayarlayabilirsiniz. set_fill_type() • Gradient doldurma yöntemleri, gradients dolduranlar aracılığıyla yapılandırılır. GradientFormat lineer açıları, gradient şekli ve renk duraklarını destekleyen nesne GradientStopCollection.
auto& shape = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 300, 150);
shape.fill_format().set_fill_type(FillType::GRADIENT);
auto& gf = shape.fill_format().gradient_format();
gf.set_gradient_shape(GradientShape::LINEAR);
gf.set_linear_gradient_angle(45);
gf.gradient_stops().add(0.0f, Color::blue);
gf.gradient_stops().add(1.0f, Color::red);
O zamanlar EffectFormat Sınıf (Açıkça Kullanılabilir) effect_format()(Daha fazla bilgi için tıklayınız) Yumuşak ve yumuşa bir etki ile her etkiye özel bir yöntem eklendi.enable_glow_effect(), enable_outer_shadow_effect(), enable_soft_edge_effect()(D) ve geri dönüşü olan nesne ile yapılandırılmıştır.
Tables
Tablolar ile oluşturulmuştur. add_table() Şekil koleksiyonunda. sütun genişlikleri ve vektörler olarak sıralama yüksekliği sağlarsınız. geri dönüşü Table Object Açıklama rows() ve columns() Koleksiyonlar ve bireysel Cell • Konu içeriği destekleyin TextFrame.
std::vector<double> col_widths = {100, 150, 200};
std::vector<double> row_heights = {40, 40, 40};
auto& table = slide.shapes().add_table(
50, 50, col_widths, row_heights);
// table.rows().size() == 3
// table.columns().size() == 3
Belge Özellikleri ve Yorumlar
O zamanlar DocumentProperties Sınıf, başlık, yazar, konu, anahtar kelimeler, kategoriler, revizyon numarası ve zaman çubuğu gibi metadata ayarlamanıza izin verir.
Yorumlar yoluyla yönetiliyor CommentAuthorCollection ve CommentCollection.Yazarları eklemek için add_author(), sonra belirli koordinatlarda belirleyici slaytlara yorum ekleyin.
Presentation pres;
auto& author = pres.comment_authors().add_author("Alice", "A");
auto& slide = pres.slides()[0];
auto& comment = author.comments().add_comment(
"Review note", slide, PointF(2.0f, 3.0f), now);
Hızlı Başlangıç
Kaynaklardan inşaat
Kütüphane CMake 3.20+ ve C++20 kapasiteli bir kopyayı gerektirir. depolama alanını klonlayın ve yapın:
git clone https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
cd Aspose.Slides-FOSS-for-Cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build
Minimum Örnekler
#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;
int main() {
Presentation pres;
auto& slide = pres.slides()[0];
// Add a shape with text
auto& shape = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 300, 100, false);
shape.add_text_frame("Hello from Aspose.Slides FOSS!");
// Apply a solid fill
shape.fill_format().set_fill_type(FillType::SOLID);
shape.fill_format().solid_fill_color().set_color(Color::blue);
// Save
pres.save("hello.pptx", SaveFormat::PPTX);
return 0;
}
Desteklenen Formatlar
O zamanlar SaveFormat enum tüm ihracat hedeflerini tanımlar. kaynak kodunda aşağıdaki biçimler doğrulanır:
| Format | Extension | Read | Write |
|---|---|---|---|
| PPTX | .pptx için | – | Evet |
| PPT | .PTT | – | Planned |
| PPSX | .px için | – | Planned |
| PPTM | .pptm için | – | Planned |
| PPSM | .PPSM | – | Planned |
| POTX | .POTX İÇİN | – | Planned |
| POTM | .POTM İÇİN | – | Planned |
| POT | .Pot | – | Planned |
| PPS | .pps için | – | Planned |
| ODP | .ODP | – | Planned |
| OTP | .OTP | – | Planned |
| FODP | .FODP için | – | Planned |
| .pdf için | – | Planned | |
| XPS | .xps için | – | Planned |
| HTML | .Html | – | Planned |
| HTML5 | .Html | – | Planned |
| TIFF | .Tif | – | Planned |
| GIF | .GIF | – | Planned |
| SWF | .SGK | – | Planned |
| MD | .Md | – | Planned |
| XML | .xml için | – | Planned |
Not : Şu anda sadece PPTX ihracatı uygulanır. diğer format değerleri mevcuttur SaveFormat enum ön uyumluluk için ama henüz işlevsel değil. save() Metod her zaman format parametresine bakılmaksızın PPTX çıkışını üretir.
Açık Kaynak & Lisans
Aspose.Slides FOSS for C++ is released under the MIT license. You can use it freely in personal projects, commercial applications, and redistributed libraries. There are no API keys, watermarks, or usage limits. The full source code is available on GitHub at HTTPS://github.com/aspose-slides-foss/Aspose.Slides - FOSS-for-Cpp için.
Başlamaya başlar
C++ projenize Aspose.Slides FOSS’u entegre etmeye hazır mısınız?:
- Documentation: HTTPS://docs.aspose.org/slides/cpp/ için tıklayınız Geliştirici rehberleri, öğretileri ve kavramsal incelemeleri için.
- Bilgi Temeli: HTTPS://kb.aspose.org/slides/cpp/ için tıklayınız FAQ’lar ve ortak görevleri kapsayan makaleler için nasıl.
- API Referansları: HTTPS://reference.aspose.org/slides/cpp/ için yorum yapın Tüm toplu API’nin sınıf-sınıf belgelerine uygulanır.