许多工具有办法导出.mht文件。 我想办法到单个文件转换为文件的集合,一个HTML文件,相关图片和CSS文件,我可以再上传到网站托管商,所有的浏览器是消耗品。 有谁知道任何工具或库或算法来做到这一点。

Answer 1:

那么,你可以在IE中打开和保存.mht文件为AA网页。 我这个页面进行了测试,即使它在IE看上去很奇怪(这是IE毕竟),它保存,然后在Chrome中打开的细(如,它看起来像它应该)。

除非该方法,看文件本身,文本块保存在文件中的原样,并且所有其他内容保存为Base64。 内容中的每一项前面有:

[Boundary]

Content-Type: [Mime Type]

Content-Transfer-Encoding: [Encoding Type]

Content-Location: [Full path of content]

其中[Mime类型],[ 编码类型],[ 内容的完整路径]是可变的。 [编码类型]似乎是要么BASE64或引号的可打印 。 [边界]在像这样的.MHT文件的开头定义的:

From:

Subject: converter - How can you programmatically (or with a tool) convert .MHT mhtml files to regular HTML and CSS files? - Stack Overflow

Date: Fri, 9 May 2013 13:53:36 -0400

MIME-Version: 1.0

Content-Type: multipart/related;

type="text/html";

boundary="----=_NextPart_000_0C08_58653ABB.B67612B7"

利用这一点,如果需要的话你可以把自己的文件分析器。

Answer 2:

MHT文件实质上是MIME。 因此,它可以使用Chilkat.Mime或完全不含System.Net.Mime组件访问其内部结构。 如果,例如,MHT包含图像,他们可以在HTML输出的base64字符串替换。

Imports HtmlAgilityPack

Imports Fizzler.Systems.HtmlAgilityPack

Imports Chilkat

Public Function ConvertMhtToHtml(ByVal mhtFile As String) As String

Dim chilkatWholeMime As New Chilkat.Mime

'Load mime'

chilkatWholeMime.LoadMimeFile(mhtFile)

'Get html string, which is 1-st part of mime'

Dim html As String = chilkatWholeMime.GetPart(0).GetBodyDecoded

'Create collection for storing url of images and theirs base64 representations'

Dim allImages As New Specialized.NameValueCollection

'Iterate through mime parts'

For i = 1 To chilkatWholeMime.NumParts - 1

Dim m As Chilkat.Mime = chilkatWholeMime.GetPart(i)

'See if it is image'

If m.IsImage AndAlso m.Encoding = "base64" Then

allImages.Add(m.GetHeaderField("Content-Location"), "data:" + m.ContentType + ";base64," + m.GetBodyEncoded)

End If : m.Dispose()

Next : chilkatWholeMime.Dispose()

'Now it is time to replace the source attribute of all images in HTML with dataURI'

Dim htmlDoc As New HtmlDocument : htmlDoc.LoadHtml(html) : Dim docNode As HtmlNode = htmlDoc.DocumentNode

For i = 0 To allImages.Count - 1

'Select all images, whose src attribute is equal to saved URL'

Dim keyURL As String = allImages.GetKey(i) 'Saved url from MHT'

Dim elementsWithPics() As HtmlNode = docNode.QuerySelectorAll("img[src='" + keyURL + "']").ToArray

Dim imgsrc As String = allImages.GetValues(i)(0) 'dataURI as base64 string'

For j = 0 To elementsWithPics.Length - 1

elementsWithPics(j).SetAttributeValue("src", imgsrc)

Next

'Select all elements, whose style attribute contains saved URL'

elementsWithPics = docNode.QuerySelectorAll("[style~='" + keyURL + "']").ToArray

For j = 0 To elementsWithPics.Length - 1

'Get and modify style'

Dim modStyle As String = Strings.Replace(elementsWithPics(j).GetAttributeValue("style", String.Empty), keyURL, imgsrc, 1, 1, 1)

elementsWithPics(j).SetAttributeValue("style", modStyle)

Next : Erase elementsWithPics

Next

'Get final html'

Dim tw As New StringWriter()

htmlDoc.Save(tw) : html = tw.ToString : tw.Close() : tw.Dispose()

Return html

End Function

Answer 3:

除了IE和MS Word,有一个名为“mht2html”写入一个开源的跨平台计划2007年并在最后更新2016 。 它既有一个GUI和终端接口。

官方网站

SourceForge项目

我没有测试它尚未,但它似乎已经收到很好的评价。

Answer 4:

我认为,@ XGundam05是正确的。 下面是我做的,使其工作。

我开始在Visual Studio中的Windows窗体项目。 增加了WebBrowser控件到窗体,然后添加两个按钮。 然后,将此代码:

private void button1_Click(object sender, EventArgs e)

{

webBrowser1.ShowSaveAsDialog();

}

private void button2_Click(object sender, EventArgs e)

{

webBrowser1.Url = new Uri("localfile.mht");

}

您应该能够借此代码并添加文件的列表,并处理每一个用foreach 。 所述webBrowser包含一个称为方法ShowSaveAsDialog() ; 这将允许将其保存为.mht文件或只是HTML或完整的页面。

编辑:您可以使用Web浏览器的文件和刮在这一点上的信息。 通过在此处添加一个RichTextBox和公共变量按照MS: http://msdn.microsoft.com/en-us/library/ms171713.aspx

public string Code

{

get

{

if (richTextBox1.Text != null)

{

return (richTextBox1.Text);

}

else

{

return ("");

}

}

set

{

richTextBox1.Text = value;

}

}

private void button2_Click(object sender, EventArgs e)

{

webBrowser1.Url = new Uri("localfile.mht");

HtmlElement elem;

if (webBrowser1.Document != null)

{

HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("HTML");

if (elems.Count == 1)

{

elem = elems[0];

Code = elem.OuterHtml;

foreach (HtmlElement elem1 in elems)

{

//look for pictures to save

}

}

}

}

Answer 5:

因此,自动化IE是困难的,而不是使用端到端的,所以我认为建立某种形式的代码,不会这将是要走的路。 在github上,我发现这条巨蟒其中一个可能是好的

https://github.com/Modified/MHTifier http://decodecode.net/elitist/2013/01/mhtifier/

如果我有时间,我会努力做好在PowerShell中类似的事情。

Answer 6:

Firefox拥有嵌入式工具。 进入菜单(按Alt如果隐藏) File->Convert saved pages 。

Answer 7:

第1步:打开.MHT / .MHTML文件在浏览器中。

第2步:右键点击选择要查看源代码。

第3步:复制源代码并将其粘贴到一个新的.TXT文件,然后更改文件扩展名.HTML。

文章来源: How can you programmatically (or with a tool) convert .MHT mhtml files to regular HTML and CSS files?

css文件转换html,你怎么能编程方式(或工具).MHT MHTML文件转换为普通的HTML和CSS文件?(How can...相关推荐

  1. 简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?

    简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么? 参考答案: (1)ftp有两种登录方式:匿名登录和授权登录.使用匿名登录时,用户名为:anonymous ...

  2. node将当前文件上传到服务器,以编程方式将文件从node.js上传到另一个Web服务器...

    我需要将文件从node.js应用程序推送到其他地方运行的Web服务器,该服务器通过典型的上载机制接受文件.例如,假设接收服务器有一个网页,这样的形式:以编程方式将文件从node.js上传到另一个Web ...

  3. 在C#中以编程方式将PNG或JPG图像转换为PSD指南出炉!

    PNG和JPG格式是众所周知的包含单层视觉信息的栅格图像文件格式.而Photoshop文档(PSD)文件包含几层来显示图片.您可以在.NET应用程序中使用C#以编程方式轻松地将PNG或JPG图像转换为 ...

  4. 快速学习:如何在Java中以编程方式将PNG或JPG图像转换为PSD?

    JPG和PNG图像是一些最常用的光栅图像格式.有时可以根据需要将JPG或PNG图像转换为PSD文件格式.当要将不同的图层组合到一个文件中时,这可能会很有用.本文将介绍一下更多详细信息: 使用Java以 ...

  5. 详细说明通过kettke对csv文件转换的操作步骤_如何将多页面pdf分割成一页一页的PDF文件...

    经常会有小伙伴问我,如何将多页面的PDF文件拆分成一个个的PDF文件?例如有5个页面的PDF文件,一次性拆分导出生成5个单页面的PDF文件? PDF文件是我们日常工作学习中经常要用到的,有时候PDF文 ...

  6. datefromstring 转换不准确_免费的在线OCR工具,将图片内容转换为文本内容

    利爪按:OCR工具我不常用,但貌似有些小伙伴还是对此有着较大需求的,之前分享了一款手机端的免费OCR应用「白描」,应该一直都可以用吧?今天分享一个在线OCR的网站,不想下载软件的可以收藏一下. Eas ...

  7. 在Java中以编程方式将PSB转换为PDF,JPG或PSD

    PSB,Photoshop Big,文件扩展名用于存储与图形有关的大量信息.可以使用Java编程语言轻松地将PSB文件转换为PDF,JPG或PSD格式.让我们学习以下各节以探讨PSB文件转换: 使用J ...

  8. mpp文件转换excel_怎么将pdf文件转换成excel表格格式呢?

    在我们的日常工作当中,有的时候偶尔会出现一些商业E-Mail的发送,但是在发送之前我们是需要将PDF文档中的数据内容转换成Excel表格的形式.所以学会将PDF转Excel的方法很重要,那不知道小伙伴 ...

  9. 怎么把图片文件转换成PDF文件

    除了office文件外,我们最常用的就是PDF文件了.因为PDF文件格式可以将文字.字型.格式.颜色及独立于 设备和分辨率的图形图像等封装在一个文件中.该格式文件还可以包含超文本链接.声音和动态影像等 ...

最新文章

  1. ICLR2020全析解读:华人学者占据60%,谷歌再次领跑!(附最新高引华人榜单)...
  2. python request-python3的request用法实例
  3. STM32 SPI的使用
  4. mac安装mysql遇到的坑
  5. 多路串口服务器的应用及应用范围介绍
  6. LeetCode—Python版数组简单题(一)
  7. python水仙花数的代码_使用python求水仙花数的代码
  8. 代码调试全指南-自然语言处理-基于预训练模型的方法,车万翔
  9. 正确的座机号码格式_简历里的手机号及座机号的标准写法是什么?正确书写才更可能求职成功!...
  10. 扫码枪 android EditText
  11. 把surfer的.grd文件改写为.txt
  12. Apache网页优化(网页压缩、网页缓存、隐藏版本、配置防盗链)
  13. 育碧开发了一个 AI 工具,能快速找出代码中的 Bug
  14. 操作系统原理实验(3):操作系统的基石中断与异常
  15. 安卓基于Frida HOOK传感器 实现虚拟运动跑步
  16. SuperMap GIS管线数据处理QA
  17. 涉外诉讼公证认证北京代办流程时间
  18. day82_babasport第八天
  19. 怎样在shopify页面内使用GOOGLE字体
  20. 点状字符的一种简便识别方式

热门文章

  1. 网络安全实验室基础关第二题
  2. 划重点,如何提升微信文章点赞?
  3. 苦逼程序员:半数加班(转)
  4. 边缘计算加速视频直播场景:更清晰、流畅、实时
  5. 开源一个Vue电商项目,欢迎交流
  6. 机房监控系统常见的内容都有哪些?
  7. [爬虫]beatifusoup简单教程
  8. 延续千年腊八传统 山东孔府布粥暖年味
  9. java每日Demo之junit5单元测试
  10. 计算机代码可以在哪里查到,计算机的6 位数安全代码在哪里查看