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;





No hay comentarios:

Publicar un comentario