Skip to main content

Crate ppt_rs

Crate ppt_rs 

Source
Expand description

PowerPoint (.pptx) file manipulation library

A comprehensive Rust library for creating, reading, and updating PowerPoint 2007+ (.pptx) files.

§Quick Start

use ppt_rs::{create_pptx_with_content, SlideContent};

let slides = vec![
    SlideContent::new("Welcome")
        .add_bullet("First point")
        .add_bullet("Second point"),
];
let pptx_data = create_pptx_with_content("My Presentation", slides).unwrap();
std::fs::write("output.pptx", pptx_data).unwrap();

§Module Organization

  • core - Core traits (ToXml, Positioned) and utilities (XML utils, dimensions, validation, package validation)
  • elements - Unified element types (Color, Position, Size, Transform)
  • generator - PPTX file generation with ZIP packaging and XML creation
  • parts - Package parts (SlidePart, ImagePart, ChartPart)
  • api - High-level Presentation builder (create, save, import, export)
  • prelude - Simplified API: macros, unit helpers, shapes, colors, themes
  • helpers - Color / table / shape / extension helpers
  • templates - Pre-built presentation templates
  • export - Export to Markdown, HTML, images
  • import - PPTX import, HTML-to-PPTX
  • opc - Open Packaging Convention (ZIP) handling
  • oxml - Office XML parsing and manipulation
  • exc - Error types

Re-exports§

pub use api::Presentation;
pub use core::ToXml;
pub use core::escape_xml;
pub use elements::Color;
pub use elements::RgbColor;
pub use elements::SchemeColor;
pub use elements::Position;
pub use elements::Size;
pub use elements::Transform;
pub use exc::messages;
pub use exc::PptxError;
pub use exc::Result;
pub use generator::create_pptx;
pub use generator::create_pptx_with_content;
pub use generator::create_pptx_with_settings;
pub use generator::create_pptx_with_template;
pub use generator::create_pptx_to_writer;
pub use generator::create_pptx_with_content_to_writer;
pub use generator::create_pptx_lazy_to_writer;
pub use generator::LazySlideSource;
pub use generator::PptxTemplate;
pub use generator::STANDARD_LAYOUT_COUNT;
pub use generator::SlideContent;
pub use generator::SlideLayout;
pub use generator::TextFormat;
pub use generator::FormattedText;
pub use generator::Table;
pub use generator::TableRow;
pub use generator::TableCell;
pub use generator::TableBuilder;
pub use generator::Shape;
pub use generator::ShapeType;
pub use generator::ShapeFill;
pub use generator::ShapeLine;
pub use generator::Image;
pub use generator::ImageBuilder;
pub use generator::ImageSource;
pub use generator::Chart;
pub use generator::ChartType;
pub use generator::ChartSeries;
pub use generator::ChartBuilder;
pub use generator::BulletStyle;
pub use generator::BulletPoint;
pub use generator::TextDirection;
pub use generator::RtlLanguage;
pub use generator::RtlTextProps;
pub use generator::Comment;
pub use generator::CommentAuthor;
pub use generator::CommentAuthorList;
pub use generator::SlideComments;
pub use generator::SlideSection;
pub use generator::SectionManager;
pub use generator::DigitalSignature;
pub use generator::SignerInfo;
pub use generator::HashAlgorithm;
pub use generator::SignatureCommitment;
pub use generator::InkAnnotations;
pub use generator::InkStroke;
pub use generator::InkPen;
pub use generator::InkPoint;
pub use generator::PenTip;
pub use generator::SlideShowSettings;
pub use generator::ShowType;
pub use generator::PenColor;
pub use generator::SlideRange;
pub use generator::PrintSettings;
pub use generator::HandoutLayout;
pub use generator::PrintColorMode;
pub use generator::PrintWhat;
pub use generator::Orientation;
pub use generator::TableMergeMap;
pub use generator::MergeRegion;
pub use generator::CellMergeState;
pub use generator::EmbeddedFontList;
pub use generator::EmbeddedFont;
pub use generator::FontStyle;
pub use generator::FontCharset;
pub use generator::PresentationSettings;
pub use generator::PresentationTheme;
pub use generator::ThemeColorScheme;
pub use generator::ThemeFonts;
pub use generator::Connector;
pub use generator::ConnectorType;
pub use generator::ConnectorLine;
pub use generator::ArrowType;
pub use generator::ArrowSize;
pub use generator::ConnectionSite;
pub use generator::LineDash;
pub use generator::HyperlinkAction;
pub use generator::GradientFill;
pub use generator::GradientType;
pub use generator::GradientDirection;
pub use generator::GradientStop;
pub use generator::PresetGradients;
pub use generator::Video;
pub use generator::Audio;
pub use generator::VideoFormat;
pub use generator::AudioFormat;
pub use generator::VideoOptions;
pub use generator::AudioOptions;
pub use core::validate_package;
pub use core::validate_package_bytes;
pub use core::validate_powerpoint_structure;
pub use core::CompatReport;
pub use core::PackageValidationIssue;
pub use core::PackageValidationReport;
pub use core::REQUIRED_PACKAGE_PARTS;
pub use core::ValidationCategory;
pub use core::ValidationSeverity;
pub use import::html::parse_html;
pub use import::html::parse_html_with_options;
pub use import::html::HtmlParseOptions;
pub use import::html::Html2Ppt;
pub use export::md::MarkdownOptions;
pub use export::md::export_to_markdown;
pub use export::md::export_to_markdown_with_options;
pub use export::image_export::ImageExportOptions;
pub use export::image_export::ImageFormat;
pub use export::image_export::export_to_images;
pub use export::image_export::export_slide_to_image;
pub use export::image_export::render_thumbnail;
pub use export::slide_render::render_to_pdf;
pub use export::slide_render::render_to_pdf_bytes;
pub use export::pdf_export::export_to_pdf;
pub use export::pdf_export::export_to_pdf_bytes;
pub use export::pdf_export::PdfExportOptions;
pub use export::pdf_export::PdfOrientation;
pub use opc::compress::CompressionOptions;
pub use opc::compress::CompressionLevel;
pub use opc::compress::CompressionResult;
pub use opc::compress::compress_pptx;
pub use opc::compress::compress_pptx_in_memory;
pub use opc::compress::analyze_pptx;
pub use parts::Part;
pub use parts::PartType;
pub use parts::ContentType;
pub use parts::PresentationPart;
pub use parts::SlidePart;
pub use parts::SlideLayoutPart;
pub use parts::LayoutType;
pub use parts::SlideMasterPart;
pub use parts::ThemePart;
pub use parts::NotesSlidePart;
pub use parts::ImagePart;
pub use parts::MediaPart;
pub use parts::MediaFormat;
pub use parts::ChartPart;
pub use parts::TablePart;
pub use parts::TableRowPart;
pub use parts::TableCellPart;
pub use parts::CorePropertiesPart;
pub use parts::AppPropertiesPart;
pub use parts::ContentTypesPart;
pub use parts::Relationships;

Modules§

api
Public API module
core
Core traits and types for pptx-rs
elements
Unified PPTX element types
exc
Exception types for pptx library
export
Export functionality
generator
PPTX file generator - creates proper ZIP-based PPTX files
helpers
Simplified helper functions for common operations
import
opc
OPC (Open Packaging Convention) package handling
oxml
OXML (Office XML) element handling
parts
Package parts module
prelude
Prelude module for easy imports
templates
Template module for common presentation types

Macros§

pptx
Quick presentation builder macro
shape
Quick shape creation

Constants§

VERSION