Flutter PPTX处理插件flutter_pptx的使用

发布于 1周前 作者 songsunli 来自 Flutter

好的,以下是关于Flutter PPTX处理插件flutter_pptx的完整示例代码:

import 'package:flutter/material.dart';
import 'package:dart_pptx/dart_pptx.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter PPTX Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  [@override](/user/override)
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final Powerpoint _pres = Powerpoint();

  void createPresentation() {
    // 创建标题幻灯片
    _pres.addTitleSlide(title: 'Title', author: 'Author');

    // 添加带照片的标题幻灯片
    _pres.addTitleAndPhotoSlide(
      title: 'Title',
      subtitle: 'Subtitle',
      author: 'Author',
      image: ImageReference(
        path: './samples/images/sample_gif.gif',
        name: 'Sample Gif',
      ),
    );

    // 添加带照片的替代标题幻灯片
    _pres.addTitleAndPhotoAltSlide(
      title: 'Title',
      subtitle: 'Subtitle',
      image: ImageReference(
        path: './samples/images/sample_jpg.jpg',
        name: 'Sample Jpg',
      ),
    );

    // 添加带子弹点的标题幻灯片
    _pres.addTitleAndBulletsSlide(
      title: 'Title',
      subtitle: 'Subtitle',
      bullets: [
        'Bullet 11',
        'Bullet 2',
        'Bullet 3',
        'Bullet 4',
      ].map((e) => e.toTextValue()).toList(),
    );

    // 添加纯文本的标题幻灯片
    _pres.addTitleOnlySlide(
      title: 'Title',
      subtitle: 'Subtitle',
    );

    // 添加议程幻灯片
    _pres.addAgendaSlide(
      title: 'Title',
      subtitle: 'Subtitle',
      topics: 'Topics',
    );

    // 添加陈述幻灯片
    _pres.addStatementSlide(
      statement: 'Statement',
    );

    // 添加大事实幻灯片
    _pres.addBigFactSlide(
      information: 'Information',
      fact: 'Fact',
    );

    // 添加引用幻灯片
    _pres.addQuoteSlide(
      quote: 'Quote',
      attribution: 'Attribution',
    );

    // 添加三张照片的幻灯片
    _pres.addPhoto3UpSlide(
      image1: ImageReference(
        path: './samples/images/sample_jpg.jpg',
        name: 'Sample Jpg',
      ),
      image2: ImageReference(
        path: './samples/images/sample_jpg.jpg',
        name: 'Sample Jpg',
      ),
      image3: ImageReference(
        path: './samples/images/sample_jpg.jpg',
        name: 'Sample Jpg',
      ),
    );

    // 添加一张照片的幻灯片
    _pres.addPhotoSlide(
      image: ImageReference(
        path: './samples/images/sample_jpg.jpg',
        name: 'Sample Jpg',
      ),
    );

    // 添加空白幻灯片
    _pres.addBlankSlide();

    // 添加带有自定义组件的幻灯片
    await _pres.addWidgetSlide((size) {
      return Center(
        child: Container(
          padding: const EdgeInsets.all(30.0),
          decoration: BoxDecoration(
            border: Border.all(color: Colors.blueAccent, width: 5.0),
            color: Colors.redAccent,
          ),
          child: const Text('This is a widget'),
        ),
      );
    });

    // 使用Markdown创建幻灯片
    await _pres.addSlidesFromMarkdown('MARKDOWN SOURCE');
  }

  void savePresentation() async {
    final bytes = await _pres.save();
    final file = File('my_presentation.pptx');
    await file.writeAsBytes(bytes);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter PPTX Example'),
      ),
      body: Column(
        children: [
          ElevatedButton(
            onPressed: createPresentation,
            child: Text('Create Presentation'),
          ),
          ElevatedButton(
            onPressed: savePresentation,
            child: Text('Save Presentation'),
          ),
        ],
      ),
    );
  }
}

更多关于Flutter PPTX处理插件flutter_pptx的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter PPTX处理插件flutter_pptx的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何使用 flutter_pptx 插件在 Flutter 应用中处理 PPTX 文件的示例代码。flutter_pptx 是一个允许你在 Flutter 应用中创建和操作 PowerPoint 文件的插件。

首先,你需要在你的 pubspec.yaml 文件中添加 flutter_pptx 依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_pptx: ^最新版本号  # 请替换为最新的版本号

然后运行 flutter pub get 来获取依赖。

以下是一个简单的示例代码,展示了如何使用 flutter_pptx 创建一个 PPTX 文件并向其中添加一个幻灯片:

import 'package:flutter/material.dart';
import 'package:flutter_pptx/flutter_pptx.dart';
import 'dart:io';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter PPTX Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              // 创建PPTX文件
              final pptx = Presentation();

              // 添加幻灯片
              final slide = pptx.slides.addSlide();

              // 设置幻灯片背景颜色
              slide.background.fill.setColor(Color(0xFFFFFFFF));

              // 添加标题框
              final title = slide.shapes.addTextBox(
                '标题',
                left: 50.0,
                top: 50.0,
                width: 700.0,
                height: 100.0,
              );
              title.textFrame.text = 'Hello, Flutter PPTX!';
              title.textFrame.textFormat.fontColor = Color(0xFF000000); // 黑色字体
              title.textFrame.textFormat.fontSize = 40;

              // 添加内容框
              final content = slide.shapes.addTextBox(
                '内容',
                left: 50.0,
                top: 200.0,
                width: 700.0,
                height: 100.0,
              );
              content.textFrame.text = '这是一个Flutter创建的PPTX示例。';
              content.textFrame.textFormat.fontColor = Color(0xFF000000); // 黑色字体
              content.textFrame.textFormat.fontSize = 24;

              // 保存PPTX文件
              final directory = await getApplicationDocumentsDirectory();
              final file = File('${directory.path}/example.pptx');
              await pptx.save(file);

              // 提示保存成功
              ScaffoldMessenger.of(context).showSnackBar(
                SnackBar(
                  content: Text('PPTX文件已保存到 ${file.path}'),
                ),
              );
            },
            child: Text('创建PPTX文件'),
          ),
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的 Flutter 应用,其中包含一个按钮。当用户点击按钮时,应用会创建一个新的 PPTX 文件并向其中添加一个幻灯片。幻灯片包含标题和内容文本框,并设置了文本格式和背景颜色。最后,将生成的 PPTX 文件保存到应用的文档目录中,并显示一个提示消息。

请注意,flutter_pptx 插件的功能非常强大,支持许多高级的 PPTX 操作,如添加图片、表格、图表等。你可以参考插件的官方文档来获取更多信息和示例代码。

回到顶部