繁体   English   中英

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

[英]Try to show pdf file using PHP and fpdf

背景:它的'ae学习网站,当用户处于学习阶段时,它将在前3页显示阅读内容,之后需要用户进行测试,当用户克服所有挑战时,它将显示pdf证书。

目前,问题是:在到达最后一页后,它总是向我显示一些奇怪的词:(以下是所有的一部分)

(%PDF-1.3 3 0 obj <> endobj 4 0 obj <>streamx 3R 2 35W( rQ w3T04 30PISp Z* [ (hx + ) (j * D7?W)

以下是代码的一部分,其文件名为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;
    }

这是分页的ajax:

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);

    })

FPDF允许您输出PDF的几个选项。 您可以强制下载,将文件保存到文件系统,或者您可以在页面上显示它们,但您不能做的是生成PDF并将其显示为内嵌,如Jasper所述。 这是你要做的:

创建一个新文件(可能是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();

您可能需要通过$ _GET传递特定的数据参数,以便在展开此代码时使其正常工作。

要在页面上显示它,您将执行以下操作:

else if ($cur_page == $no_of_paginations){
?>
<iframe src="show_pdf.php?id=asdfasdf"></iframe>
<?php
}

看起来您正在尝试以内联方式显示PDF。 为此,您应该创建一个IFRAME,其中包含指向PDF创建脚本的源。 这样浏览器可以选择是否可以显示PDF,如果不能,则可以下载该文件。

要点:浏览器不知道如何解释你给它的东西。

在borwser中显示fpdf传递第二个参数'I'

 $filed = $pdf->Output('abc.pdf', 'I');

Yii :: $ app-> response-> format = \\ yii \\ web \\ Response :: FORMAT_RAW;

Yii :: $ app-> response-> headers-> add('Content-Type','application / pdf');

    $pdf = new FPDF();

    $pdf->AliasNbPages();
    $pdf->AddPage();
    $pdf->SetFont('Arial', 'B', 15);
    $pdf->Cell(40, 10, 'Hello World');
    $pdf->Output();

使用对象$('#fact')。html('

Usted no tiene instalado un pugin para .pdf en este navegador。
Usted puede usar Este link para descargar el archivo PDF。

“);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM