禁用ScreenUpdating时文档中的页边距不正确

时间:2019-04-22 16:24:17

标签: vb.net ms-word

在所有当前维护的情况下,在Windows 10上运行的MS Office / Word 365中会出现此问题。这不是基于Web的Office 365。

我写了一些vb.net代码来逐页,矩形,矩形,一行一行地处理单词文档。

doc是兼容模式下的“ docx”文件。 这是一个5页的文档,用于标准信封。
此日志中下面显示的数字直接来自Word API的每一行。

我的问题仅在屏幕更新被禁用(关闭)时出现,在这种情况下,它开始出现在第3页及后续页面上。

我已经看到问题从第1页开始发生,但这很少见。
该问题似乎与数据有关:如果我大量更改docx文件(例如缩写名称和地址),则问题可能始于第一页或第10页。

稍后,如果我处理足够的页面,我会看到这种纠正。
整个文档为1000页(信封),但我仅在处理 前5页。

要显示如何获取这些“左”和“宽度”值,我在Word VSTO应用中输入了以下代码:

    ' define 'currentLine'
    Dim currentLine As Microsoft.Office.Interop.Word.Line = myDoc.ActiveWindow.Panes(1).Pages(page).Rectangles(rect).Lines.Item(line)

    The logging in these examples is done with this line of code:
    Log("   Left = " & currentLine.Left & ", Top = " & currentLine.Top & ", Width = " & currentLine.Width & ", alignment = " & currentLine.Range.Paragraphs.Alignment)

这是经过两次完全相同的文档测试的带注释的日志文件,第一个示例禁用了ScreenUpdating,第二个示例启用了ScreenUpdating。

在此示例中,请注意第3页似乎具有合理的值(即与其他页面一致)。 但是,如果您在第二个示例中查看第3页,则“ Left”的值将更改为“ 29”, 对于当前页面和后续页面上的所有矩形,“宽度”值将更改为“ 619”。 然后,它将保持这种方式进行某些处理(从几页到 文档的结尾)。

有人以前见过这种行为吗?有人知道我可能做错了吗?

有关我在文档中用于产生这种怪异现象的原始文字,请参见本文结尾。


启用屏幕更新:

处理文档名称= 3001-4000.docx,副本= 1

第1页-文本= 3001    左侧= 569,顶部= 41,宽度= 24,对齐方式= 0

第1页-文本=某些名称    左侧= 200,顶部= 110,宽度= 153,对齐方式= 0

第1页-文本= 3783 Dogwood Ave    左侧= 200,顶部= 138,宽度= 232,对齐方式= 0

第1页-文本= Some City,FL 32080-4752    左侧= 200,顶部= 166,宽度= 331,对齐方式= 0

<-分页符->

第2页-文本= 3002    左侧= 569,顶部= 41,宽度= 27,对齐方式= 0

第2页-文本=另一个名称    左侧= 200,顶部= 110,宽度= 178,对齐方式= 0

第2页-文本= 8216 Laborie Ln    左侧= 200,顶部= 138,宽度= 210,对齐方式= 0

第2页-文本= Another Cit,FL 98178-3445    左侧= 200,顶部= 166,宽度= 410,对齐方式= 0

<-分页符->

第3页-文本= 3003    左侧= 569,顶部= 41,宽度= 27,对齐方式= 0

第3页-文字=先生姓    左侧= 200,顶部= 110,宽度= 211,对齐方式= 0

第3页-文本= 1874 Barnstable Rd    左侧= 200,顶部= 138,宽度= 278,对齐方式= 0

第3页-文本=惠灵顿,CA 90210-6245    左侧= 200,顶部= 166,宽度= 379,对齐方式= 0

<-分页符->

第4页-文本= 3004    左侧= 569,顶部= 41,宽度= 27,对齐方式= 0

第4页-文字=姓氏太太    左侧= 200,顶部= 110,宽度= 260,对齐方式= 0

第4页-文字= 13550诺森伯兰郡    左侧= 200,顶部= 138,宽度= 351,对齐方式= 0

第4页-文本= Somewherein,TX 55034-8930    左侧= 200,顶部= 166,宽度= 405,对齐方式= 0

<-分页符->

第5页-文本= 3005    左侧= 569,顶部= 41,宽度= 27,对齐方式= 0

第5页-文本=第5先生姓名    左侧= 200,顶部= 110,宽度= 174,对齐方式= 0

第5页-文本= 1574 Yarmouth Ave    左侧= 200,顶部= 138,宽度= 255,对齐方式= 0

第5页-文本=伦敦,WI 43414-8985    左侧= 200,顶部= 166,宽度= 351,对齐方式= 0


禁用屏幕更新:

处理文档名称= 3001-4000.docx,副本= 1

第1页-文本= 3001    左侧= 569,顶部= 41,宽度= 24,对齐方式= 0

第1页-文本=某些名称    左侧= 200,顶部= 110,宽度= 153,对齐方式= 0

第1页-文本= 3783 Dogwood Ave    左侧= 200,顶部= 138,宽度= 232,对齐方式= 0

第1页-文本= Some City,FL 32080-4752    左侧= 200,顶部= 166,宽度= 331,对齐方式= 0

<-分页符->

第2页-文本= 3002    左侧= 569,顶部= 41,宽度= 27,对齐方式= 0

第2页-文本=另一个名称    左侧= 200,顶部= 110,宽度= 178,对齐方式= 0

第2页-文本= 8216 Laborie Ln    左侧= 200,顶部= 138,宽度= 210,对齐方式= 0

第2页-文本= Another Cit,FL 98178-3445    左侧= 200,顶部= 166,宽度= 410,对齐方式= 0

<-分页符->

第3页-文本= 3003    左侧= 29,顶部= 41,宽度= 619,对齐方式= 0

第3页-文字=先生姓    左侧= 29,顶部= 110,宽度= 619,对齐方式= 0

第3页-文本= 1874 Barnstable Rd    左侧= 29,顶部= 138,宽度= 619,对齐方式= 0

第3页-文本=惠灵顿,CA 90210-6245    左侧= 29,顶部= 166,宽度= 619,对齐方式= 0

<-分页符->

第4页-文本= 3004    左侧= 29,顶部= 41,宽度= 619,对齐方式= 0

第4页-文字=姓氏太太    左侧= 29,顶部= 110,宽度= 619,对齐方式= 0

第4页-文字= 13550诺森伯兰郡    左侧= 29,顶部= 138,宽度= 619,对齐方式= 0

第4页-文本= Somewherein,TX 55034-8930    左侧= 29,顶部= 166,宽度= 619,对齐方式= 0

<-分页符->

第5页-文本= 3005    左侧= 29,顶部= 41,宽度= 619,对齐方式= 0

第5页-文本=第5先生姓名    左侧= 29,顶部= 110,宽度= 619,对齐方式= 0

第5页-文本= 1574 Yarmouth Ave    左侧= 29,顶部= 138,宽度= 619,对齐方式= 0

第5页-文本=伦敦,WI 43414-8985    左侧= 29,顶部= 166,宽度= 619,对齐方式= 0


文档中使用的原始文本(此文本以双倍行距显示,因此在本帖子中看起来不错。如果将其放在word文档中,则不要将其双倍行距):

                                                                  3001

一些名字

3783山茱wood大街

佛罗里达萨默市32080-4752

<-分页符->

                                                                  3002

另一个名字

8216 Laborie Ln

另一个Cit,FL 98178-3445

<-分页符->

                                                                  3003

先生姓

1874 Barnstable Rd

Wellington,CA 90210-6245

<-分页符->

                                                                  3004

太太夫人

13550诺桑伯兰郡赛尔

Somewherein,TX 55034-8930

<-分页符->

                                                                  3005

第5名先生

雅茅斯大街1574号

伦敦,WI 43414-8985

<-分页符->

0 个答案:

没有答案