使用mPDF生成的PDF不能在android上运行

时间:2017-03-25 13:49:01

标签: php android mpdf

我用PHP创建了网站。我使用了一个按钮生成PDF,它在ipad和桌面上运行得很好,但它不适用于android。当我在android上生成PDF并尝试打开它时,pdf reader会出错。我尝试了两个不同的PDF阅读器。两者都给出了错误,既显示文件格式错误,也无法打开文件。为了生成pdf,我使用了mPDF库。

function generatePdf($userData){
$PNG_WEB_DIR = 'phplib/qrcode'.DIRECTORY_SEPARATOR;

$id = $userData['Id'];
$name = $userData['FirstName'].' '.$userData['LastName'];;
$source =$userData['Source'];
$destination =$userData['Destination'];
$date =$userData['Date'] ;
$FlightName = $userData['FlightName'];
$FlightNumber=$userData['FlightNumber'];
$html .='<div style="text-align: center;">
        <h3 class="form-title">&nbsp;<font size=4>'.$name.'</h3>
        </div>
        <div style="text-align: center;">
        <table class="table" style="text-align: left;">
                <tr>
                    <td class="style" >TicketId:</td>
                    <td class="style">'.$id.'</td>

                </tr>
                <tr>
                    <td class="style">Source:</td>
                    <td class="style">'.$source.'</td>

                </tr>
                <tr>
                    <td class="style">Destination:</td>
                    <td class="style">'.$destination.'</td>
                </tr>
                <tr>
                    <td class="style">Flight Name:</td>
                    <td class="style">'.$FlightName.'</td>
                </tr>
                 <tr>
                <td class="style">Flight Number:</td>
                <td class="style">'.$FlightNumber.'</td>
                </tr>
                 <tr>
                <td class="style">Date:</td>
                <td class="style">'.$date.'</td>
                </tr>
                <tr>
                <td class="style">
                <img src="'.$PNG_WEB_DIR.$id.'.png" /></td>
                </tr>
            </table>
        </div>';
$mpdf=new mPDF();
$mpdf->debug = true;
$mpdf->allow_output_buffering = true;

$mpdf->WriteHTML($html);
//$mpdf->SetDisplayMode('fullpage');

$mpdf->Output('download.pdf','D');

1 个答案:

答案 0 :(得分:0)

好的,我明白了。希望它也可以帮助你。问题不在于Android或桌面。我在桌面上使用firefox,在android中使用chrome,在ios中使用safari。代码适用于safari和firefix,但不适用于chrome。这个帖子帮了我。mpdf not working in Google Chrome but working fine in firefox

ob_clean();
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $yourFileName . '"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');

require_once 'mpdf60/mpdf.php';
$mpdf=new mPDF('c','A4','','' , 0 , 0 , 0 , 0 , 0 , 0); 

$mpdf->SetDisplayMode('fullpage');

$mpdf->list_indent_first_level = 0; 
$stylesheet = file_get_contents('css/style.css');
$mpdf->WriteHTML($stylesheet,1);
$mpdf->WriteHTML($test, 2);
$mpdf->Output();  
ob_end_flush();

我只是通过引用它来改变我的代码并且它有效。