Skip to content

Commit 50261e2

Browse files
committed
修改变变量名
1 parent 0ddf78d commit 50261e2

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

  • Workbench/Wmf/KawkaywecaljalKayjaybelfuber

Workbench/Wmf/KawkaywecaljalKayjaybelfuber/Program.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ Encoding CharacterSetToEncoding(CharacterSet characterSet)
9191
return Encoding.GetEncoding(codePageId);
9292
}
9393

94-
float lastXOffset = 0;
94+
float lastDxOffset = 0;
9595

9696
for (var i = 0; i < wmfDocument.Records.Count; i++)
9797
{
@@ -129,7 +129,7 @@ Encoding CharacterSetToEncoding(CharacterSet characterSet)
129129
{
130130
currentX = moveToRecord.X;
131131
currentY = moveToRecord.Y;
132-
lastXOffset = 0;
132+
lastDxOffset = 0;
133133
break;
134134
}
135135
// - [12] {== WmfLineToRecord ==
@@ -212,6 +212,11 @@ Encoding CharacterSetToEncoding(CharacterSet characterSet)
212212
{
213213
case RecordType.META_EXTTEXTOUT:
214214
{
215+
// 关于字间距的规则:
216+
// 1. 如果两个 META_EXTTEXTOUT 相邻,中间没有 MoveTo 之类
217+
// 则第二个 META_EXTTEXTOUT 将需要使用前一个 META_EXTTEXTOUT 的 dx 末项
218+
// 2. 可选的 dx 是存放在字符串末尾的可选项,从文档 2.3.3.5 上可见 dx 是顶格写的,这就意味着这个值是一定对齐整数倍的。由于 dx 是放在数据末尾,可通过减法算出 dx 长度,即数据总长度减去所有已知字段的长度加上字符串长度,剩余的就是 dx 长度。如果计算返回的 dx 长度是奇数,则首个 byte 是需要跳过的,如此就能确保在 16bit 下的 wmf 格式里面,读取的 dx 是从整数倍开始读取
219+
215220
// 测试 17 项
216221
var memoryStream = new MemoryStream(unknownRecord.Data);
217222
var binaryReader = new BinaryReader(memoryStream);
@@ -242,7 +247,7 @@ Encoding CharacterSetToEncoding(CharacterSet characterSet)
242247
paint.Style = SKPaintStyle.Fill;
243248
paint.Color = currentTextColor;
244249

245-
var currentXOffset = currentX + tx + lastXOffset;
250+
var currentXOffset = currentX + tx + lastDxOffset;
246251

247252
if (dxLength == 0)
248253
{
@@ -275,7 +280,7 @@ Encoding CharacterSetToEncoding(CharacterSet characterSet)
275280
currentXOffset += dxArray[textIndex];
276281
}
277282

278-
lastXOffset = dxArray[^1];
283+
lastDxOffset = dxArray[^1];
279284
}
280285

281286
break;

0 commit comments

Comments
 (0)