none
Modificar la posicion de los vertices de un objeto Word.Shape RRS feed

  • Pregunta

  • Hola, 

    tengo el siguiente problema:

    En la aplicación que estoy desarrollando tengo que exportar una tabla (control de tipo Farpoint.Spread) a un documento Word. Esta tabla debe exportarse completamente (sin cortes), sin cambiar la orientación de la página del documento Word, girada 90 grados. 

    He buscado como girar una tabla en Word pero sólo he encontrado una manera "conveniente" y es insertar la tabla dentro de una forma (rectángulo) y girar la forma 90 grados. Sin embargo, al hacer el giro de la figura con la tabla dentro de esta, el rectángulo queda descentrado con respecto a las dimensiones de la página.

    Así que se me ha ocurrido que podría acceder a los vértices o nodos del rectángulo para ajustar su posición a las esquinas de la página. Por desgracia, cuando intento acceder a la información de los vértices del rectángulo, obtengo una excepción COM (la interacción con Word es mediante Interop) y no tengo información suficiente de que provoca dicho error.

    ¿Podría alguien ayudarme a averiguar que puede estar provocando el error COM?

    Dejo un ejemplo de mi código:

    Documento.Tables(1).Select() Documento.ActiveWindow.Selection.Cut() Dim InvisibleShape As Word.Shape = Documento.Shapes.AddShape(1, 0, 0, 150, 150) InvisibleShape.ZOrder(Microsoft.Office.Core.MsoZOrderCmd.msoSendBehindText) InvisibleShape.TextFrame.TextRange.Paste() InvisibleShape.IncrementRotation(90) Dim shapePoints As Object Dim x As Single, y As Single With InvisibleShape Dim vertArray As Object = .Vertices x = vertArray(1, 1) y = vertArray(1, 2) 'shapePoints = .Item(1).Points End With

    lunes, 10 de diciembre de 2018 10:55

Todas las respuestas

  • No sé la respuesta, pero sí tengo una sugerencia acerca de cómo puedes encontrarla. Si sabes hacer lo mismo manualmente desde Word, pon a grabar una Macro en Word, haz los cambios en pantalla, y detén la grabación de la Macro. Después, examina el código fuente de la Macro, y eso debería darte una pista acerca de las funciones que hay que llamar y la forma de usarlas. Tendrás que retocarlo ligeramente, porque es VBA en lugar de VB.NET, pero te dará una buena pista acerca de cómo conseguir el objetivo que persigues.
    martes, 11 de diciembre de 2018 11:50