0

Win32::OLE を使用すると、Word 文書から表や段落を読み取ることができます。ワード文書から画像・画像を読みたいのですが、画像を取得する機能はありますか?

以下は、表と段落を読み取るためのコードです。

$Word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application');
$Word->{'Visible'}     = 0;
$Word->{DisplayAlerts} = 0;

my $document = $Word->Documents->Open($Req_doc_path);

### for tables reading
my $tables = $document->{'Tables'};
for my $table (in $tables){
   my $tableText = $table->ConvertToText({ Separator => wdSeparateByTabs });
   #print "Table: ", $tableText->Text(), "\n";
}

### for paragraphs reading
$paragraphs = $document->paragraphs();
$enumerate = new Win32::OLE::Enum($paragraphs);
while(defined($paragraph = $enumerate->Next()))
{

}

#

画像/写真も読むのを手伝ってください。前もって感謝します。

4

1 に答える 1

0

これにはInlineShapes()とが必要です。Shapes

#!/usr/bin/perl

use Modern::Perl;
use Win32::OLE;

my $Word = Win32::OLE->GetActiveObject('Word.Application')
  || Win32::OLE->new('Word.Application');
$Word->{'Visible'} = 0;
$Word->{DisplayAlerts} = 0;

my $document = $Word->Documents->Open("test.docx");

my $shapes = $document->InlineShapes(); #you need to process $document->Shapes() also


my $enumerate = new Win32::OLE::Enum($shapes);
while ( defined( my $shape = $enumerate->Next() ) ) {

    say "Width: ", $shape->Width();
}
于 2013-05-02T09:59:12.007 に答える