【问题标题】:Virtuemart 2 product details PDFVirtuemart 2 产品详情 PDF
【发布时间】:2012-05-01 18:43:32
【问题描述】:

有谁知道如何修改 Virtuemart 2 产品详细信息 pdf 视图。我找到了修改文档正文的位置,但我需要修改: - 标题字体和文本 - 在标题中插入公司标志。

【问题讨论】:

    标签: joomla joomla-extensions tcpdf virtuemart


    【解决方案1】:

    我想我找到了解决办法:

    您需要扩展 TCPDF 类并在 view.pdf.php 中编辑 function display()components/com_virtuemart/views/pdf/

    类似:

    function display($tpl = 'pdf'){
    
        if(!file_exists(JPATH_VM_LIBRARIES.DS.'tcpdf'.DS.'tcpdf.php')){
            vmError('View pdf: For the pdf invoice, you must install the tcpdf library at '.JPATH_VM_LIBRARIES.DS.'tcpdf');
        } else {
    
            $viewName = jRequest::getWord('view','productdetails');
            // custom pdf for product details
            if($viewName == 'productdetails'){
                $class= 'VirtueMartView'.ucfirst($viewName);
                if(!class_exists($class)) require(JPATH_VM_SITE.DS.'views'.DS.$viewName.DS.'view.html.php');
                $view = new $class ;
                //$format = 'pdf';
                //generating pdf body and caching the buffer
                ob_start();
                $view->display($tpl);
                $html = ob_get_contents();
                ob_end_clean();
    
                // create pdf
                $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    
                // set document information
                $pdf->SetCreator('Creator Name');
                $pdf->SetAuthor('Author Name');
    
                $pdf->SetTitle('PDF Title');
                $pdf->SetSubject('PDF Subject');
                $pdf->SetKeywords('PDF list keyword');
                // set header and footer fonts
                $pdf->setHeaderFont(Array('helvetica', '', 8));
                $pdf->setFooterFont(Array('helvetica', '', 10));
    
                // set default monospaced font
                $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
    
                //set margins
                $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
                $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
                $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
    
                //set auto page breaks
                $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
    
                //set image scale factor
                $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
    
                // set default font subsetting mode
                $pdf->setFontSubsetting(true);
    
                // Set font
                // dejavusans is a UTF-8 Unicode font, if you only need to
                // print standard ASCII chars, you can use core fonts like
                // helvetica or times to reduce file size.
                $pdf->SetFont('helvetica', '', 8, '', true);
    
                // if you want to add something to pdf body
                //$html .= "foobar";
    
                // Add a page
                // This method has several options, check the source code documentation for more information.
                $pdf->AddPage();
    
                // Print text using writeHTMLCell()
                $pdf->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
    
                // Close and output PDF document
                // This method has several options, check the source code documentation for more information.
                // 
                $pdf->Output('filename.pdf','I');
    
                exit; //avoid mixing pdf and html output that cause duplicate header error
            }
            else
            {
                //If not in productdetails
                echo "yadda yadda yadda";
            }
        }
    }
    

    if(!class_exists('TCPDF'))  require_once(JPATH_VM_LIBRARIES.DS.'tcpdf'.DS.'tcpdf.php');
    // Extend the TCPDF class to create custom Header and Footer
    class MYPDF extends TCPDF {
    
        public function __construct() {
    
            parent::__construct();
    
    
        }
    
        //Page header
        public function Header() {
         // Logo
            //$image_file = K_PATH_IMAGES.'logo_example.jpg';
            //$this->Image($image_file, 10, 10, 15, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);
            // Set font
            $this->SetFont('helvetica', 'B', 20);
            // Title
            $this->Cell(0, 15, 'Custom header text', 0, false, 'C', 0, '', 0, false, 'M', 'M');
        }
    
    
        // Page footer
        public function Footer() {
            // Position at 15 mm from bottom
            $this->SetY(-15);
            // Set font
            $this->SetFont('helvetica', 'I', 8);
    
            //vmdebug('$vendor',$vendor);
            $html = "Custom footer txt";
            // Page number
            $this->writeHTMLCell($w=0, $h=0, $x='', $y='', $html, $border=0, $ln=1, $fill=0, $reseth=true, $align='', $autopadding=true);
    
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 2014-12-17
      • 1970-01-01
      • 1970-01-01
      • 2013-12-14
      • 1970-01-01
      相关资源
      最近更新 更多