有没有这么一种文件格式?

2022-08-09 10:27:06 +08:00
 dier
最近通过 MD 格式写的文件导出分享给其它人阅读时发现一个问题

MD 文件在编辑器中都是没有纵向分页的概念。所有的文字、图片混合编辑排版像是在一张无限长的纸上一样,唯一限制纸张长度的就是内容。有多少内容,这张纸就有多长。

但导出成 PDF 时就会要选纸张大小,如果是图文混排的内容经常会因为图片太长导致文字在一页,图片在另外一页,中间有大量空白区域,阅读体验很差。

如果导出为 html ,图片又不能包含在同一个文件中。

想问一下有没有类似 html 这种可以无限下拉不分页,还能把图片嵌在同一个文件中(类似 PDF docx )的文件格式。
或者大家平时是怎么避免这个问题?
1608 次点击
所在节点    问与答
16 条回复
equationl
2022-08-09 10:37:32 +08:00
你在找的是不是 .mhtml ?
shintendo
2022-08-09 10:39:14 +08:00
mhtml ?
libook
2022-08-09 10:39:16 +08:00
个人认为即便都是把一些内容放到同一页里,也会有很多不同的排版方式,而且也有可能需要提前规划好内容来适应排版需要,所以最好可能还是用些 docx 或 odt 等富文本格式,在写的时候排版。
dier
2022-08-09 10:40:18 +08:00
@equationl 我搜了一下,这个格式貌似符合我描述的需求,我研究研究看能不能转成这种格式。

如果大家还有其它的建议,也欢迎补充
wudicgi
2022-08-09 10:40:49 +08:00
不嫌文件大的话,可以用 data:image/png;base64,... 把 base64 编码后的图片嵌到 HTML 中
dier
2022-08-09 10:48:55 +08:00
@wudicgi #5 你这个方式确实也可以,内容不是太多我觉得你这种基本上就能解决我的问题了,不过我在 iPhone 上试了一下打开有个小问题,就是不能匹配到用浏览器来打开这个文件,有点尴尬。不知道安卓手机会不会有这样的问题,我找个人试试
wudicgi
2022-08-09 10:49:22 +08:00
N 年前写 PHP 没多久时,我还写过一个叫 Mht File Maker 的类
https://www.phpclasses.org/package/1766-PHP-Build-MHT-MIME-archives-from-lists-of-files.html

后来根据反馈,使用者多数是把 .mht 文件当成能被 Word 打开的一种富文本格式来用的

不过 .mht 这个格式实在太老了,浏览器以前貌似只有 IE 支持。像 Firefox, Chrome 之类的我感觉一直不咋支持
wudicgi
2022-08-09 10:52:17 +08:00
其实最好还是生成 PDF, 但是免费的 HTML 转 PDF 的库我试过一些,没有太好用的
比如 wkhtmltopdf 对中文书签的支持有 bug, 正文某些字体没效果,某些字体直接乱码

排版方面,那些 HTML 转 PDF 的工具可以通过 CSS 或一些额外标记来对图文混排做一些控制
linhua
2022-08-09 10:56:40 +08:00
SingleFile 这个扩展可以将图片和内容都导出到一个 html 文件里
icyalala
2022-08-09 10:59:49 +08:00
想要别人看到的分页内容和你一样,那你写的时候就要按分页来写。直接 Word 吧。。
dier
2022-08-09 11:24:38 +08:00
@icyalala #10 主要是一些之前已经用 MD 写好的文档,MD 文档预览的时候也没分页的概念,一直往下拉就行了。只是转成 PDF 就会导致分页效果不如 MD 的预览效果
dier
2022-08-09 11:25:53 +08:00
@wudicgi #8 我把 base64 图片之后的 MD 转成 html ,再把 html 转成 PDF 排版、缩放就没 html 那么好了。
nekoneko
2022-08-09 11:53:40 +08:00
在找 LaTex ?
cht
2022-08-09 12:38:12 +08:00
移动网络特色产物:长图生成器 😀
dier
2022-08-09 13:11:27 +08:00
@cht1995 你这到也是个招😂
dier
2022-08-09 13:58:29 +08:00
@nekoneko #13 LaTex 跟 PDF 一样也是要分页的,我想找的是内容在一页上,这一页的长度取决于内容有多少页面就有多长

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/871604

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX