首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Phantom JS将文件夹中的所有HTML文件转换为PNG

使用Phantom JS将文件夹中的所有HTML文件转换为PNG
EN

Stack Overflow用户
提问于 2011-09-23 15:48:30
回答 1查看 10.9K关注 0票数 11

我已经开始在Windows上使用Phantom JS,但我在查找有关其功能的文档(可能是问题的根源)时遇到了一些困难。

使用Phantom JS,我想做以下工作:

  1. 给它一个本地机器文件夹的位置,
  2. 让它导航到那个位置并识别HTML文件的列表,
  3. 一旦该列表被标识为循环HTML文件列表,并将它们全部转换为PNG (类似于rasterize.js示例的工作方式),其中文件名HTML将"HTML“与"PNG”相对应。

我确信这可能是可能的,但我无法找到Phantom JS函数调用:

  1. 获取文件夹中的文件列表,
  2. 幻影JS中gsub和grep的格式。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-26 00:13:51

代码语言:javascript
运行
复制
var page = require('webpage').create(), loadInProgress = false, fs = require('fs');
var htmlFiles = new Array();
console.log(fs.workingDirectory);
var curdir = fs.list(fs.workingDirectory);

// loop through files and folders
for(var i = 0; i< curdir.length; i++)
{
    var fullpath = fs.workingDirectory + fs.separator + curdir[i];
    // check if item is a file
    if(fs.isFile(fullpath))
    {
        // check that file is html
        if(fullpath.indexOf('.html') != -1)
        {
            // show full path of file
            console.log('File path: ' + fullpath);
            htmlFiles.push(fullpath);
        }
    }
}

console.log('Number of Html Files: ' + htmlFiles.length);

// output pages as PNG
var pageindex = 0;

var interval = setInterval(function() {
    if (!loadInProgress && pageindex < htmlFiles.length) {
        console.log("image " + (pageindex + 1));
        page.open(htmlFiles[pageindex]);
    }
    if (pageindex == htmlFiles.length) {
        console.log("image render complete!");
        phantom.exit();
    }
}, 250);

page.onLoadStarted = function() {
    loadInProgress = true;
    console.log('page ' + (pageindex + 1) + ' load started');
};

page.onLoadFinished = function() {
    loadInProgress = false;
    page.render("images/output" + (pageindex + 1) + ".png");
    console.log('page ' + (pageindex + 1) + ' load finished');
    pageindex++;
}

希望这能有所帮助。有关FileSystem调用的更多信息,请查看此页面:http://phantomjs.org/api/fs/

另外,我想补充的是,我认为FileSystem函数只在PhantomJS 1.3或更高版本中可用。请确保运行最新版本版本。我在Windows上使用了PyPhantomJS,但我确信这在其他系统上也能正常工作。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7531601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档