当前位置: 首页 > 知识库问答 >
问题:

将幻灯片放映幻灯片复制到新的幻灯片放映,包括母版和盒子位置(Apache POI)

景英杰
2023-03-14

有没有办法把一个幻灯片从一个幻灯片完全复制到另一个幻灯片,包括所有的方框位置,颜色,字体等等。?

参考食谱,我有下面

    private void copySlides(XMLSlideShow fromPptx, XMLSlideShow toPptx) {
        for(XSLFSlide fromSlide : fromPptx.getSlides()){
            toPptx.createSlide().importContent(fromSlide);
        }
    }

然而,背景与“from”pptx不匹配,并且一些文本框被移动了。我猜颜色是因为我没有修改母版,而移动是因为与锚相关的东西。我也尝试了我认为会迫使一张幻灯片的母版转移到另一张幻灯片上的方法,但它的作用与上面的相同。

    private void copySlides(XMLSlideShow fromPptx, XMLSlideShow toPptx) {
        for(XSLFSlide fromSlide : fromPptx.getSlides()){
            XSLFSlide toSlide = toPptx.createSlide();
            copySlide(fromSlide, toSlide);
            toSlide.importContent(fromSlide);
        }
    }

    private static void copySlide(
            final XSLFSlide fromSlide, final XSLFSlide toSlide) {

        XSLFSlideLayout fromLayout = fromSlide.getSlideLayout();
        XSLFSlideMaster fromMaster = fromSlide.getSlideMaster();
        XSLFSlideLayout toLayout = toSlide.getSlideLayout();
        XSLFSlideMaster toMaster = toSlide.getSlideMaster();
        toLayout.importContent(fromLayout);
        toMaster.importContent(fromMaster);
    }

共有1个答案

单于山
2023-03-14

如果我设置为“滑行”跟踪主图形(假)“跟踪”主对象(假);我可以设置背景颜色。

对于盒子不在正确的位置,看起来盒子在正确的位置,但是幻灯片的尺寸不同。就我而言,我可以使用“最终”幻灯片尺寸,如果出现多个尺寸,有人将不得不处理它。

    private void copySlides(XMLSlideShow fromPptx, XMLSlideShow toPptx) {
        for(XSLFSlide fromSlide : fromPptx.getSlides()){
            XSLFSlide toSlide = toPptx.createSlide();
            copySlide(fromSlide, toSlide);
            toSlide.importContent(fromSlide);
        }
        toPptx.setPageSize(fromPptx.getPageSize());
    }

    private static void copySlide(
            final XSLFSlide fromSlide, final XSLFSlide toSlide) {
        toSlide.setFollowMasterGraphics(false);
        toSlide.setFollowMasterObjects(false);

        XSLFSlideLayout fromLayout = fromSlide.getSlideLayout();
        XSLFSlideMaster fromMaster = fromSlide.getSlideMaster();
        XSLFBackground fromBackground = fromSlide.getBackground();
        XSLFSlideLayout toLayout = toSlide.getSlideLayout();
        XSLFSlideMaster toMaster = toSlide.getSlideMaster();
        XSLFBackground toBackground = toSlide.getBackground();

        toLayout.importContent(fromLayout);
        toMaster.importContent(fromMaster);
        toBackground.setFillColor(fromBackground.getFillColor());
    }

这并没有完全回答我的问题(根据我读到的一些论坛评论,这可能是无法获得的),但这解决了我遇到的问题。

对于其他遇到这种情况的人,我也会在“from”和“to”幻灯片中获取所有形状,并尝试将它们从一个复制到另一个,但这对我来说不是必要的。

 类似资料:
  • 我制作了一个jquery幻灯片,下面是代码: HTML CSS jQuery “下一个”按钮工作,但当我点击“上一个”图像消失!有人能帮我吗? 这是小提琴。

  • 我正在尝试用Java编写一个幻灯片放映程序,并希望使实现尽可能简单。 目标是显示一系列幻灯片,每个幻灯片都有导航按钮,此外还有依赖于幻灯片内容的其他按钮。(显示文本的幻灯片将有,而带有图像的幻灯片将没有此按钮。)

  • 使用幻灯片组件,你需要在 sm.js 和 sm.css 之后额外引入如下两个文件: <link rel="stylesheet" href="//g.alicdn.com/msui/sm/0.6.2/css/sm-extend.min.css"> <script type='text/javascript' src='//g.alicdn.com/msui/sm/0.6.2/js/sm-exte

  • 播放幻灯片秀 自动依顺序显示每张图像。 选择频道或图像时按下按钮,再选择选项选单的[幻灯片秀]。 提示 显示图像时若按下START(开始)按钮,即会开始幻灯片秀。 幻灯片秀可与音乐同时播放。详细内容请参阅(相片) > [幻灯片秀] > [同时播放音乐与幻灯片秀]。

  • 播放幻灯片秀 自动依顺序显示每张图像。选择图标并按下START(开始)按钮后,即会开始播放幻灯片秀。显示之内容可能会因选择之图示而异。 提示 亦可透过操作接口或选项选单,启动幻灯片秀。 亦可进入(相片) > (相片设定),改变显示图像的速度。

  • 在后台扩展工具》幻灯片分类 添加分类标识为"portal_index"的分类,然后在此分类添加幻灯片; cat_name:幻灯片类型名称 cat_idname:幻灯片标示 slide_name:幻灯片名称 slide_pic:幻灯片图片地址 slide_url:幻灯片URL slide_des:幻灯片描述 slide_content:幻灯片内容 <php> $home_slides=sp_get