@web-ppt/viewer-core 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/dist/viewer-core.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,55 @@
|
|
|
2
2
|
|
|
3
3
|
本文件记录对使用者可见的变化。版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
4
4
|
|
|
5
|
+
## 0.4.2
|
|
6
|
+
|
|
7
|
+
### 修复
|
|
8
|
+
|
|
9
|
+
- **动画目标是「组」时,整组藏不住**。`visibility` 和 `display:none` 不一样:
|
|
10
|
+
它虽然继承,但后代显式写 `visible` 会把祖先的 `hidden` 顶掉。查看器原本给
|
|
11
|
+
隐藏集之外的每个元素都写死 `visible`,于是组藏了、组里每个形状却各自写着
|
|
12
|
+
`visible`,整组照常显示——看着就像「预览显示的还是动画终态」。
|
|
13
|
+
|
|
14
|
+
现在不在隐藏集里就清空这条声明,让继承自然生效。之前只在动画目标为叶子形状
|
|
15
|
+
的样本上验过,那种结构没有子元素,所以一直没暴露。
|
|
16
|
+
|
|
17
|
+
## 0.4.1
|
|
18
|
+
|
|
19
|
+
全是中文排版的修正。四处都由同一份小学课件暴露出来,每一处都拿 PowerPoint
|
|
20
|
+
自己写进文件的 `spAutoFit` 框高做的判据 —— 那个高度是它按实际行数算完存下来的,
|
|
21
|
+
等于文件自己作证该排几行。
|
|
22
|
+
|
|
23
|
+
### 修复
|
|
24
|
+
|
|
25
|
+
- **CJK 标点挤压**。汉字和全角标点都占一整格,但标点的墨迹只占半格
|
|
26
|
+
(`,` `。` 的墨在左半格,`(` `《` 在右半格)。一行放不下时 PowerPoint 会把
|
|
27
|
+
这些空半格挤掉,我们没做,于是多断出一行。规则取「放不下才挤」:放得下时
|
|
28
|
+
保持全角。两条渲染路径算同一笔账——原生 `<text>` 用逐字符 `dx`,
|
|
29
|
+
HTML 用负边距,都与字体无关,不依赖字体是否提供 `halt` 半角替换字形。
|
|
30
|
+
|
|
31
|
+
顺带一句:这类问题**换字体救不了**。所有中文字体的方格一样大,黑体、
|
|
32
|
+
PingFang、思源黑体量出来完全相同
|
|
33
|
+
- **量不到字时的中文估宽**。回退估算原本把每个字符都当 0.55em,中文因此窄掉
|
|
34
|
+
将近一半。Node / jsdom 里恒走这条路,于是**自动缩放对中文一直缩不够**——
|
|
35
|
+
autofit 固件实测旧值排出来 204px、框只有 140px,仍然溢出;按全角整格算
|
|
36
|
+
之后是 146px
|
|
37
|
+
- **百分比行距的基准**。`lnSpc/spcPct` 是「单倍行距」的百分比,而单倍行距是
|
|
38
|
+
**字体的行高**(≈1.2em),不是字号。把 150% 直接当 CSS `line-height:1.5` 用,
|
|
39
|
+
每行矮两成。中文文档里 1.5 倍行距是标配,影响面不小;行距偏紧还会连累
|
|
40
|
+
自动缩放与居中 / 底对齐文本的位置
|
|
41
|
+
- **静态画面改取动画初始态**(原本取终态)。缩略图、主视图、进演示模式后的
|
|
42
|
+
第一帧现在是同一个画面,不再「先把这页演完、再从头演一遍」。
|
|
43
|
+
「不能全部画出来」的理由不变:一页里入场与退场的元素属于不同时刻,摊开画
|
|
44
|
+
等于把几帧叠在一起。例外从「全员退场的收尾页」换成「整页都带入场动画的
|
|
45
|
+
封面页」——那种情况初始态一片空白,退回全部可见
|
|
46
|
+
|
|
47
|
+
### 其它
|
|
48
|
+
|
|
49
|
+
- 测试:1848 → **1873 项断言**,快照 160 → 162 个。`sample-autofit.pptx` 补一页
|
|
50
|
+
把百分比行距与绝对行距放在一起对照——之前 17 个固件里没有一个用过
|
|
51
|
+
`spcPct`,这条路径从没被走过
|
|
52
|
+
- `@web-ppt/viewer-core` 与 `@web-ppt/fonts` 本版无改动,跟随版本号对齐
|
|
53
|
+
|
|
5
54
|
## 0.4.0
|
|
6
55
|
|
|
7
56
|
本版围绕**字体**:嵌入字体此前从来没有真正生效过,替换字体则完全没有。
|
package/dist/viewer-core.js
CHANGED
|
@@ -593,7 +593,7 @@ class O {
|
|
|
593
593
|
const t = this.state.hiddenElementIds;
|
|
594
594
|
this.container.querySelectorAll("[data-el]").forEach((e) => {
|
|
595
595
|
const a = Number(e.getAttribute("data-el"));
|
|
596
|
-
e.style.visibility = t.has(a) ? "hidden" : "
|
|
596
|
+
e.style.visibility = t.has(a) ? "hidden" : "";
|
|
597
597
|
});
|
|
598
598
|
}
|
|
599
599
|
applyZoom() {
|