我有一堆(超过1000个)HTML文件,只有简单的文字。它只是<table>
中文本的组合。这是一批内部文件,不适用于网页制作。
我们的工作是使用Photoshop和旧的复制粘贴方法将它们转换为JPEG文件。这很乏味。
有没有办法让这个过程更有效/更简单/更简单?
我考虑过尝试将HTML转换为Excel,然后将邮件合并到Word中以打印为JGEG。但我无法找到(并且正确地)将HTML转换为XLSX的任何内容。
思考?或者这只是一个手工工作?
答案 0 :(得分:2)
这是我为将单个html文件转换为jpeg而创建的一些东西。它不漂亮(至少可以说),但它可以使用比我的屏幕更大的表格。把它放在一个Windows窗体项目中。您可以添加更多检查并在循环中调用此程序,或重构它以处理多个html文件。
取自 -
的想法和技巧创建图形 - 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,使其与您的输出相匹配!