Buona sera a tutti, è da un pò che cerco su google informazioni ma non riesco a trovare un risposta a questa domanda: posso aprire un file di OO richiamandolo con Perl?
Premetto di non aver mai visto Perl, PHP e MySql prima di imbarcami in questa impresa per cui vi prego di spiegarvi come se vi trovaste davanti un bambino di 4 anni...
Per essere più chiara, sto lavorando su programma opensource che si chiama IGSuite per farlo diventare più adatto alle esigenze dell'azienda di mio papà.
Attualmente il programma quando protocolla una lettera permette di salvarla da qualsiasi formato ma di richiamarla direttamente con un pulsante solo se HTML (teoricamente dovrebbe aprire anche PDF e TIFF ma restituiscono una pagina vuota), siccome in azienda usano OO volevo modificare quella parte di codice per permettere di aprire i file direttamente da IGSuite.
Fino ad ora cercando tra i vari tutorial e manuali le uniche cose che ho trovato sono le funzioni exec() e system() che da quanto ho capito fanno la stessa cosa ma mentre la prima termina lo script subito, la seconda attende la chiusura del programma richiamato per terminarlo (spero di aver capito giusto almeno questo) però non penso di essere sulla strada giusta per fare quello che vorrei.
Ho trovato anche questo modulo di Perl http://search.cpan.org/dist/OpenOffice-OODoc/ ma mi sembra di aver capito che serva solo per creare e modificare documenti OO e non per aprili come vorrei io.
Vi posto la parte di codice che sto cercando di capire e modificare, anche se lunga, sperando di sia più chiara di me nel farvi capire cosa sto cercando di fare![]()
Grazie millecodice:sub show_doc { die("Any document ID specified.\n") if !$on{id}; my ( $doc_file_name, $doc_file_dir, $doc_protocol ) = IG::ProtocolToFile($on{id}); if ( ! CheckPrivilege("${doc_protocol}_view") ) { IG::Warn( $lang{Err_privileges} ); return; } ## Find other protocol information DbQuery("select contactid, issue, owner, note, contactname ". "from $doc_protocol where id = '".DbQuote($on{id})."'"); my ( $doc_contactid, $doc_issue, $doc_owner, $doc_note, $doc_contactname ) = FetchRow(); $on{contactid} ||= $doc_contactid; LogD($doc_contactname, 'view', $doc_protocol, $on{id}); my $icons.= Img( title => $lang{mark_by_igmsg}, width => 23, src => "$IG::img_url/comment_edit_big.gif", href => "javascript:winPopUp(". "'isms?". "action=composemessage&". "onsend=close&". "text_msg=". MkUrl($on{id}). "',500,200,'composemessage')" ); if ( $doc_file_name =~ /\.html*$/i ) { ## Get Direct Link to HTML Document my $direct_link = (IG::DirectLink($on{id}))[1]; if ( $on{print} ) { IG::Redirect( $direct_link ); return; } HtmlHead( shortcuts => _short_cuts()); TaskHead( title => "IGDocView - $lang{$doc_protocol} - ". "$lang{protocol_number} $on{id}", width => '100%', minheight => '400px', padding => 2, icons => $icons ); PrOut "<div id=\"container_files\">". "<iframe frameborder=\"0\" style=\"width:100%; height:100%;\" src=\"$direct_link\">". "</iframe></div>"; IG::JsExec( code => <<END ); window.onload = container_maximize; window.onresize = container_maximize; function container_maximize() { getSize(); if ( maxHeight > 60 ) { \$('container_files').style.height = maxHeight - 60; } } END } elsif ( $doc_file_name =~ /\.(pdf|tiff*)$/i ) { HtmlHead( shortcuts => _short_cuts() ); TaskHead( title => "IGDocView - $lang{$doc_protocol} - ". "$lang{protocol_number} $on{id}", icons => $icons ); DocView::showdoc( id => $on{id}, page => $on{page}, width => 650, height => 919, sourcefile => $doc_file_dir . $IG::S . $doc_file_name, doc_protocol => $doc_protocol ); } else { IG::Warn("You can use IGDocView Only with Pdf, Tiff or HTML files"); return; } TaskFoot(); HtmlFoot(); }
Stefania

Rispondi quotando