将pptx / ppt / docx / doc转换为图像

时间:2017-02-28 20:25:52

标签: javascript node.js

我一直在寻找一种将pdf和ppt文件转换为图像的方法。我经历了很多网站和链接。随着NodeJS的发明,我希望有一些简单的东西。

我找到了这个:convert pptx/ppt/docx/doc to images。它承诺为我的问题提供更简单的解决方案。但是,它是用 Meteor 编写的,我认为它可能会有更多的东西而不是眼睛。我想要一个简单的NodeJS方法来做这件事,没有 Meteor 涂层,因为我以前没有Metor的知识。

meteorhacks:npm

npm-container
Meteor.startup(function () {
    var fs = Npm.require("fs");
    var path = Npm.require('path');
    var sys = Npm.require('sys');
    var exec = Npm.require('child_process').exec;
    var child;

    var dir = "/home/bhavesh";

    fs.watch(dir, {persistent: true}, function (event, fileName) {
        console.log("dfs");
        console.log("Event: " + event);
        console.log(fileName + "\n");
        var ext = path.extname(fileName);
        if ((ext.toString() == ".pptx" || ext.toString() == ".ppt" || ext.toString() == ".docx" || ext.toString() == ".doc") && event == "change") {
            console.log("Powerpoint file");
            ppt_or_doc_to_pdf(dir,fileName);
        }
        if (ext.toString() == ".pdf" && event == "change") {
            console.log("PDF file");
            pdf_to_ppm(dir,fileName);
        }
    });
    function pdf_to_ppm(dir, file) {
        var cmd = "cd " + dir + "; pdftoppm '" + file + "' slide";
        exec(cmd, function (error, stdout, stderr) {
            console.log('stdout: ' + stdout);
            console.log('stderr: ' + stderr);
            if (error !== null) {
                console.log('exec error: ' + error);
            }
            ppm_to_jpg(dir);
        });
    }

    function ppt_or_doc_to_pdf(dir, file) {
        var fileName = file.substring(0, file.indexOf('.'));
        var cmd = "cd " + dir + "; unoconv -f pdf -o '" + fileName + ".pdf' '" + file + "'";
        exec(cmd, function (error, stdout, stderr) {
            console.log('stdout: ' + stdout);
            console.log('stderr: ' + stderr);
            if (error !== null) {
                console.log('exec error: ' + error);
            }
            pdf_to_ppm(dir, fileName + '.pdf');
        });
    }
    function ppm_to_jpg(dir) {
        var cmd = "cd " + dir + "; mogrify -format jpg slide*.ppm";
        exec(cmd, function (error, stdout, stderr) {
            console.log('stdout: ' + stdout);
            console.log('stderr: ' + stderr);
            if (error !== null) {
                console.log('exec error: ' + error);
            }
        });
    }
});

感谢任何帮助...

谢谢..

0 个答案:

没有答案