我有一堆(超过 1000 个)只有简单文本的 HTML 文件。它只是一个<table>
. 这是一批内部文档,不适用于网络制作。
我们的工作是使用 Photoshop 和旧的复制粘贴方法将它们转换为 JPEG 文件。这很乏味。
有没有办法让这个过程变得更高效/更容易/更简单?
我想过尝试将 HTML 转换为 Excel,然后将其合并到 Word 中以打印为 JGEG。但我找不到(而且正确地)任何东西可以将 HTML 转换为 XLSX。
想法?或者这只是一项体力活?
这是我为将单个 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();
}
}
您可以在一页中加载所有文件并使用此 lib html2canvas进行隐藏。
您可以在后台运行使用带有node-canvas的 nodejs 或使用node-webkit使其成为桌面应用程序
如果有人在寻找有效的答案,我最终使用了一个名为 Prince 的程序:https ://www.princexml.com
它的效果非常好,只需使用 CSS 或 JS 定位 HTML 即可使其与您的输出相匹配!