【发布时间】:2016-03-30 01:11:49
【问题描述】:
使用 VBA 或 Interop.Word 我想简单地逐行解析 Word 文档中的文本,而不管该行中的文本是否跨越多列。按照下面的例子,我想要:
第 1 行 =“第 1 行第 5 行”
第 2 行 =“第 2 行第 6 行”
第 3 行 = "第 3 行第 7 行"
等等
我在 Word 对象模型中找不到任何可以促进这一点的方法、属性或对象。我尝试导出为 PDF,然后在 Word 中再次打开同一个文件,但转换并没有逐行保留原始文本,并且在某些地方变得非常混乱。
【问题讨论】:
-
我怀疑这是否可行。 Word 根本不是为了在内部“看到”页面的布局方式而设计的。我能想到的唯一可能有机会的事情是通读每一段并检查 Range.Information(wdVerticalPositionRelativeToPage)。如果它为同一页面返回相同的值(或多或少),那么它在同一“行”中。
-
谢谢辛迪。不知道我想再碰这个了,哈哈!只花了 30 多个小时,但它开始了。问题是该文档来自一些愚蠢的扫描软件生成的 PDF,该软件将每页中心的空白解释为一列。经过一番挖掘,我找到了一种使用 Acrobat Pro 导出到 Word 并打开“布局”模式的方法 - 默认情况下它是“流”。然后在每个块周围创建 Rectangle 对象(文本框)。我痛苦地找到了一种从中解析大部分内容的方法。
-
好的 :-) 不想让你坐着不回答 :-)