如何使用perl找出段落的理由?

时间:2013-12-30 12:05:25

标签: perl ms-word ole

是否有方法可以找出MS Word文档中段落的理由。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

使用OLE,看起来您可以通过ParagraphFormat2对象获得对齐(或对齐),该对象具有Alignment属性。以下是OLE文档中的一个示例:

ActivePresentation.Slides(1).Shapes(2).TextFrame2.TextRange2.ParagraphFormat2.Alignment

您可以阅读有关此对象here的更多信息。

要提供Perl示例,请查看此示例:

use strict;
use warnings;
use Win32::OLE qw(in with);
use Win32::OLE::Const 'Microsoft Word';
use Win32::OLE::Variant;

my $word = Win32::OLE->GetActiveObject('Word.Application')
  || Win32::OLE->new( 'Word.Application', 'Quit' );
$word->{Visible} = 1;
my $doc = $word->{Documents}->Open('<full path to file>');
print $doc->Paragraphs(1)->{Alignment} . "\n";
$doc->Close();

您需要至少在安装了Microsoft Word的计算机上安装Win32::OLE库。在编写Perl应用程序以使用OLE时,任何OLE对象都是方法调用,而任何OLE成员都是哈希引用。

当您打开文件时,您需要提供文件的完整路径,即“C:\\ folder \\ doc.docx”。更改传递给Paragraphs的数字,无论您想要哪个段落(在OLE数组中从1开始。)

Alignment键将返回一个int,对应于WdParagraphAlignment Enumeration。我能够测试出来; 0 =&gt;左,1 =&gt;中心,2 =&gt;对,3 =&gt;合理的。