Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

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 browsing the Monastery: (7)
As of 2018-08-16 12:45 GMT
Find Nodes?
    Voting Booth?
    Asked to put a square peg in a round hole, I would:

    Results (167 votes). Check out past polls.