# 为啥 mhtml 不受待见？mhtml 是 pdf 的下位替代吗？

**URL:** <https://meta.appinn.net/t/topic/62387>\
**Category:** 讨论分享\
**Created:** [2024 年10 月 26 日 05:08 UTC](https://meta.appinn.net/t/topic/62387 "2024-10-26T05:08:18Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

作者： ![tempUserName](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/tempusername/32/57781_2.png) [@tempUserName](https://meta.appinn.net/u/tempUserName)\
发布日期： [2024 年10 月 26 日 05:08 UTC](https://meta.appinn.net/t/topic/62387/1 "2024-10-26T05:08:18Z")

</div>

> mhtml 简单来说就是将 html 中的 css、js、image 等外部文件封装起来，组成一个打包好的单文件，实现离线查阅。

我觉得 mhtml 挺好的呀， **单文件，保持样式，支持离线查看** ，而且能快速切换为 html 格式。特别适合笔记、教程等说明性质的文章。

但是似乎所有软件不待见它。比如 Typora，宁可干掉图片，导出纯文本的 html，都不支持 mhtml。

---

<div class="post-metadata">

作者： ![biubiu](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/b/6f9a4e/32.png) [@biubiu](https://meta.appinn.net/u/biubiu)\
发布日期： [2024 年10 月 26 日 05:45 UTC](https://meta.appinn.net/t/topic/62387/2 "2024-10-26T05:45:05Z")

</div>

它跟pdf就差在A4打印上。

---

<div class="post-metadata">

作者： ![Baiyssy](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/baiyssy/32/31041_2.png) [@Baiyssy](https://meta.appinn.net/u/Baiyssy)\
发布日期： [2024 年10 月 26 日 06:32 UTC](https://meta.appinn.net/t/topic/62387/3 "2024-10-26T06:32:34Z")

</div>

和docx、html这些电子文档相比，pdf更接近一张纸。  
为了保证看上去、打出来一样这个特征，pdf牺牲了一切，包括编辑、重排版甚至检索。

---

<div class="post-metadata">

作者： ![Zafale](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/z/76d3ee/32.png) [@Zafale](https://meta.appinn.net/u/Zafale)\
发布日期： [2024 年10 月 26 日 10:22 UTC](https://meta.appinn.net/t/topic/62387/4 "2024-10-26T10:22:34Z")

</div>

可以考虑textbundle

---

<div class="post-metadata">

作者： ![VictoryRoad](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/victoryroad/32/58964_2.png) [@VictoryRoad](https://meta.appinn.net/u/VictoryRoad)\
发布日期： [2024 年10 月 26 日 10:38 UTC](https://meta.appinn.net/t/topic/62387/5 "2024-10-26T10:38:51Z")

</div>

其实现在的 HTML 也已经支持将所有东西打包成一个单一文件了，比如 SingleFile 保存的网页，就可以将图片全部以 base64 形式保存在 html 文件中，并带上 css。

另外，AriaNg 有一个 “All in one” 版本，就是将 js、css、图片资源等放在一个 html 文件中。

至于 mhtml，在百度百科上看到这样一句描述：

> 由于保存为MHTML的方式未经标准化，因此各浏览器读取的效果略有不同。

不知道是不是这个原因制约了 mhtml 的应用。

另外，有人说除了 IE 外，其他浏览器对 mhtml 的支持都存在一些问题，可能这也是制约这种格式广泛应用的原因。

---

<div class="post-metadata">

作者： ![pick](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/p/9de0a6/32.png) [@pick](https://meta.appinn.net/u/pick)\
发布日期： [2024 年10 月 26 日 14:08 UTC](https://meta.appinn.net/t/topic/62387/6 "2024-10-26T14:08:13Z")

</div>

Typora 支持内嵌图片的吧，虽然我很久没用了

---

<div class="post-metadata">

作者： ![N4eo](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/n/e0b2c6/32.png) [@N4eo](https://meta.appinn.net/u/N4eo)\
发布日期： [2024 年10 月 26 日 14:41 UTC](https://meta.appinn.net/t/topic/62387/7 "2024-10-26T14:41:56Z")

</div>

我也喜欢 mhtml，原封不动保存网页！交互都还在。

---

<div class="post-metadata">

作者： ![Dalieba](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dalieba/32/3804_2.png) [@Dalieba](https://meta.appinn.net/u/Dalieba)\
发布日期： [2024 年10 月 26 日 17:17 UTC](https://meta.appinn.net/t/topic/62387/8 "2024-10-26T17:17:01Z")

</div>

现在还有一种单文件 HTML 的存储技术，效果不亚于 MHTML。

> **[著名网页离线保存工具 SingleFile v1.22 新增通用自解压 ZIP 功能，可节省 4 倍硬盘空间 - 小众软件](https://www.appinn.com/singlefile-v1-22/)**
>
> SingleFile v1.22 新增的功能叫 Self-Extracting ZIP Files，即在不改变保存后的文件格式情况下，大幅压缩文件尺寸。

> **[Save Page WE - 保存「完整网页」为单独 HTML 文件，供离线使用\[Chrome/Firefox\] - 小众软件](https://www.appinn.com/save-page-we/)**
>
> Save Page WE 是一款非常赞的 Chrome、Firefox 扩展，它能够非常迅速的保存完整的网页为一个 HTML 文件，供日后离线使用。@Appinn

---

<div class="post-metadata">

作者： ![tiger](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/tiger/32/23490_2.png) [@tiger](https://meta.appinn.net/u/tiger)\
发布日期： [2024 年10 月 27 日 10:33 UTC](https://meta.appinn.net/t/topic/62387/9 "2024-10-27T10:33:36Z")

</div>

一方面是各大浏览器对 mhtml 的支持程度不一，另一方面则是保存 mhtml 文件的过程中可能会因为各种各样的问题出现无法保存的情况，而 PDF 格式则没有上述两个问题。

---

<div class="post-metadata">

作者： ![Dalieba](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dalieba/32/3804_2.png) [@Dalieba](https://meta.appinn.net/u/Dalieba)\
发布日期： [2024 年10 月 27 日 18:21 UTC](https://meta.appinn.net/t/topic/62387/10 "2024-10-27T18:21:23Z")

</div>

PDF 是脱胎于 PostScript 语言的文档格式，PS 是当初 Adobe 公司成立以后推出的面向打印机的页面描述语言，通过苹果 LaserWriter 打印机一炮走红，成为桌面出版行业的金标准。  
HTML 转 PDF 就意味着必须牺牲流动性的页面布局，按照特定宽度把内容塞进 PDF，并且根据页面高度来拆分网页上的东西。

---

<div class="post-metadata">

作者： ![Baiyssy](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/baiyssy/32/31041_2.png) [@Baiyssy](https://meta.appinn.net/u/Baiyssy)\
发布日期： [2024 年10 月 28 日 02:27 UTC](https://meta.appinn.net/t/topic/62387/11 "2024-10-28T02:27:42Z")

</div>

我完全不能理解也不能接受的一点，是各种pdf的格式天差地别。  
很多用硬换行，导致一个词换在两行的话就搜不到。  
甚至有的每个字符都在不同的文本框里面，任何词都搜不到。  
有的明明是文本，也没有加密，就是复制不了，也提取不出来。  
总之就是有无穷多的问题。

---

<div class="post-metadata">

作者： ![antior](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/a/96bed5/32.png) [@antior](https://meta.appinn.net/u/antior)\
发布日期： [2024 年10 月 28 日 03:07 UTC](https://meta.appinn.net/t/topic/62387/12 "2024-10-28T03:07:03Z")

</div>

就是base64编码图片吗？  
我尝试用旧版Opera保存的mhtml网页，IE打开是乱码的。

---

<div class="post-metadata">

作者： ![Aquamarine](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/a/22d042/32.png) [@Aquamarine](https://meta.appinn.net/u/Aquamarine)\
发布日期： [2024 年10 月 28 日 03:15 UTC](https://meta.appinn.net/t/topic/62387/13 "2024-10-28T03:15:44Z")

</div>

在 [为啥 mhtml 不受待见？mhtml 是 pdf 的下位替代吗？ - #8，来自 Dalieba](https://meta.appinn.net/t/topic/62387/8) 提到的两款扩展前，我挺喜欢MHT格式。  
但是它有两个问题：

1. 兼容软件少
2. 纯文本乱码

---

<div class="post-metadata">

作者： ![xiaokonglong](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/xiaokonglong/32/908_2.png) [@xiaokonglong](https://meta.appinn.net/u/xiaokonglong)\
发布日期： [2024 年10 月 28 日 04:40 UTC](https://meta.appinn.net/t/topic/62387/14 "2024-10-28T04:40:50Z")

</div>

mhtml本质上对网页内容的重新编码. 尤其是 图片要转成 base64.

这就导致了mhtml 在保存时和阅读时, 会有一定偏差.

各种浏览器的支持度也不尽相同.

其实更好的保存结构是, 另存为带文件夹的html, 然后在压缩成zip格式. 至于后缀名改成什么无所谓.

现在很多开放性格式文件, 基本都是这个路数. 包括但不限于 apk, docx 等等.

所以 SingleFileZ 也是这个思路. (SingleFile 的作者的另一个产品)

> **[SingleFileZ - 网摘新工具：打包压缩完整网页\[Chrome/Firefox\] - 小众软件](https://www.appinn.com/singlefilez/)**
>
> SingleFileZ 是一款可以把一个网页包括图片、样式完整打包压缩后保存为 HTML 的浏览器扩展，并且能够让浏览器实现自解压。@Appinn

---

<div class="post-metadata">

作者： ![antior](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/a/96bed5/32.png) [@antior](https://meta.appinn.net/u/antior)\
发布日期： [2024 年10 月 28 日 06:04 UTC](https://meta.appinn.net/t/topic/62387/15 "2024-10-28T06:04:14Z")

</div>

确实，这一点一直理解不能：Word里面排版好好的，打印出来就分段了，复制一遍还没法直接用。

---

<div class="post-metadata">

作者： ![Dalieba](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dalieba/32/3804_2.png) [@Dalieba](https://meta.appinn.net/u/Dalieba)\
发布日期： [2024 年10 月 29 日 08:10 UTC](https://meta.appinn.net/t/topic/62387/16 "2024-10-29T08:10:14Z")

</div>

这些情况原因有些复杂，有的是创建用的软件问题，有的软件给 PDF 设置了权限，还有的把页面搞成一图流了

---

<div class="post-metadata">

作者： ![Dalieba](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dalieba/32/3804_2.png) [@Dalieba](https://meta.appinn.net/u/Dalieba)\
发布日期： [2024 年11 月 1 日 07:22 UTC](https://meta.appinn.net/t/topic/62387/17 "2024-11-01T07:22:07Z")

</div>

对，就是用 base64 编码嵌入的。不过就算 MHTML 也用这个格式保存图片，而且这种文档可以把后缀名改为 eml 再用 email 客户端打开。

至于乱码的问题，我觉得需要用文本编辑器打开看看里面的 `charset` 属性标注的什么编码。

---

<div class="post-metadata">

作者： ![Dalieba](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dalieba/32/3804_2.png) [@Dalieba](https://meta.appinn.net/u/Dalieba)\
发布日期： [2025 年10 月 14 日 15:56 UTC](https://meta.appinn.net/t/topic/62387/18 "2025-10-14T15:56:31Z")

</div>

SingleFile 的作者还开发了一个JS库，用来把 MHT 转换成单一 HTML 文件，可以到[这里](https://meta.appinn.net/t/topic/65044)见识一下

---

<div class="post-metadata">

作者： ![Aquamarine](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/a/22d042/32.png) [@Aquamarine](https://meta.appinn.net/u/Aquamarine)\
发布日期： [2025 年10 月 15 日 02:35 UTC](https://meta.appinn.net/t/topic/62387/19 "2025-10-15T02:35:06Z")

</div>

> [@xiaokonglong](#):
>
> mhtml本质上对网页内容的重新编码

@Dalieba 问题就在这里，在我发现mht格式的文本不能直接可读之后，就没用这个格式存档过，虽然它能压缩到一个文件中。

> [@xiaokonglong](#):
>
> 所以 SingleFileZ 也是这个思路

我好奇的是，SingleFile采用的是什么方式，没有打包压缩，或者是类似mht但只编码了图片？因为我看文字是可读的。

---

<div class="post-metadata">

作者： ![tjsky](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/tjsky/32/31059_2.png) [@tjsky](https://meta.appinn.net/u/tjsky)\
发布日期： [2025 年10 月 15 日 03:54 UTC](https://meta.appinn.net/t/topic/62387/20 "2025-10-15T03:54:25Z")

</div>

> [@Aquamarine](#):
>
> SingleFile采用的是什么方式

其实还是把网页html，和里面的js、CSS、图片都存在一个文件夹中，然后把文件夹用zip压缩成一个自解压的单文件，再把这个自解压压缩包的后缀名改成html

![_20251015115540.png](https://h1.appinn.me/file/1760500554626__20251015115540.png)

可用压缩软件打开保存的html文件，看到实际文件结构

[下一页](https://meta.appinn.net/t/topic/62387.md?page=2)
