1<?php 2require_once('../config.inc.php'); 3require_once('../pipeline.factory.class.php'); 4parse_config_file('../html2ps.config'); 5 6function convert_to_pdf($pdf) { 7 8 class MyDestinationFile extends Destination { 9 var $_dest_filename; 10 11 function MyDestinationFile($dest_filename) { 12 $this->_dest_filename = $dest_filename; 13 } 14 15 function process($tmp_filename, $content_type) { 16 copy($tmp_filename, $this->_dest_filename); 17 } 18 } 19 20 21 class MyDestinationDownload extends DestinationHTTP { 22 function MyDestinationDownload($filename) { 23 $this->DestinationHTTP($filename); 24 $GLOBALS['PDFOutFileName'] = $filename; 25 } 26 27 function headers($content_type) { 28 return array( 29 "Content-Disposition: attachment; filename=".$GLOBALS['PDFOutFileName'].".".$content_type->default_extension, 30 "Content-Transfer-Encoding: binary", 31 "Cache-Control: must-revalidate, post-check=0, pre-check=0", 32 "Pragma: public" 33 ); 34 } 35 } 36 37 class MyFetcherLocalFile extends Fetcher { 38 var $_content; 39 40 function MyFetcherLocalFile() { 41 $this->_content = "Test<!--NewPage-->Test<pagebreak/>Test<?page-break>Test"; 42 } 43 44 function get_data($dummy1) { 45 return new FetchedDataURL($this->_content, array(), ""); 46 } 47 48 function get_base_url() { 49 return ""; 50 } 51 } 52 53 54 55 $media = Media::predefined("A4"); 56 $media->set_landscape(false); 57 $media->set_margins(array('left' => 0, 58 'right' => 0, 59 'top' => 0, 60 'bottom' => 0)); 61 $media->set_pixels(1024); 62 63 $GLOBALS['g_config'] = array( 64 'cssmedia' => 'screen', 65 'renderimages' => true, 66 'renderforms' => false, 67 'renderlinks' => true, 68 'renderfields' => true, 69 'mode' => 'html', 70 'debugbox' => false, 71 'draw_page_border' => false, 72 ); 73 74 $g_px_scale = mm2pt($media->width() - $media->margins['left'] - $media->margins['right']) / $media->pixels; 75 $g_pt_scale = $g_px_scale * 1.43; 76 77 $pipeline = new Pipeline; 78 $pipeline->configure($GLOBALS['g_config']); 79 $pipeline->fetchers[] = new MyFetcherLocalFile(); 80 // $pipeline->destination = new MyDestinationFile($pdf); 81 $pipeline->destination = new MyDestinationDownload($pdf); 82 $pipeline->data_filters[] = new DataFilterHTML2XHTML; 83 $pipeline->pre_tree_filters = array(); 84 $header_html = "test"; 85 $footer_html = "test"; 86 $filter = new PreTreeFilterHeaderFooter($header_html, $footer_html); 87 $pipeline->pre_tree_filters[] = $filter; 88 $pipeline->pre_tree_filters[] = new PreTreeFilterHTML2PSFields(); 89 $pipeline->parser = new ParserXHTML(); 90 $pipeline->layout_engine = new LayoutEngineDefault; 91 $pipeline->output_driver = new OutputDriverFPDF($media); 92 93 $pipeline->process('', $media); 94} 95 96convert_to_pdf("test"); 97?>