如何在php中显示pdf

时间:2013-08-04 06:40:37

标签: php pdf

我正在尝试在php中显示pdf文件,我用过:

<html>
<head>
<style type="text/css">
#myiframe {width:600px; height:100%;} 
</style>
</head>
<body>
<div id="scroller">
<iframe name="myiframe" id="myiframe" src="xml.pdf">
</div>
</body>
</html>

它在html中运行良好,但是当我想将此代码用于php文件时,它什么都不显示,只是尝试下载pdf文件。 有人能帮助我吗?

6 个答案:

答案 0 :(得分:23)

可以使用很多选项:(都经过测试)。

以下是两种方式。

header("Content-type: application/pdf");
header("Content-Disposition: inline; filename=filename.pdf");
@readfile('path\to\filename.pdf');

或:(请注意转义的双引号)。在为其指定名称时也需要使用相同的内容。

<?php

echo "<iframe src=\"file.pdf\" width=\"100%\" style=\"height:100%\"></iframe>";

?>

I.e。name="myiframe" id="myiframe"

需要更改为:

PHP中的

name=\"myiframe\" id=\"myiframe\"

请务必查看:this answer on SO了解有关此主题的更多选项。

脚注:尝试在Windows 8中查看PDF文件时存在已知问题。如果未安装浏览器插件,则安装Adobe Acrobat Reader是查看这些类型文档的更好方法。< / p>

答案 1 :(得分:5)

请尝试以下代码

<?php
$file = 'dummy.pdf';
$filename = 'dummy.pdf';
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
?>

Demo

答案 2 :(得分:0)

https://pdfobject.com/下载PDFObject库并查看以下代码:我希望它能为您提供帮助。

<!DOCTYPE html>
<html>
<head>
    <title>Pdf Read</title>
    <style>
          .pdfobject-container { height: 500px;}
          .pdfobject { border: 1px solid #666; }
   </style>
   <script src="pdfobject.min.js"></script>
</head>
<body>
        <div id="example1"></div>
        <script>PDFObject.embed("pdfread.pdf", "#example1");</script>
</body>
</html>

答案 3 :(得分:0)

if(isset($_GET['content'])){
  $content = $_GET['content'];
  $dir = $_GET['dir'];
  header("Content-type:".$content);
  @readfile($dir);
}

$directory = (file_exists("mydir/"))?"mydir/":die("file/directory doesn't exists");// checks directory if existing.
 //the line above is just a one-line if statement (syntax: (conditon)?code here if true : code if false; )
 if($handle = opendir($directory)){ //opens directory if existing.
   while ($file = readdir($handle)) { //assign each file with link <a> tag with GET params
     echo '<a target="_blank" href="?content=application/pdf&dir='.$directory.'">'.$file.'</a>';
}

}

如果您单击链接,将出现一个带有pdf文件的新窗口

答案 4 :(得分:0)

从数据库显示pdf文件的简单方法,我们可以下载。
$ resume是来自数据库的pdf文件名。
../resume/filename是存储文件的文件夹的路径。

<a href="../resumes/<?php echo $resume; ?>"/><?php echo $resume; ?></a>

答案 5 :(得分:0)

使用pdf或img时容易

return (in_Array($file['content-type'], ['image/jpg', 'application/pdf']));