Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Powerpoint:将单个幻灯片复制到新的Powerpoint文件中_Javascript_Powerpoint - Fatal编程技术网

Javascript Powerpoint:将单个幻灯片复制到新的Powerpoint文件中

Javascript Powerpoint:将单个幻灯片复制到新的Powerpoint文件中,javascript,powerpoint,Javascript,Powerpoint,我想将powerpoint文件中的每张幻灯片保存到单独的powerpoint文件中,并存储每张幻灯片的png图像。最后,我想创建一个单独独特幻灯片的存档,以便在某些信息屏幕上显示的所有幻灯片都存储在此存档中。这就是我要做的: function exportSingleSlides(pathname, filename){ var app = new ActiveXObject("PowerPoint.Application"); app.Visible = true;

我想将powerpoint文件中的每张幻灯片保存到单独的powerpoint文件中,并存储每张幻灯片的png图像。最后,我想创建一个单独独特幻灯片的存档,以便在某些信息屏幕上显示的所有幻灯片都存储在此存档中。这就是我要做的:

function exportSingleSlides(pathname, filename){
    var app = new ActiveXObject("PowerPoint.Application");
    app.Visible = true;

    // Open the presentation
    var presentation = app.Presentations.Open(pathname+filename, true);
    var tmpPresentation; // Used to store a new presentation for each slide.

    var e = new Enumerator(presentation.Slides);
    var slide;
    e.moveFirst();
    var i = 0;
    while (!e.atEnd()) {
        i++;
        slide = e.item(); // gets this slide

        // Export slide to png
        slide.Export(pathname + 'slide' + (i < 10 ? '0' + i : i) + '.png', 'PNG', 1920, 1080);

        // Open new presentation
        tmpPresentation = app.Presentations.Add();

        // Copy current slide and paste into new presentation
        slide.Copy();
        tmpPresentation.Slides.Paste(1);

        tmpPresentation.SaveAs(pathname + 'slide' + (i < 10 ? '0' + i : i));
        tmpPresentation.Close();
        e.moveNext();
    }

    // Close the presentation. (But how do I close powerpoint entirely?)
    presentation.Close();
    app.Quit();
}

// Which file are we looking at?
var pathname = 'C:\\Users\\Stian\\Dropbox\\jobb\\RB\\powerpoint parser\\';
var filename = 'test.pptx';

exportSingleSlides(pathname, filename);
函数exportSingleSlides(路径名、文件名){
var app=新的ActiveXObject(“PowerPoint.Application”);
app.Visible=true;
//打开演示文稿
var presentation=app.Presentations.Open(路径名+文件名,true);
var tmpPresentation;//用于存储每张幻灯片的新演示文稿。
var e=新枚举数(presentation.Slides);
var幻灯片;
e、 首先移动();
var i=0;
而(!e.atEnd()){
i++;
slide=e.item();//获取此幻灯片
//将幻灯片导出到png
slide.Export(路径名+'slide'+(i<10?'0'+i:i)+'.png',png',1920,1080);
//打开新演示文稿
tmpPresentation=app.Presentations.Add();
//复制当前幻灯片并粘贴到新演示文稿中
幻灯片。复制();
t演示。幻灯片。粘贴(1);
tmpPresentation.SaveAs(路径名+'slide'+(i<10?'0'+i:i));
tmpPresentation.Close();
e、 moveNext();
}
//关闭演示文稿。(但如何完全关闭powerpoint?)
presentation.Close();
app.Quit();
}
//我们在看哪个文件?
var pathname='C:\\Users\\Stian\\Dropbox\\jobb\\RB\\powerpoint parser\\';
var filename='test.pptx';
exportSingleSlides(路径名、文件名);

这将根据我的需要将幻灯片保存为png格式,并将每张幻灯片保存为自己的powerpoint文件。但它并没有照搬它应该做的。我认为它可能缺少模板,因为新副本中不包含页眉和页脚。我正在使用,但我似乎找不到一个复制幻灯片的好方法。有什么建议吗?

我已经想好了。按照下面的方法做而不是仅仅复制就可以了

// Get the layout from the source slide
layout = slide.CustomLayout;

// Copy current slide and paste into new presentation
slide.Copy();
tmpPresentation.Slides.Paste(1);

// Set the layout
tmpPresentation.Slides(1).CustomLayout = layout;
现在,我在尝试保存新文件时遇到一个未指定的错误,但这是另一个问题