簡體   English   中英

Perl Win32 :: OLE word合並兩個doc文件

[英]Perl Win32::OLE word merging two doc files

我正在嘗試將兩個文檔合並到新的doc文件中,但我在下面的代碼中遇到錯誤。

    use strict;
    use Win32::OLE;
    use Win32::OLE::Const 'Microsoft Word';

    $meta_file_path = "D:\\copyfrom.doc";
    $main_file_path = "D:\\copyto.doc";

    my $x = Win32::OLE->GetActiveObject('Word.Application') ;
    my $word = Win32::OLE->new('Word.Application', sub { $_[0]->Quit; } );
    my $doc = $word->Documents->open($meta_file_path) or die $!;

        my $doc = $word->Documents->Open($meta_file_path) or die $!;
$word->ActiveDocument->Content;
$word->ActiveDocument->Select();
$word->Selection->Copy();
$doc->Close;
my $doc2 = $word->Documents->Open($main_file_path) or die $!;       
$word->ActiveDocument->Content->Paste();
$word->ActiveDocument->SaveAs('D:\\outdoc.doc');
$doc2->Close;       
exit;

錯誤是:

Win32::OLE(0.1709) error 0x80020011: "Does not support a collection"
    in METHOD/PROPERTYGET "" at D:/merge.pl line 12.
Can't call method "Content" on an undefined value at D:/merge.pl line 12.

我從perlmonks獲得了一個代碼,它給了我欲望輸出,但它們是格式中的一個問題,copyfrom.doc有不同對齊的表和文本以及copyto.doc的字體系列。

您可能嘗試將當前文檔用作Documents集合的一部分,而它實際上是Word應用程序對象的一部分。 我沒有辦法在這里測試代碼,但嘗試改變

$doc->ActiveDocument

$word->ActiveDocument

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM