5
kullanarak MS Word belgesindeki tüm değişiklikleri kabul etme Python'dan bir MS Word (.docx) belgesindeki tüm değişiklikleri, tercihen python-docx
modülünü kullanarak kabul edebilmeyi istiyorum.Python
Perl'de nasıl yapılacağını biliyorum (başvuru için aşağıya bakın) ancak Python programımda yerel kodun aynısını yapmak isterim. Ide
Herhangi bir fikir?
use strict;
use Win32::OLE qw(in with valof OVERLOAD);
use Win32::OLE::Const 'Microsoft.Word'; # wd constants
use Win32::OLE::Variant;
$Win32::OLE::Warn = 3;
my $true = Variant(VT_BOOL, 1);
my $false = Variant(VT_BOOL, 0);
use File::Spec;
use File::Basename;
## Original & New File
my $DocFile = &transform_path($ARGV[0]);
my $NewFile = ($ARGV[1] ? &transform_path($ARGV[1]) : $DocFile);
[ -e $DocFile ] || die "*** Cannot open '$DocFile'\n";
### Transform path
sub transform_path {
my $path = shift;
if (! File::Spec->file_name_is_absolute($path)) {
my $abs = File::Spec->rel2abs($path);
$path = $abs;
}
else {
$path=~s%/+%\\%g;
}
return $path;
}
## Autoflush
$| = 1;
### opening file: try with "new" function, otherwise use "GetActiveObject"
my $Word;
eval {
$Word = Win32::OLE->GetActiveObject('Word.Application') || Win32::OLE->new('Word.Application', 'Quit');
};
if ([email protected]) {
print "Please open MS Word manually before continuing\n";
print "...Press ENTER to continue...\n";
<STDIN>;
$Word = Win32::OLE->GetActiveObject('Word.Application','Quit');
}
print "Opening '$DocFile'\n";
my $document = $Word->Documents->Open({FileName =>$DocFile, ConfirmConversions => 0});
die "Cannot open '$DocFile'\n" unless defined $document;
$document->Activate();
$Word->ActiveWindow->ActivePane->View->{Type} = wdPrintView;
### Accept all changes
print("Accepting all changes\n");
$Word->ActiveDocument->{TrackRevisions} = $false;
$Word->WordBasic->AcceptAllChangesInDoc();
### Save and Close
if ($NewFile eq $DocFile) {
$document->Save();
$document->Close();
} else {
$document->SaveAs($NewFile);
$document->Close(wdDoNotSaveChanges);
}
print "Saving in '$NewFile'\n"
## END ##
Bu fonksiyon 'piton-docx' içinde mevcut değil bildiğim kadarıyla olduğunu yol açar. Bunu yapan bir excel-makrosu arardım. –