- Timestamp:
- 2010-07-27T16:07:18+12:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/perllib/plugins/PowerPointPlugin.pm
r21958 r22515 32 32 use strict; 33 33 no strict 'refs'; # allow filehandles to be variables and viceversa 34 34 no strict 'subs'; 35 use gsprintf 'gsprintf'; 36 37 #sub BEGIN { 38 # @PowerPointPlugin::ISA = ('ConvertBinaryFile'); 39 #} 40 41 # @ISA dynamically configured to be either OpenOfficeConverter or ConvertBinaryFile 42 43 # do not initialise these variables 44 my $openoffice_ext_installed; 45 my $openoffice_ext_working; 35 46 sub BEGIN { 36 @PowerPointPlugin::ISA = ('ConvertBinaryFile'); 47 eval("require OpenOfficeConverter"); 48 if ($@) { 49 # Useful debugging statement if there is a syntax error in OpenOfficeConverter 50 #print STDERR "$@\n"; 51 @PowerPointPlugin::ISA = ('ConvertBinaryFile'); 52 $openoffice_ext_installed = 0; 53 $openoffice_ext_working = 0; 54 } 55 else { 56 # Successfully found 57 $openoffice_ext_installed = 1; 58 # now check whether it can run soffice 59 if ($OpenOfficeConverter::openoffice_conversion_available) { 60 @PowerPointPlugin::ISA = ('OpenOfficeConverter'); 61 $openoffice_ext_working = 1; 62 63 } else { 64 @PowerPointPlugin::ISA = ('ConvertBinaryFile'); 65 $openoffice_ext_working = 0; 66 } 67 } 37 68 } 38 69 39 my $ convert_to_list =70 my $windows_convert_to_list = 40 71 [ { 'name' => "auto", 41 72 'desc' => "{ConvertBinaryFile.convert_to.auto}" }, … … 60 91 ]; 61 92 93 my $opt_windows_args = 94 [ { 'name' => "convert_to", 95 'desc' => "{ConvertBinaryFile.convert_to}", 96 'type' => "enum", 97 'reqd' => "yes", 98 'list' => $windows_convert_to_list, 99 'deft' => "html" }, 100 { 'name' => "windows_scripting", 101 'desc' => "{PowerPointPlugin.windows_scripting}", 102 'type' => "flag", 103 'reqd' => "no" } 104 ]; 105 106 my $opt_openoffice_args = 107 [ { 'name' => "openoffice_scripting", 108 'desc' => "{OpenOfficeConverter.openoffice_scripting}", 109 'type' => "flag", 110 'reqd' => "no" } ]; 111 62 112 my $options = { 'name' => "PowerPointPlugin", 63 113 'desc' => "{PowerPointPlugin.desc}", … … 72 122 push(@$pluginlist, $class); 73 123 124 if ($openoffice_ext_installed) { 125 print STDERR "PowerPointPlugin: OpenOffice Extension to Greenstone detected\n"; 126 if ($openoffice_ext_working) { 127 print STDERR "... and it appears to be working\n"; 128 } else { 129 print STDERR "... but it appears to be broken\n"; 130 &gsprintf(STDERR, "OpenOfficeConverter: {OpenOfficeConverter.noconversionavailable} ({OpenOfficeConverter.$OpenOfficeConverter::no_openoffice_conversion_reason})\n"); 131 } 132 } 133 74 134 if ($ENV{'GSDLOS'} =~ m/^windows$/i) { 75 my $ws_arg =[{ 'name' => "convert_to", 76 'desc' => "{ConvertBinaryFile.convert_to}", 77 'type' => "enum", 78 'reqd' => "yes", 79 'list' => $convert_to_list, 80 'deft' => "html" }, 81 { 'name' => "windows_scripting", 82 'desc' => "{PowerPointPlugin.windows_scripting}", 83 'type' => "flag", 84 'reqd' => "no" } 85 ]; 86 push(@$arguments,@$ws_arg); 87 } 88 135 push(@$arguments,@$opt_windows_args); 136 } 137 if ($openoffice_ext_working) { 138 push(@$arguments,@$opt_openoffice_args); 139 } 140 89 141 push(@{$hashArgOptLists->{"ArgList"}},@{$arguments}); 90 142 push(@{$hashArgOptLists->{"OptList"}},$options); 91 143 92 144 93 my $self = new ConvertBinaryFile($pluginlist, $inputargs, $hashArgOptLists); 145 my $self = {}; 146 147 if ($openoffice_ext_working) { 148 $self = new OpenOfficeConverter($pluginlist, $inputargs, $hashArgOptLists); 149 } 150 else { 151 $self = new ConvertBinaryFile($pluginlist, $inputargs, $hashArgOptLists); 152 } 94 153 95 154 if ($self->{'info_only'}) { … … 98 157 } 99 158 159 my $outhandle = $self->{'outhandle'}; 160 100 161 $self->{'filename_extension'} = "ppt"; 101 162 $self->{'file_type'} = "PPT"; 102 163 164 # can't have windows_scripting and openoffice_scripting at the same time 165 if ($self->{'windows_scripting'} && $self->{'openoffice_scripting'}) { 166 print $outhandle "Warning: Cannot have -windows_scripting and -openoffice_scripting\n"; 167 print $outhandle " on at the same time. Defaulting to -windows_scripting\n"; 168 $self->{'openoffice_scripting'} = 0; 169 } 170 103 171 #these are passed through to gsConvert.pl by ConvertBinaryFile.pm 104 172 $self->{'convert_options'} = "-windows_scripting" if $self->{'windows_scripting'}; 173 $self->{'convert_options'} = "-openoffice_scripting" if $self->{'openoffice_scripting'}; 105 174 my $secondary_plugin_options = $self->{'secondary_plugin_options'}; 106 175
Note:
See TracChangeset
for help on using the changeset viewer.