【问题标题】:Parsing text line by line across columns in Word document在 Word 文档中跨列逐行解析文本
【发布时间】: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 对象(文本框)。我痛苦地找到了一种从中解析大部分内容的方法。
  • 好的 :-) 不想让你坐着不回答 :-)

标签: vba ms-word


【解决方案1】:

根据我上面的评论:一种解决方法是尝试使用布局模式重新创建文档。在这种情况下,Word 文件来自打印文档的 Adob​​e PDF 扫描导出,因此它仅适用于这些情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    相关资源
    最近更新 更多