dst3605528 2014-07-24 09:54 采纳率: 0%
浏览 25

Zend PDF:打印时抛出异常

I am using codeigniter with zend framework. I am having trouble with stability issues in that at one time it prints then after sometimes it throws these exception. What might be the problem?

Fatal error: Uncaught exception 'Zend_Pdf_Exception' 
with message 'Invalid file path: ' 
in C:\xampp\htdocs\copyncc2\application\libraries\Zend\Pdf\FileParserDataSource\File.php:79 

Stack trace: 
#0 C:\xampp\htdocs\copyncc2\application\libraries\Zend\Pdf\Font.php(603): Zend_Pdf_FileParserDataSource_File->__construct(NULL) 
#1 C:\xampp\htdocs\copyncc2\application\libraries\Zend\Barcode\Renderer\Pdf.php(196): Zend_Pdf_Font::fontWithPath(NULL) 
#2 C:\xampp\htdocs\copyncc2\application\libraries\Zend\Barcode\Renderer\RendererAbstract.php(481): Zend_Barcode_Renderer_Pdf->_drawText('ERROR:', 10, Array, NULL, 0, 'left', 0) 
#3 C:\xampp\htdocs\copyncc2\application\libraries\Zend\Barcode\Renderer\RendererAbstract.php(445): Zend_Barcode_Renderer_RendererAbstract->_drawInstructionList() 
#4 C:\xampp\htdocs\copyncc2\application\models\sbp_model.php(261): Zend_Barcode_Renderer_RendererAbstract->draw() 
#5 C:\xampp\htdocs\copyncc2\application\controllers\sbp.php(72): Sbp_model->printpermit('1187244') 
#6 [internal function]: Sbp->printpermit('11 in C:\xampp\htdocs\copyncc2\application\libraries\Zend\Pdf\FileParserDataSource\File.php on line 79

Here is my function to generate PDF:

    function printpermit($businessId){
        $this->load->library('zend');
        $a=$this->load->library('amount_to_words');
        $this->zend->load('Zend/Pdf');
        $this->zend->load('Zend/Barcode');
        $sbp_type=$this->uri->segment(4);

        if(isset($sbp_type)&&!empty($sbp_type)){
            $fileName =APPPATH.'assets/reports/sbp/NCCProvisionalPermit.pdf'; 
        }else {
            $fileName =APPPATH.'assets/reports/sbp/NCCPermit.pdf';
        };


        $vals=$this->sbp_model->print_sbp_preview($businessId);
        $permit_no=$vals['sbpnumber'];
        $permit_year=$vals['year'];
        $biz_name=$vals['bizname'];
        $pin_no=$vals['pinno']; 
        $biz_id=$vals['bizzid']; 
        $activity=$vals['biztype']; 
        $description=$vals['bizactivityname']; 
        $activity_code=$vals['activitycode'];;
        $amount=$vals['paidfee'];

        $amount = str_replace( ',', '', $amount);
        if( is_numeric( $amount) ) {
            $amount_in_words="** ".strtoupper($this->amount_to_words->convert_number($amount))." SHILLINGS ONLY **";
        }else $amount_in_words="NOT AVAILABLE";

        $box=$vals['pobox'];
        $plot_no=$vals['plotnumber'];
        $road_street=$vals['street'];
        $issue_date=$vals['issuedate'];
        $barcode_text=$vals['receiptno'];


        $pdf = Zend_Pdf::load($fileName);
        $page=$pdf->pages[0];

        // Draw something on a page 
        // Set font 
        $page->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 10); 
        $page->setFont(Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_HELVETICA), 10); 
        $page->drawText($permit_no, 473, 647); 
        $page->drawText($permit_year, 473, 624);
        $page->drawText($biz_name, 35, 530);
        $page->drawText($pin_no, 110, 502);
        $page->drawText($biz_id, 460, 530);
        $page->drawText($activity, 35, 430);
        $page->drawText($description, 35, 406);
        $page->drawText($activity_code, 500, 423);
        $page->drawText(number_format($amount,2), 255, 359);
        $page->drawText($amount_in_words, 135, 338);
        $page->drawText($box, 115, 267);  
        $page->drawText($plot_no, 340, 267);
        $page->drawText($road_street, 120, 245);
        $page->drawText($issue_date, 120, 198);
        $barcodeOptions = array('text' => $barcode_text,'barHeight' => 40,'factor'=>2.5,'font' =>APPPATH.'assets/fonts/SWANSEBI.TTF');
        $rendererOptions = array(
            'topOffset' => 590,
            'leftOffset' =>285
            );
        $pdf = Zend_Barcode::factory('code128', 'pdf', $barcodeOptions, $rendererOptions)->setResource($pdf)->draw();

        $pdfData = $pdf->render(); 

        header("Content-Disposition: inline; filename=sbp.pdf"); 
        header("Content-type: application/x-pdf"); 
        echo $pdfData;

    }
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
    • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
    • ¥20 软件测试决策法疑问求解答
    • ¥15 win11 23H2删除推荐的项目,支持注册表等
    • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
    • ¥15 qt6.6.3 基于百度云的语音识别 不会改
    • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
    • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
    • ¥15 lingo18勾选global solver求解使用的算法
    • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行