用于powerpoint的perl Win32 :: OLE ExportAsFixedFormat语法

时间:2011-09-30 08:38:34

标签: perl powerpoint win32ole

我使用powerl(来自office2010)使用perl(草莓)和win32 :: ole时遇到问题 将ppt(x)转换为pdf。

我可以使用Export函数导出到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 个答案:

答案 0 :(得分:1)

只是为了完成golemwashere的答案:

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

这可以在Windows 7上使用powerpoint 2007,但必须忽略返回值。

答案 1 :(得分:-1)

我解决了使用

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

很难找到32 = pdf格式 以及$ outfile需要foward斜线:/ 在路径(与\我有混乱的错误)。