你会如何简化这个过程?

时间:2013-08-15 00:21:13

标签: html excel ms-word workflow jpeg

我有一堆(超过1000个)HTML文件,只有简单的文字。它只是<table>中文本的组合。这是一批内部文件,不适用于网页制作。

我们的工作是使用Photoshop和旧的复制粘贴方法将它们转换为JPEG文件。这很乏味。

有没有办法让这个过程更有效/更简单/更简单?

我考虑过尝试将HTML转换为Excel,然后将邮件合并到Word中以打印为JGEG。但我无法找到(并且正确地)将HTML转换为XLSX的任何内容。

思考?或者这只是一个手工工作?

3 个答案:

答案 0 :(得分:2)

这是我为将单个html文件转换为jpeg而创建的一些东西。它不漂亮(至少可以说),但它可以使用比我的屏幕更大的表格。把它放在一个Windows窗体项目中。您可以添加更多检查并在循环中调用此程序,或重构它以处理多个html文件。

取自 -

的想法和技巧

找到所需的尺寸 - http://social.msdn.microsoft.com/Forums/ie/en-US/f6f0c641-43bd-44cc-8be0-12b40fbc4c43/webbrowser-object-use-to-find-the-width-of-a-web-page

创建图形 - http://cplus.about.com/od/learnc/a/How-To-Save-Web-Page-Screen-Grab-csharp.htm

例如一张表格 - 复制粘贴http://www.w3schools.com/html/html_tables.asp

的放大版本
static class Program
{

    static WebBrowser webBrowser = new WebBrowser();
    private static string m_fileName;

    [STAThread]
    static void Main(string[] args)
    {

        if (args.Length != 1)
        {
            MessageBox.Show("Usage: [fileName]");
            return;
        }

        m_fileName = args[0];
        webBrowser.DocumentCompleted += (a, b) => webBrowser_DocumentCompleted();
        webBrowser.ScrollBarsEnabled = false; // Don't want them rendered
        webBrowser.Navigate(new Uri(m_fileName));


        Application.Run();
    }

    static void webBrowser_DocumentCompleted()
    {

        // Get the needed size of the control
        webBrowser.Width = webBrowser.Document.Body.ScrollRectangle.Width + webBrowser.Margin.Horizontal;
        webBrowser.Height = webBrowser.Document.Body.ScrollRectangle.Height + webBrowser.Margin.Vertical;

        // Create the graphics and save the image
        using (var graphics = webBrowser.CreateGraphics())
        {
            var bitmap = new Bitmap(webBrowser.Size.Width, webBrowser.Size.Height, graphics);
            webBrowser.DrawToBitmap(bitmap, webBrowser.ClientRectangle);

            string newFileName = Path.ChangeExtension(m_fileName, ".jpg");

            bitmap.Save(newFileName, ImageFormat.Jpeg);
        }

        // Shamefully exit the application
        Application.ExitThread();            
    }
}

答案 1 :(得分:0)

您可以在一个页面中加载所有文件,并使用此库html2canvas进行转换。

您可以在后台运行使用带有node-canvas的nodejs,或者将其设为node-webkit

的桌面应用程序

答案 2 :(得分:0)

万一有人在寻找可行的答案,我最终使用了一个名为Prince的程序:https://www.princexml.com

它的工作原理惊人,只需要将CSS或JS定位为HTML,使其与您的输出相匹配!