Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

win32 ole and power point

by sumit07 (Novice)
on Sep 08, 2012 at 08:42 UTC ( #992448=perlquestion: print w/replies, xml ) Need Help??
sumit07 has asked for the wisdom of the Perl Monks concerning the following question:

hello perl monks help me solve it error: Can't call method "CustomDocumentProperties" on an undefined value at powerpoint .pl line 10. code is below please solve it thanks in advance
use strict; use Win32::OLE qw(in); use Win32::OLE::Const 'Microsoft Office'; my $Word = Win32::OLE->new('Word.Application', 'Quit'); my $PowerPoint = Win32::OLE->new('PowerPoint.Application', 'Quit'); my $Watermark = $Word->Documents->Open('C:\Users\sumit\Desktop\test\D +oc1.doc'); my $ppt = $PowerPoint->Presentations->Open('C:\Users\sumit\Desktop\te +st\Presentation1.ppt'); my $Powerprop = $ppt->CustomDocumentProperties(); foreach my $Property (in $Watermark->CustomDocumentProperties) { my $Name = $Property->Name; local $Win32::OLE::Warn = 0; my $Value = $Property->Value; # $Property->{Value}='test'; $Value = '***Error***' if Win32::OLE->LastError; $Value = '<undef>' unless defined $Value; $Powerprop->Invoke('Add',{ Name => $Name, LinkToContent => 0, Type => 4, Value => $V +alue } ); printf "%s %s = %s\n", $Name, '.' x (40-length($Name)), $Property- +>Value; } $ppt->Save(); $ppt->Close(); $PowerPoint->Quit(); $Watermark->close(); $Word->Quit();

Replies are listed 'Best First'.
Re: win32 ole and power point
by Old_Gray_Bear (Bishop) on Sep 08, 2012 at 14:59 UTC
    So, what happens if line 8 (my $ppt = $PowerPoint->Presentations->Open('C:\Users\sumit\Desktop\test\Pr­esentation1.ppt');) fails? You really do need to check for errors after trying to open files, you never know what might have happened unless you check.

    I Go Back to Sleep, Now.


      ++Old Gray Bear

      I knew I was missing something when I posted my response but I guess the coffee hasn't kicked in yet.

Re: win32 ole and power point
by Mr. Muskrat (Canon) on Sep 08, 2012 at 14:57 UTC

    CustomDocumentProperties is a property so access it as such.

    my $Powerprop = $ppt->{CustomDocumentProperties};

    There may be other issues with your code but I stopped looking when I got to that line. *shrug*

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://992448]
Approved by Corion
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2018-01-17 20:36 GMT
Find Nodes?
    Voting Booth?
    How did you see in the new year?

    Results (205 votes). Check out past polls.