在所有当前维护的情况下,在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
<-分页符->