Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Eliminar tabuladores en Word OLE Automation

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Eliminar tabuladores en Word OLE Automation Responder citando

Hola.

Perdonad el título, pero no se me ocurría otra forma d eponerlo.
Después de mucho pelearme con el dichoso Word Automation, estoy consiguiendo algunas cosillas. La última es insertar tabuladores del tipo deseado y a la medida que quiero. Pero... ¿cómo le indico que deseo eliminar un tabulador determinado, por ejemplo, el que está a 3.5 cm del margen izquierdo?

Un saludo, y espero que alguien pueda ayudarme (_Leo estaría bien, ja,ja, ja,...)
_________________
Nunca digas "Es imposible" sin intentarlo antes.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Probamos con una instancia de Word ya cargada y con varios tabuladores globales en la página, uno de ellos a 3,5cm:
Código:
// Añadimos: #include <ComObj.hpp>


// Puntos por milímetro
const double PPM = 72 / 254.0;
inline int PointsToMillimeters(double value) { return value / PPM + 0.5 ; }


// Usamos una instancia de Word abierta
Variant Word = GetActiveOleObject("Word.Application");

// Posicionamos el cursor al principio del documento
Variant Selection = Word.OlePropertyGet("Selection");
Selection.OleProcedure("SetRange", 0, 0);

// Obtenemos el conjunto de tabuladores comunes a todos los parrafos
Variant Paragraphs = Selection.OlePropertyGet("Paragraphs");
Variant TabStops = Paragraphs.OlePropertyGet("TabStops");

// Recorremos la lista de tabuladores
int TabStopsCount = TabStops.OlePropertyGet("Count");
for (int i=1; i<TabStopsCount; i++)
{
    Variant TabStop = TabStops.OleFunction("Item", i);

    // Ignoramos los tabuladores predefinidos
    bool CustomTab = TabStop.OlePropertyGet("CustomTab");
    if (CustomTab)
    {
        // Comprobamos si el tabulador esta a 3,5cm y lo borramos
        double Position = TabStop.OlePropertyGet("Position");
        if (PointsToMillimeters(Position) == 350)
        {
            TabStop.OleProcedure("Clear");
            break;
        }
    }
}
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola _Leo.

Muchas gracias por contestar. Vo a probar, aunque estoy seguro de que funcionará.

Muchas gracias _Leo. Un saludo.
_________________
Nunca digas "Es imposible" sin intentarlo antes.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.