V-Форум / Corel VBA / Тема: COrelDRAW com и php

COrelDRAW com и php

 17/04/2009 13:31:45 #Link

mendow

Привет!
Может ктонибудь пробовал работать с CorelDraw на уровне COM интерфейса из PHP? сейчас разобрался как запускать корел через веб интерфейс могу перебирать объекты, выводить их свойства, удалять объекты, создавать слои.
Но как только применяю метод содержащий кучу параметров типа
Цитата:

// VBA
Dim s1 As Shape
Set s1 = ActiveLayer.CreateRectangle(0.620803, 9.776315, 8.033945, 4.253673)
// в PHP я делаю так
$cdr = new COM("corelDRaw.application" or die("Unable to instantiate CDR";
$cdr->FileOpen("c:/foo.cdr";
$cdr->ActivDocument->ActivePage->ActiveLayer->CreateRectangle(0.620803, 9.776315, 8.033945, 4.253673);
// возвращает ошибку о неверном типе данных

Начинает ругаться на неверный тип параметра.
Буду благодарен за любую помощь!
Спасибо!
ман по работе с com в PHP http://ru2.php.net/manual...

---- up 10.08.1012 ---
Рабочий скрипт под вин, только укажите правильно пути.
cdr.zip
Результат:

Re: COrelDRAW com и php

 17/04/2009 13:44:58 #Link

wOxxOm

обсуждалось что-то похожее в С# на forum.oberonplace.com, там все сводилось к тому, что нужно было передавать какой-то доп.параметр что ли...

а здесь - мот надо указывать все параметры для CreateRectangle, их же много?

p.s. я так понимаю Activ<***>Document - это просто опечатка на форуме?

Re: COrelDRAW com и php

 17/04/2009 15:56:02 #Link

mendow

нарисовать и закрасить удалось

Цитата:

$cdr = new COM("CorelDRaw.application") or die("Unable to instantiate corel");
echo "Loaded CorelDraw, version {$cdr->Version}\n";
$cdr->Visible = 1;
$cdr->CreateDocument();
$s1 = $cdr->ActiveDocument->ActiveLayer->CreateRectangle(0.620803, 9.776315, 8.033945, 4.253673);
$s1->Fill->UniformColor->CMYKAssign( 0, 100, 100, 0 );


делает



авот при экспорте выдает ошибку...

Цитата:

$expflt = $cdr->ActiveDocument->ExportBitmap("C:\\Documents and Settings\\igor\\Рабочий стол\\Рисунок1.bmp", cdrOS2BMP, cdrAllPages, cdrRGBColorImage, 185, 191, 72, 72, cdrNormalAntiAliasing, False, False, False, False, cdrCompressionNone);
$expflt->Version = 1 ;
$expflt->Finish;



ошибка
Цитата:
Fatal error: Uncaught exception 'com_exception' with message 'Parameter 12: Несовпадение типов. ' in Z:\home\test\www\com\example.php:19 Stack trace: #0 Z:\home\test\www\com\example.php(19): variant->ExportBitmap('C:\Documents an...', 'cdrOS2BMP', 'cdrAllPages', 'cdrRGBColorImag...', 185, 191, 72, 72, 'cdrNormalAntiAl...', false, false, false, false, 'cdrCompressionN...') #1 {main} thrown in Z:\home\test\www\com\example.php on line 19

Re: COrelDRAW com и php

 17/04/2009 16:28:29 #Link

wOxxOm

гм, возможно придется исползовать числовые эквиваленты констант типа cdrXXXX ( cdrRGBColorImagе и т.п. -- смотреть, ясен день либо в коде в вба-редакторе корела по Shift-F9 либо в его object browser, shift-f2 вроде lookup definition)

Re: COrelDRAW com и php

 17/04/2009 17:43:08 #Link

mendow

wOxxOm
большое спасибо за подсказку!
похоже сработало.
удалось создать документ и сохранить его.
Вот код на PHP:
Цитата:
<?
$empty = new VARIANT();
com_load_typelib('CorelDRaw.Application');
$cdr = new COM("CorelDRaw.application") or die("Unable to instantiate corel");
echo "Loaded CorelDraw, version {$cdr->Version}\n";
$cdr->Visible = 1;


$cdr->CreateDocument();
$s1 = $cdr->ActiveDocument->ActiveLayer->CreateRectangle(0.620803, 9.776315, 8.033945, 4.253673);
$s1->Fill->UniformColor->CMYKAssign( 0, 100, 100, 0 );

$cT = $cdr->ActiveDocument->ActiveLayer->CreateArtisticText( 0, 0, date("Y/m/d"), $empty, $empty);




$SaveOptions = $cdr->CreateStructSaveAsOptions();
// With SaveOptions
$SaveOptions->EmbedVBAProject = False;
$SaveOptions->Filter = 1795;
$SaveOptions->IncludeCMXData = False;
$SaveOptions->Range = 0;
$SaveOptions->EmbedICCProfile = False;
$SaveOptions->Version = 9;
$name = "J:\\temp\\art".time().".cdr";
$cdr->ActiveDocument->SaveAs($name, $SaveOptions);

?>

Re: COrelDRAW com и php

 10/08/2012 12:11:09 #Link

mendow

up смотрите в шапку

Re: COrelDRAW com и php

 13/08/2012 2:09:00 #Link

xm

о. появился ))

Источник: https://powerclip.ru/modules/newbb/viewtopic.php?topic_id=8749&start=0

Rambler's Top100