duanmu5641 2013-12-17 21:27
浏览 92
已采纳

尝试使用PHP和fpdf显示pdf文件

Background: Its' a e learning website, when user in the learning stage, it will show content for reading at first 3 pages, and after that it will need users to do the test, when users overcome all the challenges, it will show the pdf certificate.

Currently, the problem is: after reaching the last page, it always showing me some weird words: (below is part of all)

(%PDF-1.3 3 0 obj <> endobj 4 0 obj <> stream x�3R��2�35W(�r Q�w3T04�30PISp �Z*�[����(hx����+����(j*�d��7W)

Here is the part of the code, whose file name is load_data.php

else if ($cur_page == $no_of_paginations){


        ob_end_clean();
        require("../fpdf.php");

        $pdf = new FPDF();
        $pdf->AddPage();
        $pdf->SetFont('Arial','B',16);
        $pdf->Cell(40,10,'Hello World!');
        if (preg_match("/MSIE/i", $_SERVER["HTTP_USER_AGENT"])){
            header("Content-type: application/PDF");
        } else {
            header("Content-type: application/PDF");
            header("Content-Type: application/pdf");
        }
        $pdf->Output();
        exit;
    }

Here is the ajax for pagination:

function loadData(page){

//        debugger;
        loading_show();
        $.ajax
        ({
            type: "POST",
            url: "load_data.php",
            data: { page: +page, tableName:  $.urlParam('modules') },
            //data: "page="+page,
            success: function(msg)
            {
                $("#container").ajaxComplete(function(event, request, settings)
                {
                    loading_hide();
                    $("#container").html(msg);
                });
            }
        });
    }
    loadData(1);  // For first time page load default results
    $('#container .pagination li.active').live('click',function(){
        var page = $(this).attr('p');
        loadData(page);

    })
  • 写回答

4条回答 默认 最新

  • douya8978 2013-12-17 21:40
    关注

    FPDF allows you a few options in outputting PDFs. You can force the download, save the file to a filesystem, or you can display them on the page, but what you can't do is generate a PDF and show it inline as Jasper mentioned. Here's what you'll do:

    Create a new file (maybe, show_pdf.php):

        require("../fpdf.php");
    
        $pdf = new FPDF();
        $pdf->AddPage();
        $pdf->SetFont('Arial','B',16);
        $pdf->Cell(40,10,'Hello World!');
        if (preg_match("/MSIE/i", $_SERVER["HTTP_USER_AGENT"])){
            header("Content-type: application/PDF");
        } else {
            header("Content-type: application/PDF");
            header("Content-Type: application/pdf");
        }
        $pdf->Output();
    

    You may need to pass in specific data parameters via $_GET to make this work right as you expand this code.

    To show it on the page, you'll do something like this:

    else if ($cur_page == $no_of_paginations){
    ?>
    <iframe src="show_pdf.php?id=asdfasdf"></iframe>
    <?php
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装
  • ¥40 复杂的限制性的商函数处理