 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Dom 30 May, 2004 10:32 am Asunto: Eliminar tabuladores en Word OLE Automation |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Lun 31 May, 2004 4:44 am Asunto: |
|
|
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 |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Lun 31 May, 2004 9:54 am Asunto: |
|
|
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 |
|
 |
|
|
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
|
© 2002–2026 Club Builder · Funciona con phpBB.
|