我只是複製源逐字,交換在PHP輸出編碼PDF中的部分對於我從一個在線編碼器返回的字符串。
原始PDF是141KB,而編碼字符串是194065個字節 - 使相當大的網址..
這工作就好在Chrome的是,正如它給你的。同樣,歌劇院也不會有這個問題。
因此,我從iframe標記中刪除了type ='application/pdf'屬性。現在Chrome和Opera都會顯示該文件,而IE9仍然拒絕。
我試圖通過JavaScript更改src(以防萬一),通過Opera/Chrome沒有問題,但仍然沒有去與IE瀏覽器。
過去,我用php創建了pdf,並簡單地將iframe的src設置爲php文件的url,並使用GET參數完成。這只是正常工作與IE6(和歌劇,鉻和FF - 從來沒有嘗試過在移動設備上,它結束了前5年)
一些舊的,例如代碼,我希望能幫助:
( 1)Javascript來插入的IFRAME pdfTimetable.php的
function showPdfTt(studentId)
{
var url, tgt;
title = byId("popupTitle");
title.innerHTML = "Timetable for " + studentId;
tgt = byId("popupContent");
url = "pdftimetable.php?";
url += "id="+studentId;
url += "&type=Student";
tgt.innerHTML = "<iframe onload=\"centerElem(byId('box'))\" src='"+url+"' width=\"700px\" height=\"500px\"></iframe>";
}
輸出部分
$pdfStr = $pdf->output();
$myFile = fopen("lastRequested.pdf", "wb"); // just here for debugging purposes
fwrite($myFile, $pdfStr);
fclose($myFile);
$pdf->ezStream(); // send output to stdout (the browser) - uses fpdf for generation
exit;
fpdf的輸出部分
if(php_sapi_name()!='cli')
{
//We send to a browser
header('Content-Type: application/pdf');
if(headers_sent())
$this->Error('Some data has already been output, can\'t send PDF file');
header('Content-Length: '.strlen($this->buffer));
header('Content-Disposition: inline; filename="'.$name.'"');
header('Cache-Control: private, max-age=0, must-revalidate');
header('Pragma: public');
ini_set('zlib.output_compression','0');
}
echo $this->buffer;
break;