Subversion-Projekte lars-tiefland.php_share

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php
require_once('../config.inc.php');
require_once('../pipeline.factory.class.php');
parse_config_file('../html2ps.config');

function convert_to_pdf($pdf) {

        class MyDestinationFile extends Destination {
                var $_dest_filename;

                function MyDestinationFile($dest_filename) {
                        $this->_dest_filename = $dest_filename;
                }

                function process($tmp_filename, $content_type) {
                        copy($tmp_filename, $this->_dest_filename);
                }
        }


        class MyDestinationDownload extends DestinationHTTP {
                function MyDestinationDownload($filename) {
                        $this->DestinationHTTP($filename);
                        $GLOBALS['PDFOutFileName'] = $filename;
                }

                function headers($content_type) {
                        return array(
                                "Content-Disposition: attachment; filename=".$GLOBALS['PDFOutFileName'].".".$content_type->default_extension,
                                "Content-Transfer-Encoding: binary",
                                "Cache-Control: must-revalidate, post-check=0, pre-check=0",
                                "Pragma: public"
                        );
                }
        }

        class MyFetcherLocalFile extends Fetcher {
        var $_content;

                function MyFetcherLocalFile() {
                        $this->_content = "Test<!--NewPage-->Test<pagebreak/>Test<?page-break>Test";
                }

                function get_data($dummy1) {
                        return new FetchedDataURL($this->_content, array(), "");
                }

                function get_base_url() {
                        return "";
                }
        }



        $media = Media::predefined("A4");
        $media->set_landscape(false);
        $media->set_margins(array('left'   => 0,
                                  'right'  => 0,
                                  'top'    => 0,
                                  'bottom' => 0));
        $media->set_pixels(1024); 

        $GLOBALS['g_config'] = array(
                  'cssmedia'     => 'screen',
                  'renderimages' => true,
                  'renderforms'  => false,
                  'renderlinks'  => true,
                  'renderfields'  => true,
                  'mode'         => 'html',
                  'debugbox'     => false,
                  'draw_page_border' => false,
                  );

        $g_px_scale = mm2pt($media->width() - $media->margins['left'] - $media->margins['right']) / $media->pixels;
        $g_pt_scale = $g_px_scale * 1.43; 

        $pipeline = new Pipeline;
        $pipeline->configure($GLOBALS['g_config']);
        $pipeline->fetchers[] = new MyFetcherLocalFile();
        // $pipeline->destination = new MyDestinationFile($pdf);
        $pipeline->destination = new MyDestinationDownload($pdf);
        $pipeline->data_filters[] = new DataFilterHTML2XHTML;
        $pipeline->pre_tree_filters = array();
        $header_html    = "test";
        $footer_html    = "test";
        $filter = new PreTreeFilterHeaderFooter($header_html, $footer_html);
        $pipeline->pre_tree_filters[] = $filter;
        $pipeline->pre_tree_filters[] = new PreTreeFilterHTML2PSFields();
        $pipeline->parser = new ParserXHTML();
        $pipeline->layout_engine = new LayoutEngineDefault;
        $pipeline->output_driver = new OutputDriverFPDF($media);

        $pipeline->process('', $media);
}

convert_to_pdf("test");
?>