Dieses Skript basiert auf dem Artikel perlmonks von angiehope wie der Kommentar von @FtLie oben. Ich habe dies mit Office 2010 getestet. Das Skript erstellt eine Datei mit dem Namen ppt_test.ppt in der gleichen Datei wie das Skript und legt ein Kennwort "geheim" für das gespeicherte Dokument fest.
use strict;
use warnings;
use v5.10;
use Try::Tiny;
use Data::Dumper;
use Carp;
use FindBin qw ($Bin);
use Win32::OLE qw(in CP_UTF8);
Win32::OLE->Option(CP => CP_UTF8);
$Win32::OLE::Warn = 3;
my $filename = "$Bin/ppt_test.ppt";
unlink $filename if (-e $filename);
print("Starting Powerpoint Object\n");
my $power = Win32::OLE->GetActiveObject('Powerpoint.Application') ||
Win32::OLE->new('Powerpoint.Application', 'Quit');
my $ppt = $power->Presentations->Add();
# 12 = blank layout
my $slide = $ppt->Slides->Add(1,12);
# 1 = text in horizontal direction, the next two numbers describe the position
# and the last numbers the width and height of the box
my $new_textbox = $slide->Shapes->AddTextbox(1,30,30,600,200);
my $text_frame = $new_textbox->TextFrame;
my $text_range = $text_frame->TextRange;
$text_range->{Text} = "Please print \x{03B1},\x{03B2},\x{03B3}";
# Now set the password
my $password = 'secret';
$ppt->{Password} = $password;
$ppt->SaveAs($filename);
$ppt->Close();
Im Allgemeinen können Sie nicht. PPT-Dateien sind sehr proprietär und ich kenne keine Module, die von Perl auf diese Dateien zugreifen. Wenn Sie PowerPoint auf dem gleichen Computer installiert haben, können Sie PowerPoint von Perl aus mit Win32 :: Ole automatisieren (schauen Sie unter http://www.perlmonks.org/?node_id=922835 nach, um ein paar Tipps zu erhalten) – FtLie