使用Perl脚本在ms-word文件中获取所有普通样式

ssr1012

我有Ms-Word文档文件(也可能是* DOCX),我需要使用perl脚本来获取文档中使用的所有样式。

我已经在搜索引擎中尝试了一些代码,但是失败了。

use Win32::OLE;
use Win32::OLE::Enum;
use File::Copy;
#use strict;

my $fileName = "d:\\test.doc";
my $document = Win32::OLE -> GetObject($fileName);
#Creating a new excel sheet
#my $xl_app=Win32::OLE->new('word.Application','Quit');

my $paragraphs = $document->Paragraphs();
my $enumerate = new Win32::OLE::Enum($paragraphs);

while(defined($enumerate->Next()))
{
    $style = $paragraph->{'Styles'}->{'Normal'};
    $text = $paragraph->{'Range'}->{'Text'};
    #$text =~ s/[\n\r]//g;
    #$text =~ s/\x0b/\n/g;
    #$text =~ s/\x07//g;
    print "\nStyle = $style";
    print "\nText = $text";
}

输入文字文件:

在此处输入图片说明

输出:与文本文件相同 "Normal style found: Line number nn"

有人可以帮我这个忙。提前致谢。

HåkonHægland

以下为我工作:

use feature qw(say)
use strict;
use warnings;
use Win32::OLE;
use Win32::OLE::Enum;
use constant wdFirstCharacterLineNumber => 10;
my $fn = "d:\\test.docx";
my $document = Win32::OLE->GetObject($fn) or die Win32::OLE->LastError;
my $word_app = Win32::OLE->GetActiveObject('Word.Application') or die Win32::OLE->LastError;
my $paragraphs = $document->Paragraphs();
my $num_para = $document->Paragraphs->Count;
for my $i (1..$num_para) {
    my $paragraph = $paragraphs->Item($i);
    my $style = $paragraph->{Style}->{NameLocal};
    if ($style eq "Normal") {
        my $range = $paragraph->Range;
        $range->Select;
        my $line_no = $word_app->Selection->Information(wdFirstCharacterLineNumber);
        say "Normal style found: Line number $line_no";
    }
}
$document->close();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有办法使用Apache Tika从文档文件中获取所有样式?

使用命名参数在perl脚本中运行perl脚本

使用反引号获取 perl 脚本中的核心文件

使用VBA在文件夹中的所有文档中查找和替换MS Word文本

如何使用Perl在MS Word中检查超链接?

使用Python接受MS Word文档中的所有更改

使用perl / PPR从perl文件中删除所有注释

如何使用system()从CGI文件中调用异步Perl脚本

如何使用perl脚本从文件中删除选定的重复行

使用 perl 脚本在目录中查找文件

如何使用Aspose.Word获取Word文档中的所有卸载图像

使用Ajax获取目录中的所有文件

使用vim获取目录中的所有文件名

如何在不更改下面一行的样式的情况下查找和替换MS Word 2013中具有样式的所有文本

使所有单词在MS Word中的段落

使用普通 javascript(多个容器)为所有子元素添加样式

获取所有注入的脚本文件

终端中的“ ls”命令显示所有文件和文件权限。如何使用仅显示普通文件和文件夹的“ ls”恢复正常?

使用Google Apps脚本从图表中获取所有系列

使用perl脚本将日志导出到Oracle SQL“更新”脚本的文本文件中

使用Perl脚本比较两个文件

使用 perl 脚本逐行读取文件以获得精确匹配

使用perl脚本检查cpanel授权并写入文件

使用 Perl CGI 脚本上传文件不起作用

使用 perl 脚本更新 xml 数据库文件

使用PERL从脚本生成配置文件

如何使用perl脚本逐行检查xml文件

使用在 Cygwin 中启动的 perl 脚本运行带有 2 个参数的 Java 文件

在Perl脚本中运行系统命令时使用通配符