首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP在浏览器中预览PDF文件

使用PHP在浏览器中预览PDF文件
EN

Stack Overflow用户
提问于 2016-06-28 22:05:50
回答 2查看 14.3K关注 0票数 2

我有个问题要问你。我想在我的web浏览器上显示PDF。

此外,我还写了这段代码。它可以在Firefox上运行,但不幸的是不能在Chrome上运行。

代码语言:javascript
复制
$content = file_get_contents($path);
var_dump($content);
header("Content-Disposition: inline; filename=$path");
header('Content-Transfer-Encoding: binary');
header("Content-type: application/pdf");
header("Cache-Control: private, must-revalidate, post-check=0, pre-check=0, public");
header("Pragma: public");
header("Accept-Ranges: bytes");
echo $content;

你能帮帮我吗?

提前谢谢你!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-29 04:01:02

在标头之前不能有var_dump() (除非您在未告知我们的情况下使用输出缓冲)。在发送报头之前,不能有任何输出。此外,如果您使用var_dump()转储PDF的内容,这将引入周围的工件,这可能会导致大多数PDF查看器出现问题。

要进行故障排除,请尝试以下最小工作示例:

代码语言:javascript
复制
<?php
$path = './path/to/file.pdf';

header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename='.$path);
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');

readfile($path);

顺便说一句,为了避免在文件末尾出现任何不必要的意外空格,这通常也是一个好主意,不要使用闭合的PHP标签(?>),这可能会导致问题;在字符串中使用一种类型的静标‘或“。

票数 3
EN

Stack Overflow用户

发布于 2016-06-29 03:27:07

我用不同的方法尝试过..最好的方法是用Imagick制作一个图像并显示出来。或使用Ghostscript进行还原...

就像这样,你可以做一个预览,它很容易与所有的浏览器。对于make PDF->PNG,我喜欢这样:

代码语言:javascript
复制
$save_to = '.png';
exec('convert -density 300 -trim "'.$file.'" -resize 1000 -quality 85 -colorspace RGB -background white  "'.$destination.$save_to.'" &', $output, $return_var);

目的地末尾的&允许为多页pdf制作不同的图像,如: image-1.png image-2.png ...

如果您想要显示PDF,但较小,您可以缩小PDF,但不是所有的浏览器都以相同的方式显示PDF…

我的reduce PDF代码如下所示:

代码语言:javascript
复制
exec('gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/ebook  -dNOPAUSE  -dBATCH -sOutputFile='.$output_file.' '.$file.' ',$output, $return_var);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38078443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档