从Word :: Range或Word :: Selection中获取组合数据(文本+图片)

时间:2018-02-16 01:58:14

标签: ms-word com range interop

我可以使用

从Word :: Range获取文本数据
Range->Text

我可以用

获取图片
Range->InlineShapes

但我不能同时获得这两个数据。因此,当我选择一张图片时,我无法确定该图片所在文本的确切位置。

这是获取图片位置信息的方法,也可能是获得包含文本和图片数据的连续“Range-> Text”的方法,因为源文件名可能如下:

"Hello there 'C:\pics\pic.jpg' blablabla".

此外,当我在范围上应用Range-> Text时,它同时包含text和pic,它将pic pos作为斜杠返回,如

"Hello there/blablabla" 

但是我不知道它是表示图片位置还是只是通常的斜线。

1 个答案:

答案 0 :(得分:0)

Word的对象模型就是:它基于对象。所以事情不会作为一个序列返回。如果你拿起Word Open XML,你可以得到它:

stringWordContent = range.WordOpenXML

除此之外,您需要对图片相对于文字的位置进行一些比较:

inlineShape = range.InlineShapes(1)
rangeInlineShape = inlineShape.Range
textRange = range
'to compare location
rangeInlineShape.InRange(textRange)
rangeInlineShape.Start
rangeInlineShape.End
textRange.Start
textRange.End