厘米转印刷点

把厘米换算成排版用的印刷点 pt,也支持反过来把印刷点换回厘米。默认已填好一段示例,打开就能看到一次真实换算;页面会讲清楚 pt 其实是七十二分之一英寸的长度单位,并不是重量单位「磅」。

允许 -100000 到 100000,步长 0.0001;越界会给出明确提示,不会被当成 0。
默认已填 4 行示例;清空后想恢复点「载入示例」。批量结果逐行列出,空行跳过但不会静默补 0。

提示:单值框裸按 Enter 触发换算;批量框用 Ctrl/Cmd + Enter。

厘米与印刷点对照(三列数值均由脚本实时计算)

输入厘米 cm换算印刷点 pt回代换算回 cm

对照表前 12 行直接显示,其余 4 行点「加载更多」展开;第三列把输出再按反向系数换回原单位,用来验证公式自洽,不是人工抄进去的结果。

使用方法

  1. 打开页面先别急着填:单值框已经带着默认示例,方向下拉停在「厘米 → 印刷点 pt」,结果区也已经有内容。这是服务端直出的非空示例,脚本只在输入框为空时才补填,绝不会把你已填好的值覆盖掉。
  2. 只换算一个数时,改单值框里的数字后裸按 Enter 即可,不必点按钮;「换算」按钮与它完全等价,适合鼠标操作。
  3. 要一次算一批,在批量框里每行写个数值,按 Ctrl/Cmd + Enter,结果区会逐行列出每个数值的换算结果;空行自动跳过,但某一行填了字母或文字会明确指出是第几行出错。
  4. 想反过来算,把方向下拉切到「印刷点 pt → 厘米」。脚本用同一条公式把 from 与 to 对调,结果区、对照表、完整示例里的数字会一起重算;反向结果同样能用系数复算核对,不是另写一套近似值。
  5. 点「复制结果」把快照存进剪贴板;对照表可「加载更多」展开余下 4 行,「导出对照表 CSV」下载带 BOM 的表格,「复制对照表 TSV」按制表符复制后直接粘进表格软件。

这个工具能解决什么问题

排版场景里最常卡住人的,是同一段尺寸在不同软件里说着不同单位:设计稿标「2.5 厘米宽」,InDesign 认印刷点,印刷厂认毫米,前端样式表认像素。厘米转印刷点把这一段距离直接换成 pt,让 Word、桌面出版和 CSS 三个语境能对上同一把尺子,省得每次靠记忆估一个大概值。

更关键的是拆掉一个长期存在的翻译误会。不少人看到 pt 被写成「磅」,就以为在说重量,于是顺着「厘米转磅」这句话去找公斤、市斤、常衡盎司,方向从一开始就错了。本页把这串机翻原样保留一次,正是为了提醒:印刷点是长度单位,一厘米约合 28.3465 个印刷点,与质量没有任何关系,也不能拿去和重量单位互相换算。

还有一类是字号校验。设计师写「正文 12pt」,前端若顺手写成 12px,字就会明显偏小;本页顺带给出 1 pt 对应的像素数,让「点」与「像素」之间也有据可查,避免设计稿到网页的视觉走样。

本页只做厘米与印刷点这一对单位的双向换算,不做质量换算,不提供英寸、毫米、派卡的整套长度表,也不做像素与厘米的综合排版计算;它只回答「这个厘米数等于多少印刷点」以及反过来。

计算原理:印刷点 pt 究竟是什么,系数怎么来

全页只有一条公式:out = in × f[from] / f[to]。两个系数都统一折算到 CSS 参考像素这个中间量:CSS 规定 1 英寸 = 96 px,于是 1 厘米 = 96/2.54 ≈ 37.79527559055118 px,1 印刷点 = 96/72 = 1.3333333333333333 px。乘 f[from] 是把输入换成像素,除 f[to] 是把像素换成目标单位,两步合起来就是一次换算,反向时只需把两项对调。

印刷点的定义是 1/72 英寸。这是 Adobe 在 PostScript 里定下的桌面出版标准,后来被 PDF、Word 与 CSS 沿用:1 pt = 25.4/72 mm ≈ 0.3527777778 mm,也就是约万分之三十五米。它和重量「磅」毫无关系——重量磅是 pound(lb),1 lb ≈ 453.59237 g,属于质量量纲;印刷点是长度量纲,两者连量纲都不同,纯粹因为英文 point 被想当然译成了「磅」才撞了名字。

为什么是 28.3465 这个不整的数。把两个系数相除:f[cm]/f[pt] = (96/2.54) ÷ (96/72) = 720/25.4 ≈ 28.346456692913,即 1 厘米等于约 28.3465 pt;反过来 f[pt]/f[cm] ≈ 0.035277777778,即 1 pt 只有约 0.0353 厘米。这个「不整」源自英寸与厘米的换算比 2.54 不是整数,不是脚本算错。

还有一个历史小坑。TeX 排版系统用的 point 是 1/72.27 英寸,比 PostScript point 略小;印刷业另有 1 pica = 12 pt 的说法。做高精度印刷或跨平台校对时,得先确认对方用的是哪一套点,本页按 CSS 与桌面出版通行的 1/72 英寸口径计算。

CSS 里的 pt 不等于 px。因为 1 in = 96 px、1 in = 72 pt,所以 1 pt = 96/72 = 1.3333333333 px。于是 12pt 字号渲染到屏幕上约是 16px,而不是 12px;把设计稿的 pt 数值直接当 px 写进样式表,字会小掉四分之一。对照表第三列把换算结果再按反向系数换回厘米,用来直观验证这条公式前后自洽。

完整示例(默认输入实测)

把单值框还原成 1,按「厘米 → 印刷点」换算,得到 (计算中) pt;把输入改成 2.5,得到 (计算中) pt。这两个数不是抄来的,都是本页脚本用 out = in × f[cm] / f[pt] 现算的;换个输入再触发,读数会立即跟着变,结果区与对照表里的同一行也始终一致。

把方向切到「印刷点 → 厘米」,输入 1,得到 (计算中) cm,也就是 1 pt 约合 (计算中) mm;按 CSS 的像素口径,1 pt 又恰好等于 (计算中) px。把正向结果与反向结果相乘,应该回到 1 附近,这正是「反向结果也可复算」的含义。

批量框里默认的 1、2.5、10、12 四行,按 Ctrl/Cmd + Enter 后会一次列出四行换算值;任意改一行再触发,只有那一行跟着变,其余行不受影响。完整示例与对照表共用同一个换算函数,所以两处数字永远一致,不会出现「示例对、表格错」的割裂。

对照表与输入范围

结果边界与舍入

精度来自双精度浮点。脚本用 JavaScript 的 Number 计算,有效位约 15 到 16 位十进制数字,对排版换算绰绰有余;显示时统一取约 10 位有效数字再去掉尾部多余的零,避免把 28.346456692913 后面一长串浮点尾数当成「精确值」误导人。若你要拿去和印刷厂对稿,请按对方要求的位数再四舍五入一次。

小数与科学计数。很小的结果(例如反向换算里的 0.000000001 量级)会尽量展开成普通小数,而不是甩一个 e 记法给你;但极端接近零或被判断为非有限值时,结果区显示破折号并给出错误说明,不会输出 NaN 或 Infinity。

0 与负数。输入 0 得 0,这是合法结果,不是错误;负数按带符号数值照实换算。脚本只把「空」「非数字」「越界」判为非法,每条路径都会在错误区写明具体原因,绝不把非法输入悄悄归零后继续算。

舍入不累积。对照表每一行都从输入值独立算一次,不是拿上一行加步长累加,所以不会出现逐行漂移;回代列也是从输出值重新换算,两处数值可以互相印证。整套计算都在当前页面里完成,不发起网络请求,也不写 Cookie 或本地存储。

常见问题

印刷点 pt 和重量「磅」是一回事吗?

完全不是。pt 是印刷点,等于 1/72 英寸、约 0.3527777778 毫米,是长度单位;重量磅是 pound,约 453.59237 克,是质量单位。两者量纲不同,只是英文 point 被机翻成「磅」才撞了名字。本页换算的是长度,和斤、公斤、盎司没有任何换算关系。

为什么 1 厘米是 28.3465 pt,不是个整数?

因为英寸与厘米的比是 2.54,不是整数。系数相除得到 720/25.4 ≈ 28.346456692913。这个数看着零碎,恰恰说明它是按定义推导出来的,而不是凑出来的近似值;把它和反向系数 0.035277777778 相乘会回到 1。

CSS 里 12pt 字号在屏幕上到底是多少像素?

约 16px。CSS 规定 1 英寸 = 96 px,而 1 英寸 = 72 pt,所以 1 pt = 96/72 = 1.3333333333 px,12pt 就是 16px。若把设计稿的 12pt 当成 12px 写进样式表,字会小掉四分之一,这是排版走样最常见的原因之一。

切到「印刷点 → 厘米」后,怎么核对结果没算错?

用回代法:切反向前记下 1 cm 的 pt 值,切反向后输入这个 pt 值,应回到 1 cm 附近;对照表第三列也是把输出再换回原单位。脚本正反两个方向共用同一组系数,只是把 from 与 to 对调,所以反向结果天然可复算。

输入框为什么要设 min 和 max,超了会怎样?

单值框限定了 -100000 到 100000、步长 0.0001,是为了拦下明显超出排版实用范围的输入,避免极大数值放大浮点误差。超过上下限时错误区会写明「数值 X 大于上限 100000」,并停止换算,不会截断、不会归零,也不会输出一个看似正常的结果。

批量框里的空行或字母会被当成 0 吗?

不会。空行直接跳过;某行若填了字母、文字或多个小数点,脚本会指出「第 N 行不是合法数字」并中止本次批量换算,不会把它当 0 混进结果。只有全部行都是数字时才逐行输出,这是为了避免一个错字污染整批数据。

对照表能导出吗,CSV 为什么要带 BOM?

能。点「导出对照表 CSV」下载带 UTF-8 BOM 的表格,Excel 打开时中文表头不会乱码;点「复制对照表 TSV」按制表符复制,可直接粘进表格软件。导出的数值同样由脚本现算,切换方向后再导出,内容会跟着更新。

换算结果会被上传到服务器吗?

不会。所有计算都在你当前的浏览器里由内联脚本完成,页面不发起任何网络请求,也不写 Cookie 或 localStorage。你可以在开发者工具的 Network 面板里反复换算,面板始终是空的,输入内容只留在本地页面。

相关工具