Działanie klasy
- klasa wysyła metodą POST http adres pliku xml, który musi być dostępny przez internet.
- konwerter na zdanym serwerze zwraca stronę z tagiem <META HTTP-EQUIV="Refresh" w którym jest adres pliku pdf
- skrypt wyciąga adres pliku pdf i pobiera go metodą GET http
- skrypt zapisuje pdf do pliku.
użycie:
<?php class Docbook2pdf { function Docbook2pdf( $sDocbookUrl, $sPdfFileName ) { $output = $this->PostVars( 'http://www.xml-dev.com/blog/xml2pdf.php', array( 'xmlurl' => $sDocbookUrl ) ); { { } } $pdf = $this->getPDF( $adres ); } function getPDF( $adres ) { { \"Host: \". $_SERVER[\"HTTP_HOST\"] .\"rn\". \"Accept: text/xml,application/xml,application/pdf,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5rn\". \"Accept-Encoding: gzip,deflatern\". \"Accept-Language: pl,en-us;q=0.7,en;q=0.3rn\". \"Negotiate: transrn\". \"Mozilla/5.0 (Windows; U; Windows NT 5.1; pl-PL; rv:1.7.6) Gecko/20050226 Firefox/1.0.1rnrn\" ); $return = ''; { $return .= $buf; } return $return; } return false; } function PostVars($url, $vars) { $result = $post = ''; { return false; } foreach ($vars as $k => $v) { } { \"POST \" . $url['path'] . \" HTTP/1.0rn\" . //\"Accept: image/gif, image/x-xbitmap, image/jpeg, \" . //\"image/pjpeg, application/msword, \" . //\"application/x-shockwave-flash, */*rn\" . //\"Accept-Language: plrn\" . \"Content-Type: application/x-www-form-urlencodedrn\" . //\"Accept-Encoding: gzip, deflatern\" . //\"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; \" . //\"Windows NT 5.1)rn\" . //\"Host: \" . $url['host'] . \"rn\" . \"Content-Length: \" . strlen($post) . \"rn\" . //\"Connection: Keep-Alivern\" . \"rn\" . $post . \"rn\"); { $result .= $buf; } return $result; } return false; } } ?>
<?php $oDocBook2Pdf = new Docbook2pdf( 'http://example.net/example_docbook.xml', 'docelowy_plik.pdf' ); ?>