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 необходимы слеши вперед: / в пути (с \ я получил непонятные ошибки).