【问题标题】:How to find out justification of paragraph using perl?如何使用 perl 找出段落的理由?
【发布时间】:2013-12-30 12:05:25
【问题描述】:

有没有一种方法可以找出 MS Word 文档中段落的对齐方式。谁能帮帮我?

【问题讨论】:

    标签: perl ms-word ole


    【解决方案1】:

    使用 OLE,您似乎可以通过具有 Alignment 属性的 ParagraphFormat2 对象获得对齐(或对齐)。这是 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 => 左,1 => 居中,2 => 右,3 => 对齐。

    【讨论】:

    • 能否解释一下如何在 perl 中使用它?
    • @Praveenkumar 我在帖子中添加了一个示例,请随时查看。
    • 执行后,抛出'Can't call method "Open" on an undefined value at para2.pl line 18'。
    • 抛出@倒数第二行(我的 $doc = ..)。
    • @Praveenkumar 看看我刚刚所做的更新。打开文件时需要传入文件的完整路径。
    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2014-05-16
    • 2013-03-22
    • 2014-10-22
    相关资源
    最近更新 更多