私はちょうどこれを行うコードスニペットを探していますが、C#またはPerlでも可能です。PowerPointプレゼンテーションをC#またはPerlでHTML/JPEGとしてプログラムで開いて保存するにはどうすればよいですか?
私はこれではない大きなタスクを願っ;)
私はちょうどこれを行うコードスニペットを探していますが、C#またはPerlでも可能です。PowerPointプレゼンテーションをC#またはPerlでHTML/JPEGとしてプログラムで開いて保存するにはどうすればよいですか?
私はこれではない大きなタスクを願っ;)
Kevが指摘するように、Webサーバ上でこれを使用しないでください。
が#!/usr/bin/perl
use strict;
use warnings;
use Win32::OLE;
use Win32::OLE::Const 'Microsoft PowerPoint';
$Win32::OLE::Warn = 3;
use File::Basename;
use File::Spec::Functions qw(catfile);
my $EXPORT_DIR = catfile $ENV{TEMP}, 'ppt';
my ($ppt) = @ARGV;
defined $ppt or do {
my $progname = fileparse $0;
warn "Usage: $progname output_filename\n";
exit 1;
};
my $app = get_powerpoint();
$app->{Visible} = 1;
my $presentation = $app->Presentations->Open($ppt);
die "Could not open '$ppt'\n" unless $presentation;
$presentation->Export(
catfile($EXPORT_DIR, basename $ppt),
'JPG',
1024,
768,
);
sub get_powerpoint {
my $app;
eval { $app = Win32::OLE->GetActiveObject('PowerPoint.Application') };
die "[email protected]\n" if [email protected];
unless(defined $app) {
$app = Win32::OLE->new('PowerPoint.Application',
sub { $_[0]->Quit }
) or die sprintf(
"Cannot start PowerPoint: '%s'\n", Win32::OLE->LastError
);
}
return $app;
}
C:\presentation1.ppt
を開き、相互運用機能アセンブリを入手する必要がある場合などC:\Presentation1\slide1.jpg
としてスライドを保存します以下は、それは次のとおりです。ただし、以下のPerlスクリプトは、オフラインファイル変換などのために完全に罰金ですOfficeインストールプログラムの「ツール」から入手できます。または、here (office 2003)からダウンロードできます。新しいバージョンのオフィスをお持ちの場合は、他のバージョンのリンクを見つけることができます。
using Microsoft.Office.Core;
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
namespace PPInterop
{
class Program
{
static void Main(string[] args)
{
var app = new PowerPoint.Application();
var pres = app.Presentations;
var file = pres.Open(@"C:\Presentation1.ppt", MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse);
file.SaveCopyAs(@"C:\presentation1.jpg", Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsJPG, MsoTriState.msoTrue);
}
}
}
編集: Sinan's versionは、輸出を使用することで、出力解像度を指定することができますので、少し良いオプションになりそうです。 C#の場合は、上述の最後の行を変更:
file.Export(@"C:\presentation1.jpg", "JPG", 1024, 768);
+1のC#ソリューション(私がもう一度投票することができますが、それはさらに8時間程度でなければなりません;-) –
これは優れています。 Office 2010以降のすべてのユーザーには、ライブラリ 'Microsoft.Office.Core' [libは実際にはCOMライブラリです](http://stackoverflow.com/questions/5932794/microsoft-office-core-reference-missing)、ロードする必要がある拡張機能ではありません。 –
私はあなたの最善の策は、多分それを研究してみてください...いくつかのC#およびPowerPoint相互運用機能アセンブリになると思います。 –
プログラムを実行しているコンピュータにはPowerPointがインストールされていますか? –