簡體   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