Automatizando CorelDraw

Funciones que se utilizan cuando queremos manejar archivos creados con CorelDraw dentro de nuestros programas Delphi





Abrir un documento Corel




var


 
CorelDraw: Variant;


 


CorelDraw := CreateOleObject('CorelDraw.Automation.8');


CorelDraw.FileNew;


 
// también se puede usar CorelDraw.FileOpen(FileName);


CorelDraw.SetDocVisible(True);


CorelDraw.FileSave('NewName', 0,
False,
0, False);


CorelDraw.FileExit(False); 


CorelDraw := Unassigned;





Parámetros de la función FileSave




FileName: WideString


ThumbNailSize: Integer


SaveSelectedOnly: WordBool


FileVersion: Integer


IncludeCMXData: WordBool













Abrir un documento usando COM




  var


    Disp: IDispatch;


  begin


    Disp := CreateComObject(CLASS_CDrawAutomate) as IDispatch;


    Draw := IDrawAutomate(Disp);










Cerrar  CorelDraw




  Draw.FileExit(False);


  Draw := nil;             // si Draw es una variable del tipo IDrawAutomate 





o





  Draw.FileExit(False);


  Draw := Unassigned;      // si Draw es una variable de tipo variant










Cerrar un documento


 Draw.FileClose(False); 





Cambiar la orientación del texto y otras propiedades.




CorelDraw.SetPageOrientation(0);


CorelDraw.SetPageSize(PageW, PageH);


CorelDraw.NewLayer('NewLayer1');


CorelDraw.SelectLayer('NewLayer1');


CorelDraw.CreateEllipse(CalcY(Y1)), CalcX(X1), CalcY(Y2),
CalcX(X2),
0, 0,
0);


CorelDraw.CreateRectangle(CalcY(Y1)), CalcX(X1), CalcY(Y2),
CalcX(X2), CalcX(Radius));








Primero hay que crear el objeto del dibujo y luego se asignan distintas propiedades, como color, tipo de relleno, grosor, etc Por defecto, estos valores no se pueden establecer a través de la automatización.







CorelDraw.CreateArtisticText( Text, CalcX(X), CalcY(Y));


With
Font
do


 
begin


 
if
(Italic)
and
(Bold)
then
FSK:=
14 else


 
if
(Italic)
then
FSK:=
8 else


 
if
(bold)
then
FSK:=
13 else FSK:=7;


 
end;


CorelDraw.SetCharacterAttributes( 0, 0,
Font.
Name, FSK, Abs(Font.Size)*10,


 
0, 0,
0, 0,
0, 1000, 1000, HAlign);


ColorToCMYK(Font.Color, C,M,Y,K);


CorelDraw.StoreColor(2,
C,M,Y,K,
0,0,0,0); 


CorelDraw.ApplyUniformFillColor; 







CorelDraw.GetSize(XSize, YSize); 


CorelDraw.MoveObject(0,
-YSize); 





Mostrar todos los objetos:




var
ObjID, FirstObjID:longint;


begin


CorelDraw.SelectAllObjects;


CorelDraw.SelectNextObject(true);


FirstObjID := CorelDraw.GetObjectsCDRStaticID;


Repeat


...


// otra opción    CorelDraw.SelectNextObject(true);


ObjID :=
CorelDraw.GetObjectsCDRStaticID;


Until ObjID = FirstObjID; ...



















No hay comentarios:

Publicar un comentario

Simulación del movimiento de los electrones en un campo electrico

Espectacular simulación realizada con OpenGL del movimiento de los electrones cuando atraviesan un campo eléctrico. Como muestra la image...