Adobe作恶多端, PDF和PostScript对出版物格式的垄断
图片创作于 Adobe Photoshop

常见的出版物格式

正常人, 包括你我, 如果想写 一本书 你会想用什么工具?

你先别急着回答, 先仔细想想可能碰到什么问题, 怎么在最快的时间内写好, 怎么浏览...




好了, 我猜你多半说 Latex + PDF 或者 Word.

应该没有人疯狂到上来就写 markdown 然后转 html 然后转 xml 转来转去的吧.

毕竟为了保证你打印出来的格式正常, 你也没什么可选的, 你再想一下如果你想做一个网页你能有多少中你知道的, 你用过的技术栈?

是不是很惊讶, 为什么我们现在出一本书居然没有别的可选项!

为什么活到最后的是PDF?

1991年Adobe的联合创始人约翰沃诺克提出了使用这么一个系统来让文档便于分发, 当时如日中天的还是Latex,DVI以及Unix机器, Latex 我们都知道... 您拿到 .tex 文件离能成功打印出来还差十万八千里... 所以他们想开创这么一个格式来减轻终端用户的心智负担.

有一些读者可能不太了解为什么Latex输了... 那么我们以一个可爱的80年代的大学生阿伟为例, 他想打印出来他的学长杰哥的论文用于阅读.

然后他拿到了学长的.tex文件, 然后他需要第一步找到他学长用过的宏包.

(然后他发现有一个宏包是他学长自己写的, 存了源代码的软盘不知道弄哪儿去了...)

然后他花了九牛二虎之力在各个论坛翻箱倒柜的找到了所有的宏包, 然后发现.sty坏了.

(他问他学长, 他学长说他没动过 .sty 文件...)

他发现他学长是使用的他学长大学实验室独家研制的一套Latex发行版, 再引入了.sty 文件之后似乎对了...

然后他编译这个latex...

Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.
Error line 114514 !Text line contains an invalid character.

然后似乎是宏包更新版本了...

他大喊: "杰哥不要!"

所以PDF出现极大程度上缓解了上面这个问题.

PDF最大的贡献就是第一使用了XML进行排版, 同时规定了图像的格式, 还提供了一系列的元信息, 统一了字体集, 以及使用强大的PostScript进行绘制可以做出很多很fantasy的效果.

那么这么好的一个东西究竟那里作恶了呢?

专利问题

2008年, Adobe公司发布了 ISO32000-1 对于公共许可, 制作, 使用, 发布PDF兼容应用所属的专利以及技术文档.

等等, 这个玩意儿有专利!?

没错!

不但又专利, 而且还是买断制专利!

也就是说杰哥他们的贫穷的实验室再也不能发布一款基于PDF技术制作的PDF发行版了, 否则就会吃官司.

而且还有一个最大的问题, 就是他们所提供的技术参考实现...居然依赖了专有技术! 我的上帝!

字体专利

为了解决当时位图字体的狗牙在先进的激光打印机打印出来的是更尖锐的狗牙的问题, Adobe公司推出了Type 1 和 Type 3的字体格式, 然后这种字体的轮廓数据被Adobe公司使用加密算法和密钥保存下来了, 然后想打印光滑的字体吗? 请支付给Adobe公司高昂的许可证授权费.

虽然Adobe公司的技术水平贼几把烂, 刚一发布就被破解但是要是被他们看到你在用... 准备请律师吧, 相信你的律师没Adobe家的牛逼.

图片专利

Adobe公司手里的图片专利多的你数不过来, 无论是压缩也好, 格式也好, 过滤器也好, 解码器也好, 一不小心你就用了Adobe的技术处理了你的图片...一不小心就有得交授权费.


但这两个专利还好, 最要命的就是PostScript的专利了.

什么是PostScript, 微软苹果和Adobe的爱恨情仇.

PostScript这一个基于堆栈长得像Forth的解释语言来自于Adobe最早的那一批人的想法, 1978年首次实现, 然后随着Adobe公司的势力扩张, PostScript甚至一度被塞到了每一个激光打印机.

有人会好奇为什么打印个图片都要一种编程语言?

因为随着Adobe开始鼓捣他们的矢量字体, 如何把矢量的数据转换为位图并打印下来成了必要(这一步在图形学里我们普遍称之为光栅化), Adobe到90年代的绝大多数利润都来自于这个PostScript的打印机固件, 可见其影响力.

然后我们的苹果和微软都坐不住了, 因为Adobe这么搞有点心太黑了!

国共合作一致对外

在1980年末为了抗议Adobe公司的流氓行为, 苹果开始开发TrueType(也就是我们现在都还在用的.ttf)格式的字体, 微软公司和苹果公司py交易了一些技术, 然后也获得了TrueType的使用权, 当即就把TTF当成了Windows的首要的字体格式.

我们的GNU和FreeDesktop也坐不住了

你们都在这里玩闭源玩专利? 老子开源社区第一个不服!

然后他们就写出了FreeType, 然后被Adobe 苹果和微软一起告了

(资本家合着都是一伙儿的)

直到2010年字体专利被解除, 才允许FreeType再放出来. 而且直到现在还阉割掉了部分仍然苹果持有专利的字体微调功能, 这也是为啥Linux GUI字体难看的原因之一, Windows你别狡辩了, 写的烂就是写的烂.

PostScript究竟为什么这么烂

但凡你对并行和并发有一定的了解, 你肯定知道, 最好别搞全局状态...

PostScript就是有隐藏全局状态的语言, 这个从你打开大PDF文件快速翻页直接死机就看出来问题了...

PostScipt不支持图片的透明度 (问你PDF咋来的透明? 那可是Adobe的专利)

PostScript的隐含全局状态造成任意一个不兼容引起的渲染错误的状态会传递到所有后续的页上...

这也就是说有一丁点不兼容你的整个文档有可能整个没法看.

哦忘了说了, 除了windows 是 GDI 的, 其他的打印机驱动全部都是PostScript... 也就是实质上出版物的事实标准被垄断了.

2022年了, 其他人怎么渲染的

那有的人反应过来了, 欸, 我们前端现在这么花里胡哨的, 好像也没你说的这些问题啊

(你试过拿打印机打印前端网页吗? 不是截图)

随着前端的进步 HTML5 CSS 的后端日新月异, 之前有Google的Angle和Skia, 现在又更新的Servo更能充分的利用GPU去渲染, 已经换了天了, 而PDF呢? 还在PostScript一点点解释.

2022年了, 你从一个网页切换到另一个完全没有打开过的网页也就顶多1-3秒, 有缓存的基本就是毫秒级别, 这已经形成了事实上的碾压.

开放带来进步, 封闭必然落后

垄断只是一时的, 当Adobe的专利都悉数到期之后, 等待他的将是一个名为Web的庞然大物.

评论

  1. temp
    7月前
    2022-5-12 13:12:35

    感谢分享,似乎现在的 KDE 也能安装 ttf 只不过字体渲染还是不如 mac


    查看图片


    • 博主
      temp
      7月前
      2022-5-12 13:15:07

      现在freetype谁都能装但微调有专利所以谁都不如mac/ios

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇