• 締切済み

Perl でワードファイルのヘッダーを取得する

Perl でワードファイルのヘッダーを取得するには? perl, v5.10.0 windowsXP ワードファイル:word2003 <行いたいこと> C:\temp\word.doc のワードファイルのヘッダー(複数行)を取得したい。 <状況> インターネットでワードファイルの本文は取得できる例がありましたが、 ヘッダーを取得する方法がわかりませんでした。 下記のプログラムでは ・ワードのヘッダーは 0 が表示される。 ・ワードの本文は取得できて表示される。 (ヘッダーを表示しようといろいろしてみましたが、できていません) よろしくお願いいたします。 <プログラム> use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Word'; my $word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application', 'Quit') || die; # 読み込み my $doc = $word->Documents->Open('C:\temp\word.doc') || die; my $headers = $doc ->ActiveWindow->ActivePane->View->{SeekView} = wdSeekCurrentPageHeader; ########## ヘッダー取得(→うまくいかない)########## print "$headers->{SelectionTypeText}\n"; #null foreach (in $headers) { print $_->{SelectionTypeText}->{'Text'} . "\n"; #null print $_ . "\n"; #0 print $_->{'Text'} . "\n"; #null print $headers . "\n"; #0 } ########## 本文取得(→OK)########## my $paras = $doc->Paragraphs; foreach (in $paras) { print $_->Range->{'Text'} . "\n"; } $doc->Close();

みんなの回答

回答No.1

VBSのhelpを身ながらやってみたところ、ヘッダーを取得することができました。 use strict; use Win32::OLE qw(in with); use Win32::OLE::Const 'Microsoft Word'; my $word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application', 'Quit') || die; # 読み込み my $doc = $word->Documents->Open('E:\test.doc') || die; my $header = $doc->Sections(1)->Headers(1); my $s = $header->Range->Text; print "$s\n";

perl_test
質問者

お礼

ありがとうございました! 大変助かりました。 ヘッダーのテキストをどうやって取得するのかわからず、 作業がストップしていました。 独力で作業を続行しても、時間がかかっていたと思います。 ありがとうございました。

関連するQ&A