Perl Win32::OLE ExportAsFixedFormat синтаксис для PowerPoint

У меня проблемы с использованием Perl (клубника) и Win32:: OLE с использованием PowerPoint (из офиса2010) для преобразования ppt(x) в PDF.

Я могу экспортировать в jpgs нормально с помощью функции экспорта, но функция ExportAsFixedFormat имеет довольно неясный синтаксис, и alwawys дает мне Win32::OLE(0.1709) error 0x80020011: "Does not support a collection",

это образец того, что я пытаюсь

    my $ppoint = Win32::OLE->new('PowerPoint.Application', 'Quit');
    my $Presentation = $ppoint->Presentations->Open("$infile") || die("Una +ble to open document ", Win32::OLE->LastError()) ; 
    $Presentation->ExportAsFixedFormat("$outfile", 2, 2, "msoCTrue", "ppPrintHandoutHorizontalFir +st", "ppPrintOutputFourSlideHandouts", "msoFalse", "", "" , "", "Fals +e", "False", "False", "False", "False"); 

Второй параметр ppFixedFormatTypePDF должен быть 2

третий параметр 'ppFixedFormatIntentPrint' должен быть равен 2

Кто-нибудь может предложить рабочий пример?

2 ответа

Просто чтобы закончить ответ от голема было тут

use Win32::OLE::Const 'Microsoft PowerPoint';
...
$Presentation->SaveAs("$outfile",ppSaveAsPDF, 1);

Это работает с использованием PowerPoint 2007 на Windows 7, но возвращаемое значение следует игнорировать.

Я решил использовать

$Presentation->SaveAs("$outfile", 32);

было непросто обнаружить, что для формата 32 = pdf, а также для $outfile необходимы слеши вперед: / в пути (с \ я получил непонятные ошибки).

Другие вопросы по тегам