2012-04-15 7 views
2

Ich möchte auf die Position und Größe für jede unteilbare Einheit in Microsoft Word zugreifen. Beispiele für solche Einheiten sind einzelne Zeichen, Bilder usw.Holen Sie Textposition in Microsoft Word von VBA oder C# Interop

Der Zweck besteht darin, eine visuelle Überlagerung basierend auf Position und Größe der Einheit anzuwenden. Ich werde den Inhalt der Zieldokumente nicht kennen.

Stellen Sie sich den Text dieser Frage in einem Word-Dokument vor. Ich muss in der Lage sein, jedes Zeichen einschließlich Leerraum und Wagenrücklauf zu iterieren und die Größe und Position zu erhalten.

EDIT
Es spielt keine Rolle, ob Ihre Antwort hält Makros, Interop, Add-Ins oder Einbetten OLE.

Antwort

3

Die Methode, die angezeigte Koordinaten eines Objekts abruft, ist Window.GetPoint (Link für die Office-Interop-Version, dasselbe in VBA).

Wie für die "unteilbare Einheit" können Sie jede gewünschte Bedeutung in die verfügbaren Sammlungen einfügen.
Wenn Sie beispielsweise möchten, dass es sich um Zeichen handelt, können Sie Document.Range.Characters verwenden, eine Sammlung von Zeichen, von denen jedes eine Range ist.
Oder Sie können Document.Range.InlineShapes für die Bilder, die Teil des Textes sind.
Oder Document.Range.ShapeRange um "schwimmende" Formen zu zählen.

An diesem Punkt denken Sie vielleicht an Window.RangeFromPoint, um ein Objekt aus seinen Fensterkoordinaten zu berechnen.

+0

Schön! Will es versuchen und zurückfallen. –